drivers: misc: therm_est: support new thermal framework
[linux-2.6.git] / include / linux / therm_est.h
1 /*
2  * include/linux/therm_est.h
3  *
4  * Copyright (c) 2010-2012, NVIDIA Corporation.
5  *
6  * This software is licensed under the terms of the GNU General Public
7  * License version 2, as published by the Free Software Foundation, and
8  * may be copied, distributed, and modified under those terms.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  */
16
17 #ifndef _LINUX_THERM_EST_H
18 #define _LINUX_THERM_EST_H
19
20 #include <linux/workqueue.h>
21 #define HIST_LEN (20)
22
23 #define MAX_ACTIVE_STATES 10
24
25 struct therm_est_subdevice {
26         void *dev_data;
27         int (*get_temp)(void *, long *);
28         long coeffs[HIST_LEN];
29         long hist[HIST_LEN];
30 };
31
32 struct therm_est_data {
33         /* trip point info : there's only 1 trip point */
34         char *cdev_type; /* cooling device for this trip */
35         long trip_temp;
36
37         /* zone parameters */
38         long toffset;
39         long polling_period;
40         int passive_delay;
41         int ndevs;
42         struct therm_est_subdevice devs[];
43 };
44
45 struct therm_fan_est_subdevice {
46         void *dev_data;
47         int (*get_temp)(void *, long *);
48         long coeffs[HIST_LEN];
49         long hist[HIST_LEN];
50 };
51
52 struct therm_fan_est_data {
53         long toffset;
54         long polling_period;
55         int ndevs;
56         int active_trip_temps[MAX_ACTIVE_STATES];
57         struct therm_fan_est_subdevice devs[];
58 };
59 #endif /* _LINUX_THERM_EST_H */