thermal: of: implement .set_trips for device tree thermal zones

Change-Id: I566c468165c35e54a17663888539817246d0f0ed
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
This commit is contained in:
Sascha Hauer
2015-05-20 15:20:43 +02:00
committed by Caesar Wang
parent 606113604b
commit d464660f05
2 changed files with 16 additions and 0 deletions

View File

@@ -101,6 +101,17 @@ static int of_thermal_get_temp(struct thermal_zone_device *tz,
return data->ops->get_temp(data->sensor_data, temp);
}
static int of_thermal_set_trips(struct thermal_zone_device *tz,
int low, int high)
{
struct __thermal_zone *data = tz->devdata;
if (!data->ops || !data->ops->set_trips)
return -ENOSYS;
return data->ops->set_trips(data->sensor_data, low, high);
}
/**
* of_thermal_get_ntrips - function to export number of available trip
* points.
@@ -427,6 +438,7 @@ thermal_zone_of_add_sensor(struct device_node *zone,
tzd->ops->get_temp = of_thermal_get_temp;
tzd->ops->get_trend = of_thermal_get_trend;
tzd->ops->set_trips = of_thermal_set_trips;
tzd->ops->set_emul_temp = of_thermal_set_emul_temp;
mutex_unlock(&tzd->lock);

View File

@@ -334,12 +334,16 @@ struct thermal_genl_event {
*
* Optional:
* @get_trend: a pointer to a function that reads the sensor temperature trend.
* @@set_trips: a pointer to a function that sets a temperature window. When this
* window is left the driver must inform the thermal core via
* thermal_zone_device_update.
* @set_emul_temp: a pointer to a function that sets sensor emulated
* temperature.
*/
struct thermal_zone_of_device_ops {
int (*get_temp)(void *, int *);
int (*get_trend)(void *, long *);
int (*set_trips)(void *, int, int);
int (*set_emul_temp)(void *, int);
int (*set_trip_temp)(void *, int, int);
};