cpu: imx_cpu: Print the CPU temperature for iMX8QM A72
iMX8QM registers two thermal devices for CPUs, get the temperature from "cpu-thermal1" device for A72 Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Ye Li <ye.li@nxp.com> Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
		
							parent
							
								
									55bc96f3b6
								
							
						
					
					
						commit
						3ee6ea443e
					
				|  | @ -61,13 +61,15 @@ const char *get_core_name(struct udevice *dev) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #if IS_ENABLED(CONFIG_IMX_SCU_THERMAL) | #if IS_ENABLED(CONFIG_IMX_SCU_THERMAL) | ||||||
| static int cpu_imx_get_temp(void) | static int cpu_imx_get_temp(struct cpu_imx_platdata *plat) | ||||||
| { | { | ||||||
| 	struct udevice *thermal_dev; | 	struct udevice *thermal_dev; | ||||||
| 	int cpu_tmp, ret; | 	int cpu_tmp, ret; | ||||||
| 
 | 
 | ||||||
| 	ret = uclass_get_device_by_name(UCLASS_THERMAL, "cpu-thermal0", | 	if (!strcmp(plat->name, "A72")) | ||||||
| 					&thermal_dev); | 		ret = uclass_get_device(UCLASS_THERMAL, 1, &thermal_dev); | ||||||
|  | 	else | ||||||
|  | 		ret = uclass_get_device(UCLASS_THERMAL, 0, &thermal_dev); | ||||||
| 
 | 
 | ||||||
| 	if (!ret) { | 	if (!ret) { | ||||||
| 		ret = thermal_get_temp(thermal_dev, &cpu_tmp); | 		ret = thermal_get_temp(thermal_dev, &cpu_tmp); | ||||||
|  | @ -80,7 +82,7 @@ static int cpu_imx_get_temp(void) | ||||||
| 	return cpu_tmp; | 	return cpu_tmp; | ||||||
| } | } | ||||||
| #else | #else | ||||||
| static int cpu_imx_get_temp(void) | static int cpu_imx_get_temp(struct cpu_imx_platdata *plat) | ||||||
| { | { | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
|  | @ -89,7 +91,7 @@ static int cpu_imx_get_temp(void) | ||||||
| int cpu_imx_get_desc(struct udevice *dev, char *buf, int size) | int cpu_imx_get_desc(struct udevice *dev, char *buf, int size) | ||||||
| { | { | ||||||
| 	struct cpu_imx_platdata *plat = dev_get_platdata(dev); | 	struct cpu_imx_platdata *plat = dev_get_platdata(dev); | ||||||
| 	int ret; | 	int ret, temp; | ||||||
| 
 | 
 | ||||||
| 	if (size < 100) | 	if (size < 100) | ||||||
| 		return -ENOSPC; | 		return -ENOSPC; | ||||||
|  | @ -98,9 +100,13 @@ int cpu_imx_get_desc(struct udevice *dev, char *buf, int size) | ||||||
| 		       plat->type, plat->rev, plat->name, plat->freq_mhz); | 		       plat->type, plat->rev, plat->name, plat->freq_mhz); | ||||||
| 
 | 
 | ||||||
| 	if (IS_ENABLED(CONFIG_IMX_SCU_THERMAL)) { | 	if (IS_ENABLED(CONFIG_IMX_SCU_THERMAL)) { | ||||||
|  | 		temp = cpu_imx_get_temp(plat); | ||||||
| 		buf = buf + ret; | 		buf = buf + ret; | ||||||
| 		size = size - ret; | 		size = size - ret; | ||||||
| 		ret = snprintf(buf, size, " at %dC", cpu_imx_get_temp()); | 		if (temp != 0xdeadbeef) | ||||||
|  | 			ret = snprintf(buf, size, " at %dC", temp); | ||||||
|  | 		else | ||||||
|  | 			ret = snprintf(buf, size, " - invalid sensor data"); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	snprintf(buf + ret, size - ret, "\n"); | 	snprintf(buf + ret, size - ret, "\n"); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue