Setting the emulation temperature helps reproduce critical
temperature scenarios without risking the actual hardware at
extreme temperatures. Adding __ti_thermal_set_emul_temp as
the set_emul_temp hook.
Signed-off-by: Keerthy <j-keerthy@xxxxxx>
---
Tested the emulation temperature feature on DRA72-EVM.
drivers/thermal/ti-soc-thermal/ti-thermal-common.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
index b213a12..e6f7025 100644
--- a/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
+++ b/drivers/thermal/ti-soc-thermal/ti-thermal-common.c
@@ -278,6 +278,20 @@ static int ti_thermal_get_trend(struct thermal_zone_device *thermal,
return 0;
}
+static int __ti_thermal_set_emul_temp(void *p, int temp)
+{
+ struct ti_thermal_data *data = p;
+ struct thermal_zone_device *tz;
+
+ tz = data->ti_thermal;
+
+ mutex_lock(&tz->lock);
+ tz->emul_temperature = temp;
+ mutex_unlock(&tz->lock);
+
+ return 0;
+}
+
/* Get critical temperature callback functions for thermal zone */
static int ti_thermal_get_crit_temp(struct thermal_zone_device *thermal,
int *temp)
@@ -289,6 +303,7 @@ static int ti_thermal_get_crit_temp(struct thermal_zone_device *thermal,
static const struct thermal_zone_of_device_ops ti_of_thermal_ops = {
.get_temp = __ti_thermal_get_temp,
.get_trend = __ti_thermal_get_trend,
+ .set_emul_temp = __ti_thermal_set_emul_temp,
};
static struct thermal_zone_device_ops ti_thermal_ops = {