mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-03-13 21:36:57 +00:00
imx8m: fixup thermal trips
Fixup thermal trips in Linux device tree according to SoC thermal grade. Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com> Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com> Tested-by: Adam Ford <aford173@gmail.com>
This commit is contained in:
parent
bfa9306e14
commit
0543a1ed27
1 changed files with 49 additions and 0 deletions
|
@ -1203,6 +1203,48 @@ static int cleanup_nodes_for_efi(void *blob)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int fixup_thermal_trips(void *blob, const char *name)
|
||||
{
|
||||
int minc, maxc;
|
||||
int node, trip;
|
||||
|
||||
node = fdt_path_offset(blob, "/thermal-zones");
|
||||
if (node < 0)
|
||||
return node;
|
||||
|
||||
node = fdt_subnode_offset(blob, node, name);
|
||||
if (node < 0)
|
||||
return node;
|
||||
|
||||
node = fdt_subnode_offset(blob, node, "trips");
|
||||
if (node < 0)
|
||||
return node;
|
||||
|
||||
get_cpu_temp_grade(&minc, &maxc);
|
||||
|
||||
fdt_for_each_subnode(trip, blob, node) {
|
||||
const char *type;
|
||||
int temp, ret;
|
||||
|
||||
type = fdt_getprop(blob, trip, "type", NULL);
|
||||
if (!type)
|
||||
continue;
|
||||
|
||||
temp = 0;
|
||||
if (!strcmp(type, "critical"))
|
||||
temp = 1000 * maxc;
|
||||
else if (!strcmp(type, "passive"))
|
||||
temp = 1000 * (maxc - 10);
|
||||
if (temp) {
|
||||
ret = fdt_setprop_u32(blob, trip, "temperature", temp);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ft_system_setup(void *blob, struct bd_info *bd)
|
||||
{
|
||||
#ifdef CONFIG_IMX8MQ
|
||||
|
@ -1345,6 +1387,13 @@ usb_modify_speed:
|
|||
#endif
|
||||
|
||||
cleanup_nodes_for_efi(blob);
|
||||
|
||||
if (fixup_thermal_trips(blob, "cpu-thermal"))
|
||||
printf("Failed to update cpu-thermal trip(s)");
|
||||
if (IS_ENABLED(CONFIG_IMX8MP) &&
|
||||
fixup_thermal_trips(blob, "soc-thermal"))
|
||||
printf("Failed to update soc-thermal trip(s)");
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue