diff options
Diffstat (limited to 'include/linux/thermal.h')
| -rw-r--r-- | include/linux/thermal.h | 32 | 
1 files changed, 30 insertions, 2 deletions
diff --git a/include/linux/thermal.h b/include/linux/thermal.h index b268d3cf7ae..f7e11c7ea7d 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h @@ -25,6 +25,7 @@  #ifndef __THERMAL_H__  #define __THERMAL_H__ +#include <linux/of.h>  #include <linux/idr.h>  #include <linux/device.h>  #include <linux/workqueue.h> @@ -143,6 +144,7 @@ struct thermal_cooling_device {  	int id;  	char type[THERMAL_NAME_LENGTH];  	struct device device; +	struct device_node *np;  	void *devdata;  	const struct thermal_cooling_device_ops *ops;  	bool updated; /* true if the cooling device does not need update */ @@ -172,7 +174,7 @@ struct thermal_zone_device {  	int emul_temperature;  	int passive;  	unsigned int forced_passive; -	const struct thermal_zone_device_ops *ops; +	struct thermal_zone_device_ops *ops;  	const struct thermal_zone_params *tzp;  	struct thermal_governor *governor;  	struct list_head thermal_instances; @@ -242,8 +244,31 @@ struct thermal_genl_event {  };  /* Function declarations */ +#ifdef CONFIG_THERMAL_OF +struct thermal_zone_device * +thermal_zone_of_sensor_register(struct device *dev, int id, +				void *data, int (*get_temp)(void *, long *), +				int (*get_trend)(void *, long *)); +void thermal_zone_of_sensor_unregister(struct device *dev, +				       struct thermal_zone_device *tz); +#else +static inline struct thermal_zone_device * +thermal_zone_of_sensor_register(struct device *dev, int id, +				void *data, int (*get_temp)(void *, long *), +				int (*get_trend)(void *, long *)) +{ +	return NULL; +} + +static inline +void thermal_zone_of_sensor_unregister(struct device *dev, +				       struct thermal_zone_device *tz) +{ +} + +#endif  struct thermal_zone_device *thermal_zone_device_register(const char *, int, int, -		void *, const struct thermal_zone_device_ops *, +		void *, struct thermal_zone_device_ops *,  		const struct thermal_zone_params *, int, int);  void thermal_zone_device_unregister(struct thermal_zone_device *); @@ -256,6 +281,9 @@ void thermal_zone_device_update(struct thermal_zone_device *);  struct thermal_cooling_device *thermal_cooling_device_register(char *, void *,  		const struct thermal_cooling_device_ops *); +struct thermal_cooling_device * +thermal_of_cooling_device_register(struct device_node *np, char *, void *, +				   const struct thermal_cooling_device_ops *);  void thermal_cooling_device_unregister(struct thermal_cooling_device *);  struct thermal_zone_device *thermal_zone_get_zone_by_name(const char *name);  int thermal_zone_get_temp(struct thermal_zone_device *tz, unsigned long *temp);  | 
