mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-27 15:12:21 +00:00
mx6: thermal: Check cpu temperature via thermal sensor
Add imx6 thermal device to mx6 soc file. Read the cpu temperature using this device to access onchip thermal sensor. Signed-off-by: Ye.Li <B37916@freescale.com> Signed-off-by: Nitin Garg <nitin.garg@freescale.com>
This commit is contained in:
parent
e3568d2eca
commit
7a26416847
2 changed files with 36 additions and 0 deletions
|
@ -22,6 +22,8 @@
|
|||
#include <asm/arch/mxc_hdmi.h>
|
||||
#include <asm/arch/crm_regs.h>
|
||||
#include <asm/bootm.h>
|
||||
#include <dm.h>
|
||||
#include <imx_thermal.h>
|
||||
|
||||
enum ldo_reg {
|
||||
LDO_ARM,
|
||||
|
@ -37,6 +39,19 @@ struct scu_regs {
|
|||
u32 fpga_rev;
|
||||
};
|
||||
|
||||
#if defined(CONFIG_IMX6_THERMAL)
|
||||
static const struct imx_thermal_plat imx6_thermal_plat = {
|
||||
.regs = (void *)ANATOP_BASE_ADDR,
|
||||
.fuse_bank = 1,
|
||||
.fuse_word = 6,
|
||||
};
|
||||
|
||||
U_BOOT_DEVICE(imx6_thermal) = {
|
||||
.name = "imx_thermal",
|
||||
.platdata = &imx6_thermal_plat,
|
||||
};
|
||||
#endif
|
||||
|
||||
u32 get_nr_cpus(void)
|
||||
{
|
||||
struct scu_regs *scu = (struct scu_regs *)SCU_BASE_ADDR;
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/arch/crm_regs.h>
|
||||
#include <ipu_pixfmt.h>
|
||||
#include <thermal.h>
|
||||
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
#include <fsl_esdhc.h>
|
||||
|
@ -134,6 +135,11 @@ int print_cpuinfo(void)
|
|||
{
|
||||
u32 cpurev;
|
||||
|
||||
#if defined(CONFIG_MX6) && defined(CONFIG_IMX6_THERMAL)
|
||||
struct udevice *thermal_dev;
|
||||
int cpu_tmp, ret;
|
||||
#endif
|
||||
|
||||
cpurev = get_cpu_rev();
|
||||
|
||||
printf("CPU: Freescale i.MX%s rev%d.%d at %d MHz\n",
|
||||
|
@ -141,6 +147,21 @@ int print_cpuinfo(void)
|
|||
(cpurev & 0x000F0) >> 4,
|
||||
(cpurev & 0x0000F) >> 0,
|
||||
mxc_get_clock(MXC_ARM_CLK) / 1000000);
|
||||
|
||||
#if defined(CONFIG_MX6) && defined(CONFIG_IMX6_THERMAL)
|
||||
ret = uclass_get_device(UCLASS_THERMAL, 0, &thermal_dev);
|
||||
if (!ret) {
|
||||
ret = thermal_get_temp(thermal_dev, &cpu_tmp);
|
||||
|
||||
if (!ret)
|
||||
printf("CPU: Temperature %d C\n", cpu_tmp);
|
||||
else
|
||||
printf("CPU: Temperature: invalid sensor data\n");
|
||||
} else {
|
||||
printf("CPU: Temperature: Can't find sensor device\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
printf("Reset cause: %s\n", get_reset_cause());
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue