thermal: imx_tmu: enable monitoring and default alert/critical

Set default critical/alert temperature and enabling monoitoring.

Without calling imx_tmu_enable_msite() monitoring will not be enabled
and read_temperature will return 0. Additionally without setting alert
temperature will cause imx_tmu_get_temp() to spin indefiniately thinking
the system needs to cool.

This resolves the board spinning endlessly when enabling IMX_TMU in the
SPL.

Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
This commit is contained in:
Tim Harvey 2021-02-05 16:11:05 -08:00 committed by Stefano Babic
parent 1ce6e10c61
commit deb78ff34e
1 changed files with 6 additions and 0 deletions

View File

@ -344,6 +344,7 @@ static int imx_tmu_bind(struct udevice *dev)
ofnode node, offset;
const char *name;
const void *prop;
int minc, maxc;
debug("%s dev name %s\n", __func__, dev->name);
@ -352,6 +353,10 @@ static int imx_tmu_bind(struct udevice *dev)
return 0;
pdata->zone_node = 1;
/* default alert/crit temps based on temp grade */
get_cpu_temp_grade(&minc, &maxc);
pdata->critical = maxc * 1000;
pdata->alert = (maxc - 10) * 1000;
node = ofnode_path("/thermal-zones");
ofnode_for_each_subnode(offset, node) {
@ -443,6 +448,7 @@ static int imx_tmu_probe(struct udevice *dev)
if (pdata->zone_node) {
imx_tmu_init(dev);
imx_tmu_calibration(dev);
imx_tmu_enable_msite(dev);
} else {
imx_tmu_enable_msite(dev);
}