diff options
Diffstat (limited to 'recipes-bsp/u-boot-mainline/files/0012-imx8-cpu-get-temperature-when-print-cpu-desc.patch')
-rw-r--r-- | recipes-bsp/u-boot-mainline/files/0012-imx8-cpu-get-temperature-when-print-cpu-desc.patch | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/recipes-bsp/u-boot-mainline/files/0012-imx8-cpu-get-temperature-when-print-cpu-desc.patch b/recipes-bsp/u-boot-mainline/files/0012-imx8-cpu-get-temperature-when-print-cpu-desc.patch new file mode 100644 index 0000000..f700305 --- /dev/null +++ b/recipes-bsp/u-boot-mainline/files/0012-imx8-cpu-get-temperature-when-print-cpu-desc.patch @@ -0,0 +1,75 @@ +From 82467cb2172d0470413876ad398d032a649a7e11 Mon Sep 17 00:00:00 2001 +From: Peng Fan <peng.fan@nxp.com> +Date: Fri, 12 Apr 2019 07:55:06 +0000 +Subject: [PATCH 12/19] imx8: cpu: get temperature when print cpu desc + +Read the temperature when print cpu inforation. + +Signed-off-by: Peng Fan <peng.fan@nxp.com> +--- + arch/arm/mach-imx/imx8/cpu.c | 35 +++++++++++++++++++++++++++++++++-- + 1 file changed, 33 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/mach-imx/imx8/cpu.c b/arch/arm/mach-imx/imx8/cpu.c +index 2c425357b5..12716e7e9e 100644 +--- a/arch/arm/mach-imx/imx8/cpu.c ++++ b/arch/arm/mach-imx/imx8/cpu.c +@@ -11,6 +11,7 @@ + #include <dm/lists.h> + #include <dm/uclass.h> + #include <errno.h> ++#include <thermal.h> + #include <asm/arch/sci/sci.h> + #include <asm/arch/sys_proto.h> + #include <asm/arch-imx/cpu.h> +@@ -573,15 +574,45 @@ const char *get_core_name(void) + return "?"; + } + ++#if defined(CONFIG_IMX_SCU_THERMAL) ++static int cpu_imx_get_temp(void) ++{ ++ struct udevice *thermal_dev; ++ int cpu_tmp, ret; ++ ++ ret = uclass_get_device_by_name(UCLASS_THERMAL, "cpu-thermal0", ++ &thermal_dev); ++ ++ if (!ret) { ++ ret = thermal_get_temp(thermal_dev, &cpu_tmp); ++ if (ret) ++ return 0xdeadbeef; ++ } else { ++ return 0xdeadbeef; ++ } ++ ++ return cpu_tmp; ++} ++#endif ++ + int cpu_imx_get_desc(struct udevice *dev, char *buf, int size) + { + struct cpu_imx_platdata *plat = dev_get_platdata(dev); ++ int ret; + + if (size < 100) + return -ENOSPC; + +- snprintf(buf, size, "NXP i.MX8%s Rev%s %s at %u MHz\n", +- plat->type, plat->rev, plat->name, plat->freq_mhz); ++ ret = snprintf(buf, size, "NXP i.MX8%s Rev%s %s at %u MHz", ++ plat->type, plat->rev, plat->name, plat->freq_mhz); ++ ++ if (IS_ENABLED(CONFIG_IMX_SCU_THERMAL)) { ++ buf = buf + ret; ++ size = size - ret; ++ ret = snprintf(buf, size, " at %dC", cpu_imx_get_temp()); ++ } ++ ++ snprintf(buf + ret, size - ret, "\n"); + + return 0; + } +-- +2.14.5 + |