mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-21 04:14:34 +00:00
imx: Generalize fixup_thermal_trips
i.MX8M and i.MX9 have duplicated fixup_thermal_trips, so move it to arch/arm/mach-imx/fdt.c to avoid duplicated code. The critial temperature point for i.MX9 set to "maxc - 5" back to give some margin. Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
parent
5ee773e60b
commit
d0fe80890a
4 changed files with 43 additions and 84 deletions
|
@ -280,4 +280,5 @@ enum boot_device get_boot_device(void);
|
||||||
|
|
||||||
int disable_cpu_nodes(void *blob, const char * const *nodes_path,
|
int disable_cpu_nodes(void *blob, const char * const *nodes_path,
|
||||||
u32 num_disabled_cores, u32 max_cores);
|
u32 num_disabled_cores, u32 max_cores);
|
||||||
|
int fixup_thermal_trips(void *blob, const char *name);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -85,3 +85,45 @@ int disable_cpu_nodes(void *blob, const char * const *nodes_path, u32 num_disabl
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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 - 5);
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
|
@ -1215,48 +1215,6 @@ static int cleanup_nodes_for_efi(void *blob)
|
||||||
return 0;
|
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define OPTEE_SHM_SIZE 0x00400000
|
#define OPTEE_SHM_SIZE 0x00400000
|
||||||
static int ft_add_optee_node(void *fdt, struct bd_info *bd)
|
static int ft_add_optee_node(void *fdt, struct bd_info *bd)
|
||||||
{
|
{
|
||||||
|
|
|
@ -538,48 +538,6 @@ int print_cpuinfo(void)
|
||||||
return 0;
|
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
void build_info(void)
|
void build_info(void)
|
||||||
{
|
{
|
||||||
u32 fw_version, sha1, res, status;
|
u32 fw_version, sha1, res, status;
|
||||||
|
|
Loading…
Add table
Reference in a new issue