imx: imx8_cpu: print cpu grade temperature

Support print out cpu grade temperature

Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
Peng Fan 2023-04-28 12:08:14 +08:00 committed by Stefano Babic
parent 7c5256e89f
commit f3a07717b7

View file

@ -13,6 +13,7 @@
#include <asm/arch/sys_proto.h> #include <asm/arch/sys_proto.h>
#include <asm/arch-imx/cpu.h> #include <asm/arch-imx/cpu.h>
#include <asm/armv8/cpu.h> #include <asm/armv8/cpu.h>
#include <imx_thermal.h>
#include <linux/bitops.h> #include <linux/bitops.h>
#include <linux/clk-provider.h> #include <linux/clk-provider.h>
@ -121,10 +122,17 @@ static int cpu_imx_get_temp(struct cpu_imx_plat *plat)
} }
#endif #endif
__weak u32 get_cpu_temp_grade(int *minc, int *maxc)
{
return 0;
}
static int cpu_imx_get_desc(const struct udevice *dev, char *buf, int size) static int cpu_imx_get_desc(const struct udevice *dev, char *buf, int size)
{ {
struct cpu_imx_plat *plat = dev_get_plat(dev); struct cpu_imx_plat *plat = dev_get_plat(dev);
const char *grade;
int ret, temp; int ret, temp;
int minc, maxc;
if (size < 100) if (size < 100)
return -ENOSPC; return -ENOSPC;
@ -132,6 +140,27 @@ static int cpu_imx_get_desc(const struct udevice *dev, char *buf, int size)
ret = snprintf(buf, size, "NXP i.MX%s Rev%s %s at %u MHz", ret = snprintf(buf, size, "NXP i.MX%s Rev%s %s at %u MHz",
plat->type, plat->rev, plat->name, plat->freq_mhz); plat->type, plat->rev, plat->name, plat->freq_mhz);
if (IS_ENABLED(CONFIG_IMX9)) {
switch (get_cpu_temp_grade(&minc, &maxc)) {
case TEMP_AUTOMOTIVE:
grade = "Automotive temperature grade ";
break;
case TEMP_INDUSTRIAL:
grade = "Industrial temperature grade ";
break;
case TEMP_EXTCOMMERCIAL:
grade = "Extended Consumer temperature grade ";
break;
default:
grade = "Consumer temperature grade ";
break;
}
buf = buf + ret;
size = size - ret;
ret = snprintf(buf, size, "\nCPU: %s (%dC to %dC)", grade, minc, maxc);
}
if (IS_ENABLED(CONFIG_DM_THERMAL)) { if (IS_ENABLED(CONFIG_DM_THERMAL)) {
temp = cpu_imx_get_temp(plat); temp = cpu_imx_get_temp(plat);
buf = buf + ret; buf = buf + ret;