summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorZhang Rui <rui.zhang@intel.com>2008-04-21 16:07:52 +0800
committerLen Brown <len.brown@intel.com>2008-04-29 02:48:01 -0400
commite68b16abd91dca91e35ea47537ef8a1b7ad72841 (patch)
tree24f368ec94bc55447324131d4890fdcd4a3d082d /include
parent9ec732ff80b7e8a9096666f78ae584d3b393bc84 (diff)
downloadlinux-stable-e68b16abd91dca91e35ea47537ef8a1b7ad72841.tar.gz
linux-stable-e68b16abd91dca91e35ea47537ef8a1b7ad72841.tar.bz2
linux-stable-e68b16abd91dca91e35ea47537ef8a1b7ad72841.zip
thermal: add hwmon sysfs I/F
Add hwmon sys I/F for generic thermal driver. Note: we have one hwmon class device for EACH TYPE of the thermal zone device. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Acked-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/thermal.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/linux/thermal.h b/include/linux/thermal.h
index 16e6a8bdeb3c..06d3e6eb9ca8 100644
--- a/include/linux/thermal.h
+++ b/include/linux/thermal.h
@@ -66,6 +66,23 @@ struct thermal_cooling_device {
((long)t-2732+5)/10 : ((long)t-2732-5)/10)
#define CELSIUS_TO_KELVIN(t) ((t)*10+2732)
+#if defined(CONFIG_HWMON) || \
+ (defined(CONFIG_HWMON_MODULE) && defined(CONFIG_THERMAL_MODULE))
+/* thermal zone devices with the same type share one hwmon device */
+struct thermal_hwmon_device {
+ char type[THERMAL_NAME_LENGTH];
+ struct device *device;
+ int count;
+ struct list_head tz_list;
+ struct list_head node;
+};
+
+struct thermal_hwmon_attr {
+ struct device_attribute attr;
+ char name[16];
+};
+#endif
+
struct thermal_zone_device {
int id;
char type[THERMAL_NAME_LENGTH];
@@ -77,6 +94,13 @@ struct thermal_zone_device {
struct idr idr;
struct mutex lock; /* protect cooling devices list */
struct list_head node;
+#if defined(CONFIG_HWMON) || \
+ (defined(CONFIG_HWMON_MODULE) && defined(CONFIG_THERMAL_MODULE))
+ struct list_head hwmon_node;
+ struct thermal_hwmon_device *hwmon;
+ struct thermal_hwmon_attr temp_input; /* hwmon sys attr */
+ struct thermal_hwmon_attr temp_crit; /* hwmon sys attr */
+#endif
};
struct thermal_zone_device *thermal_zone_device_register(char *, int, void *,