staging: ti-soc-thermal: Add get_trend support
authorJ Keerthy <j-keerthy@ti.com>
Mon, 1 Apr 2013 16:04:46 +0000 (12:04 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 1 Apr 2013 19:27:31 +0000 (12:27 -0700)
Patch adds get_trend functionality for OMAP Bandgap thermal devices.

Signed-off-by: J Keerthy <j-keerthy@ti.com>
Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/ti-soc-thermal/ti-thermal-common.c

index 231c5490d1b1509f7075aaa9840d588dbba377a9..092b39d15d2ed5903df9f0a4e60d54771b6d19c7 100644 (file)
@@ -215,6 +215,31 @@ static int ti_thermal_get_trip_temp(struct thermal_zone_device *thermal,
        return 0;
 }
 
+/* Get the temperature trend callback functions for thermal zone */
+static int ti_thermal_get_trend(struct thermal_zone_device *thermal,
+                               int trip, enum thermal_trend *trend)
+{
+       struct ti_thermal_data *data = thermal->devdata;
+       struct ti_bandgap *bgp;
+       int id, tr, ret = 0;
+
+       bgp = data->bgp;
+       id = data->sensor_id;
+
+       ret = ti_bandgap_get_trend(bgp, id, &tr);
+       if (ret)
+               return ret;
+
+       if (tr > 0)
+               *trend = THERMAL_TREND_RAISING;
+       else if (tr < 0)
+               *trend = THERMAL_TREND_DROPPING;
+       else
+               *trend = THERMAL_TREND_STABLE;
+
+       return 0;
+}
+
 /* Get critical temperature callback functions for thermal zone */
 static int ti_thermal_get_crit_temp(struct thermal_zone_device *thermal,
                                    unsigned long *temp)
@@ -225,7 +250,7 @@ static int ti_thermal_get_crit_temp(struct thermal_zone_device *thermal,
 
 static struct thermal_zone_device_ops ti_thermal_ops = {
        .get_temp = ti_thermal_get_temp,
-       /* TODO: add .get_trend */
+       .get_trend = ti_thermal_get_trend,
        .bind = ti_thermal_bind,
        .unbind = ti_thermal_unbind,
        .get_mode = ti_thermal_get_mode,