Commit c3509521 authored by Wei Ni's avatar Wei Ni Committed by Eduardo Valentin

thermal: of-thermal: allow setting trip_temp on hardware

In current of-thermal, the .set_trip_temp only support to
set trip_temp for SW. But some sensors support to set
trip_temp on hardware, so that can trigger interrupt,
shutdown or any other events.
This patch adds .set_trip_temp() callback in
thermal_zone_of_device_ops{}, so that the sensor device can
use it to set trip_temp on hardware.
Signed-off-by: default avatarWei Ni <wni@nvidia.com>
Signed-off-by: default avatarEduardo Valentin <edubezval@gmail.com>
parent d753b22d
...@@ -331,6 +331,14 @@ static int of_thermal_set_trip_temp(struct thermal_zone_device *tz, int trip, ...@@ -331,6 +331,14 @@ static int of_thermal_set_trip_temp(struct thermal_zone_device *tz, int trip,
if (trip >= data->ntrips || trip < 0) if (trip >= data->ntrips || trip < 0)
return -EDOM; return -EDOM;
if (data->ops->set_trip_temp) {
int ret;
ret = data->ops->set_trip_temp(data->sensor_data, trip, temp);
if (ret)
return ret;
}
/* thermal framework should take care of data->mask & (1 << trip) */ /* thermal framework should take care of data->mask & (1 << trip) */
data->trips[trip].temperature = temp; data->trips[trip].temperature = temp;
......
...@@ -340,6 +340,7 @@ struct thermal_zone_of_device_ops { ...@@ -340,6 +340,7 @@ struct thermal_zone_of_device_ops {
int (*get_temp)(void *, int *); int (*get_temp)(void *, int *);
int (*get_trend)(void *, long *); int (*get_trend)(void *, long *);
int (*set_emul_temp)(void *, int); int (*set_emul_temp)(void *, int);
int (*set_trip_temp)(void *, int, int);
}; };
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment