[PATCH v2 16/21] imx: Generalize fixup_thermal_trips
Peng Fan (OSS)
peng.fan at oss.nxp.com
Thu Sep 19 03:18:15 CEST 2024
From: Peng Fan <peng.fan at nxp.com>
i.MX8M and i.MX9 have duplicated fixup_thermal_trips, so move it
to arch/arm/mach-imx/fdt.c to avoid duplicated code.
Signed-off-by: Peng Fan <peng.fan at nxp.com>
---
arch/arm/include/asm/mach-imx/sys_proto.h | 1 +
arch/arm/mach-imx/fdt.c | 42 +++++++++++++++++++++++++++++++
arch/arm/mach-imx/imx8m/soc.c | 42 -------------------------------
arch/arm/mach-imx/imx9/soc.c | 42 -------------------------------
4 files changed, 43 insertions(+), 84 deletions(-)
diff --git a/arch/arm/include/asm/mach-imx/sys_proto.h b/arch/arm/include/asm/mach-imx/sys_proto.h
index c146a223b71..31ace977d2b 100644
--- a/arch/arm/include/asm/mach-imx/sys_proto.h
+++ b/arch/arm/include/asm/mach-imx/sys_proto.h
@@ -280,4 +280,5 @@ enum boot_device get_boot_device(void);
int disable_cpu_nodes(void *blob, const char * const *nodes_path,
u32 num_disabled_cores, u32 max_cores);
+int fixup_thermal_trips(void *blob, const char *name);
#endif
diff --git a/arch/arm/mach-imx/fdt.c b/arch/arm/mach-imx/fdt.c
index df6fbf51dba..ac782e3ee63 100644
--- a/arch/arm/mach-imx/fdt.c
+++ b/arch/arm/mach-imx/fdt.c
@@ -85,3 +85,45 @@ int disable_cpu_nodes(void *blob, const char * const *nodes_path, u32 num_disabl
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;
+}
diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c
index 68d5762c2ce..dd2d1796e3d 100644
--- a/arch/arm/mach-imx/imx8m/soc.c
+++ b/arch/arm/mach-imx/imx8m/soc.c
@@ -1166,48 +1166,6 @@ 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;
-}
-
#define OPTEE_SHM_SIZE 0x00400000
static int ft_add_optee_node(void *fdt, struct bd_info *bd)
{
diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c
index 23e81caa8ec..04b21207a28 100644
--- a/arch/arm/mach-imx/imx9/soc.c
+++ b/arch/arm/mach-imx/imx9/soc.c
@@ -538,48 +538,6 @@ int print_cpuinfo(void)
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 - 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;
-}
-
void build_info(void)
{
u32 fw_version, sha1, res, status;
--
2.35.3
More information about the U-Boot
mailing list