root/lm-sensors/trunk/lib/chips.c @ 305

Revision 305, 68.6 KB (checked in by mds, 14 years ago)

Added initial support for 83782d/83783s.
No alarms for in7/in8 yet.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1/*
2    chips.c - Part of libsensors, a Linux library for reading sensor data.
3    Copyright (c) 1998, 1999  Frodo Looijaard <frodol@dds.nl>
4
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 2 of the License, or
8    (at your option) any later version.
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    You should have received a copy of the GNU General Public License
16    along with this program; if not, write to the Free Software
17    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18*/
19
20#include "chips.h"
21#include "data.h"
22#include "sensors.h"
23#include "kernel/include/sensors.h"
24
25/* For each chip, a list of features;
26   For each feature, the number, its name, the logical mapping (for example,
27   fan1_div belongs to fan1), the compute mapping, an access field, the
28   SYSCTL id of the /proc field, the value location of the /proc field,
29   and the magnitude.
30   The access field  indicates whether resources are readable and writable.
31   Sometimes, a resource is neither; in this case, it is just a catch-all
32   category, for mappings.
33   The value location is the byte-offset where this value can be found in
34   the sysctl buffer.
35   The magnitude is the 10-power through which the read value must be
36   divided. */
37
38
39#define VALUE(x) (x-1) * sizeof(long)
40
41static sensors_chip_feature lm78_features[] =
42  { 
43    { SENSORS_LM78_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
44                        SENSORS_MODE_R, LM78_SYSCTL_IN0, VALUE(3), 2 },
45    { SENSORS_LM78_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
46                        SENSORS_MODE_R, LM78_SYSCTL_IN1, VALUE(3), 2 },
47    { SENSORS_LM78_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
48                        SENSORS_MODE_R, LM78_SYSCTL_IN2, VALUE(3), 2 },
49    { SENSORS_LM78_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
50                        SENSORS_MODE_R, LM78_SYSCTL_IN3, VALUE(3), 2 },
51    { SENSORS_LM78_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
52                        SENSORS_MODE_R, LM78_SYSCTL_IN4, VALUE(3), 2 },
53    { SENSORS_LM78_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
54                        SENSORS_MODE_R, LM78_SYSCTL_IN5, VALUE(3), 2 },
55    { SENSORS_LM78_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
56                        SENSORS_MODE_R, LM78_SYSCTL_IN6, VALUE(3), 2 },
57    { SENSORS_LM78_IN0_MIN, "in0_min", SENSORS_LM78_IN0, SENSORS_LM78_IN0,
58                            SENSORS_MODE_RW, LM78_SYSCTL_IN0, VALUE(1), 2 },
59    { SENSORS_LM78_IN1_MIN, "in1_min", SENSORS_LM78_IN1, SENSORS_LM78_IN1,
60                            SENSORS_MODE_RW, LM78_SYSCTL_IN1, VALUE(1), 2 },
61    { SENSORS_LM78_IN2_MIN, "in2_min", SENSORS_LM78_IN2, SENSORS_LM78_IN2,
62                            SENSORS_MODE_RW, LM78_SYSCTL_IN2, VALUE(1), 2 },
63    { SENSORS_LM78_IN3_MIN, "in3_min", SENSORS_LM78_IN3, SENSORS_LM78_IN3,
64                            SENSORS_MODE_RW, LM78_SYSCTL_IN3, VALUE(1), 2 },
65    { SENSORS_LM78_IN4_MIN, "in4_min", SENSORS_LM78_IN4, SENSORS_LM78_IN4,
66                            SENSORS_MODE_RW, LM78_SYSCTL_IN4, VALUE(1), 2 },
67    { SENSORS_LM78_IN5_MIN, "in5_min", SENSORS_LM78_IN5, SENSORS_LM78_IN5,
68                            SENSORS_MODE_RW, LM78_SYSCTL_IN5, VALUE(1), 2 },
69    { SENSORS_LM78_IN6_MIN, "in6_min", SENSORS_LM78_IN6, SENSORS_LM78_IN6,
70                            SENSORS_MODE_RW, LM78_SYSCTL_IN6, VALUE(1), 2 },
71    { SENSORS_LM78_IN0_MAX, "in0_max", SENSORS_LM78_IN0, SENSORS_LM78_IN0,
72                            SENSORS_MODE_RW, LM78_SYSCTL_IN0, VALUE(2), 2 },
73    { SENSORS_LM78_IN1_MAX, "in1_max", SENSORS_LM78_IN1, SENSORS_LM78_IN1,
74                            SENSORS_MODE_RW, LM78_SYSCTL_IN1, VALUE(2), 2 },
75    { SENSORS_LM78_IN2_MAX, "in2_max", SENSORS_LM78_IN2, SENSORS_LM78_IN2,
76                            SENSORS_MODE_RW, LM78_SYSCTL_IN2, VALUE(2), 2 },
77    { SENSORS_LM78_IN3_MAX, "in3_max", SENSORS_LM78_IN3, SENSORS_LM78_IN3,
78                            SENSORS_MODE_RW, LM78_SYSCTL_IN3, VALUE(2), 2 },
79    { SENSORS_LM78_IN4_MAX, "in4_max", SENSORS_LM78_IN4, SENSORS_LM78_IN4,
80                            SENSORS_MODE_RW, LM78_SYSCTL_IN4, VALUE(2), 2 },
81    { SENSORS_LM78_IN5_MAX, "in5_max", SENSORS_LM78_IN5, SENSORS_LM78_IN5,
82                            SENSORS_MODE_RW, LM78_SYSCTL_IN5, VALUE(2), 2 },
83    { SENSORS_LM78_IN6_MAX, "in6_max", SENSORS_LM78_IN6, SENSORS_LM78_IN6,
84                            SENSORS_MODE_RW, LM78_SYSCTL_IN6, VALUE(2), 2 },
85    { SENSORS_LM78_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
86                         SENSORS_MODE_R, LM78_SYSCTL_FAN1, VALUE(2), 0 },
87    { SENSORS_LM78_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
88                         SENSORS_MODE_R, LM78_SYSCTL_FAN2, VALUE(2), 0 },
89    { SENSORS_LM78_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
90                         SENSORS_MODE_R, LM78_SYSCTL_FAN3, VALUE(2), 0 },
91    { SENSORS_LM78_FAN1_MIN, "fan1_min", SENSORS_LM78_FAN1, SENSORS_LM78_FAN1,
92                             SENSORS_MODE_RW, LM78_SYSCTL_FAN1, VALUE(1), 0 },
93    { SENSORS_LM78_FAN2_MIN, "fan2_min", SENSORS_LM78_FAN2, SENSORS_LM78_FAN2,
94                             SENSORS_MODE_RW, LM78_SYSCTL_FAN2, VALUE(1), 0 },
95    { SENSORS_LM78_FAN3_MIN, "fan3_min", SENSORS_LM78_FAN3, SENSORS_LM78_FAN3,
96                             SENSORS_MODE_RW, LM78_SYSCTL_FAN3, VALUE(1), 0 },
97    { SENSORS_LM78_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
98                         SENSORS_MODE_R, LM78_SYSCTL_TEMP, VALUE(3), 1 },
99    { SENSORS_LM78_TEMP_HYST, "temp_hyst", SENSORS_LM78_TEMP,
100                              SENSORS_LM78_TEMP, SENSORS_MODE_RW, 
101                              LM78_SYSCTL_TEMP, VALUE(2), 1 },
102    { SENSORS_LM78_TEMP_OVER, "temp_over", SENSORS_LM78_TEMP,
103                              SENSORS_LM78_TEMP, SENSORS_MODE_RW, 
104                              LM78_SYSCTL_TEMP, VALUE(1), 1 },
105    { SENSORS_LM78_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
106                        SENSORS_MODE_R, LM78_SYSCTL_VID, VALUE(1), 2 },
107    { SENSORS_LM78_FAN1_DIV, "fan1_div", SENSORS_LM78_FAN1, SENSORS_NO_MAPPING,
108                             SENSORS_MODE_RW, LM78_SYSCTL_FAN_DIV, VALUE(1), 
109                             0 },
110    { SENSORS_LM78_FAN2_DIV, "fan2_div", SENSORS_LM78_FAN2, SENSORS_NO_MAPPING,
111                             SENSORS_MODE_RW, LM78_SYSCTL_FAN_DIV, VALUE(2), 
112                             0 },
113    { SENSORS_LM78_FAN3_DIV, "fan3_div", SENSORS_LM78_FAN3, SENSORS_NO_MAPPING,
114                              SENSORS_MODE_R, LM78_SYSCTL_FAN_DIV, VALUE(3), 
115                              0 },
116    { SENSORS_LM78_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
117                           SENSORS_MODE_R, LM78_SYSCTL_ALARMS, VALUE(1), 0 },
118    { 0 }
119  };
120
121static sensors_chip_feature lm78j_features[] =
122  { 
123    { SENSORS_LM78J_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
124                         SENSORS_MODE_R, LM78_SYSCTL_IN0, VALUE(3), 2 },
125    { SENSORS_LM78J_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
126                         SENSORS_MODE_R, LM78_SYSCTL_IN1, VALUE(3), 2 },
127    { SENSORS_LM78J_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
128                         SENSORS_MODE_R, LM78_SYSCTL_IN2, VALUE(3), 2 },
129    { SENSORS_LM78J_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
130                         SENSORS_MODE_R, LM78_SYSCTL_IN3, VALUE(3), 2 },
131    { SENSORS_LM78J_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
132                         SENSORS_MODE_R, LM78_SYSCTL_IN4, VALUE(3), 2 },
133    { SENSORS_LM78J_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
134                         SENSORS_MODE_R, LM78_SYSCTL_IN5, VALUE(3), 2 },
135    { SENSORS_LM78J_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
136                         SENSORS_MODE_R, LM78_SYSCTL_IN6, VALUE(3), 2 },
137    { SENSORS_LM78J_IN0_MIN, "in0_min", SENSORS_LM78J_IN0, SENSORS_LM78J_IN0,
138                             SENSORS_MODE_RW, LM78_SYSCTL_IN0, VALUE(1), 2 },
139    { SENSORS_LM78J_IN1_MIN, "in1_min", SENSORS_LM78J_IN1, SENSORS_LM78J_IN1,
140                             SENSORS_MODE_RW, LM78_SYSCTL_IN1, VALUE(1), 2 },
141    { SENSORS_LM78J_IN2_MIN, "in2_min", SENSORS_LM78J_IN2, SENSORS_LM78J_IN2,
142                             SENSORS_MODE_RW, LM78_SYSCTL_IN2, VALUE(1), 2 },
143    { SENSORS_LM78J_IN3_MIN, "in3_min", SENSORS_LM78J_IN3, SENSORS_LM78J_IN3,
144                             SENSORS_MODE_RW, LM78_SYSCTL_IN3, VALUE(1), 2 },
145    { SENSORS_LM78J_IN4_MIN, "in4_min", SENSORS_LM78J_IN4, SENSORS_LM78J_IN4,
146                             SENSORS_MODE_RW, LM78_SYSCTL_IN4, VALUE(1), 2 },
147    { SENSORS_LM78J_IN5_MIN, "in5_min", SENSORS_LM78J_IN5, SENSORS_LM78J_IN5,
148                             SENSORS_MODE_RW, LM78_SYSCTL_IN5, VALUE(1), 2 },
149    { SENSORS_LM78J_IN6_MIN, "in6_min", SENSORS_LM78J_IN6, SENSORS_LM78J_IN6,
150                             SENSORS_MODE_RW, LM78_SYSCTL_IN6, VALUE(1), 2 },
151    { SENSORS_LM78J_IN0_MAX, "in0_max", SENSORS_LM78J_IN0, SENSORS_LM78J_IN0,
152                             SENSORS_MODE_RW, LM78_SYSCTL_IN0, VALUE(2), 2 },
153    { SENSORS_LM78J_IN1_MAX, "in1_max", SENSORS_LM78J_IN1, SENSORS_LM78J_IN1,
154                             SENSORS_MODE_RW, LM78_SYSCTL_IN1, VALUE(2), 2 },
155    { SENSORS_LM78J_IN2_MAX, "in2_max", SENSORS_LM78J_IN2, SENSORS_LM78J_IN2,
156                             SENSORS_MODE_RW, LM78_SYSCTL_IN2, VALUE(2), 2 },
157    { SENSORS_LM78J_IN3_MAX, "in3_max", SENSORS_LM78J_IN3, SENSORS_LM78J_IN3,
158                             SENSORS_MODE_RW, LM78_SYSCTL_IN3, VALUE(2), 2 },
159    { SENSORS_LM78J_IN4_MAX, "in4_max", SENSORS_LM78J_IN4, SENSORS_LM78J_IN4,
160                             SENSORS_MODE_RW, LM78_SYSCTL_IN4, VALUE(2), 2 },
161    { SENSORS_LM78J_IN5_MAX, "in5_max", SENSORS_LM78J_IN5, SENSORS_LM78J_IN5,
162                             SENSORS_MODE_RW, LM78_SYSCTL_IN5, VALUE(2), 2 },
163    { SENSORS_LM78J_IN6_MAX, "in6_max", SENSORS_LM78J_IN6, SENSORS_LM78J_IN6,
164                             SENSORS_MODE_RW, LM78_SYSCTL_IN6, VALUE(2), 2 },
165    { SENSORS_LM78J_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
166                          SENSORS_MODE_R, LM78_SYSCTL_FAN1, VALUE(2), 0 },
167    { SENSORS_LM78J_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
168                          SENSORS_MODE_R, LM78_SYSCTL_FAN2, VALUE(2), 0 },
169    { SENSORS_LM78J_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
170                          SENSORS_MODE_R, LM78_SYSCTL_FAN3, VALUE(2), 0 },
171    { SENSORS_LM78J_FAN1_MIN, "fan1_min", SENSORS_LM78J_FAN1,
172                              SENSORS_LM78J_FAN1, SENSORS_MODE_RW, 
173                              LM78_SYSCTL_FAN1, VALUE(1), 0 },
174    { SENSORS_LM78J_FAN2_MIN, "fan2_min", SENSORS_LM78J_FAN2,
175                              SENSORS_LM78J_FAN2, SENSORS_MODE_RW, 
176                              LM78_SYSCTL_FAN2, VALUE(1), 0 },
177    { SENSORS_LM78J_FAN3_MIN, "fan3_min", SENSORS_LM78J_FAN3,
178                              SENSORS_LM78J_FAN3, SENSORS_MODE_RW, 
179                              LM78_SYSCTL_FAN3, VALUE(1), 0 },
180    { SENSORS_LM78J_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
181                          SENSORS_MODE_R, LM78_SYSCTL_TEMP, VALUE(3), 1 },
182    { SENSORS_LM78J_TEMP_HYST, "temp_hyst", SENSORS_LM78J_TEMP,
183                               SENSORS_LM78J_TEMP, SENSORS_MODE_RW, 
184                               LM78_SYSCTL_TEMP, VALUE(2), 1 },
185    { SENSORS_LM78J_TEMP_OVER, "temp_over", SENSORS_LM78J_TEMP,
186                               SENSORS_LM78J_TEMP, SENSORS_MODE_RW, 
187                               LM78_SYSCTL_TEMP, VALUE(1), 1 },
188    { SENSORS_LM78J_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
189                         SENSORS_MODE_R, LM78_SYSCTL_VID, VALUE(1), 2 },
190    { SENSORS_LM78J_FAN1_DIV, "fan1_div", SENSORS_LM78J_FAN1,
191                              SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
192                              LM78_SYSCTL_FAN_DIV, VALUE(1), 0 },
193    { SENSORS_LM78J_FAN2_DIV, "fan2_div", SENSORS_LM78J_FAN2,
194                              SENSORS_NO_MAPPING, SENSORS_MODE_RW,
195                              LM78_SYSCTL_FAN_DIV, VALUE(2), 0 },
196    { SENSORS_LM78J_FAN3_DIV, "fan3_div", SENSORS_LM78J_FAN3,
197                              SENSORS_NO_MAPPING, SENSORS_MODE_R,
198                              LM78_SYSCTL_FAN_DIV, VALUE(3), 0 },
199    { SENSORS_LM78J_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
200                            SENSORS_MODE_R, LM78_SYSCTL_ALARMS, VALUE(1), 0 },
201    { 0 }
202  };
203
204static sensors_chip_feature lm79_features[] =
205  { 
206    { SENSORS_LM79_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
207                        SENSORS_MODE_R, LM78_SYSCTL_IN0, VALUE(3), 2 },
208    { SENSORS_LM79_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
209                        SENSORS_MODE_R, LM78_SYSCTL_IN1, VALUE(3), 2 },
210    { SENSORS_LM79_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
211                        SENSORS_MODE_R, LM78_SYSCTL_IN2, VALUE(3), 2 },
212    { SENSORS_LM79_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
213                        SENSORS_MODE_R, LM78_SYSCTL_IN3, VALUE(3), 2 },
214    { SENSORS_LM79_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
215                        SENSORS_MODE_R, LM78_SYSCTL_IN4, VALUE(3), 2 },
216    { SENSORS_LM79_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
217                        SENSORS_MODE_R, LM78_SYSCTL_IN5, VALUE(3), 2 },
218    { SENSORS_LM79_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
219                        SENSORS_MODE_R, LM78_SYSCTL_IN6, VALUE(3), 2 },
220    { SENSORS_LM79_IN0_MIN, "in0_min", SENSORS_LM79_IN0, SENSORS_LM79_IN0,
221                            SENSORS_MODE_RW, LM78_SYSCTL_IN0, VALUE(1), 2 },
222    { SENSORS_LM79_IN1_MIN, "in1_min", SENSORS_LM79_IN1, SENSORS_LM79_IN1,
223                            SENSORS_MODE_RW, LM78_SYSCTL_IN1, VALUE(1), 2 },
224    { SENSORS_LM79_IN2_MIN, "in2_min", SENSORS_LM79_IN2, SENSORS_LM79_IN2,
225                            SENSORS_MODE_RW, LM78_SYSCTL_IN2, VALUE(1), 2 },
226    { SENSORS_LM79_IN3_MIN, "in3_min", SENSORS_LM79_IN3, SENSORS_LM79_IN3,
227                            SENSORS_MODE_RW, LM78_SYSCTL_IN3, VALUE(1), 2 },
228    { SENSORS_LM79_IN4_MIN, "in4_min", SENSORS_LM79_IN4, SENSORS_LM79_IN4,
229                            SENSORS_MODE_RW, LM78_SYSCTL_IN4, VALUE(1), 2 },
230    { SENSORS_LM79_IN5_MIN, "in5_min", SENSORS_LM79_IN5, SENSORS_LM79_IN5,
231                            SENSORS_MODE_RW, LM78_SYSCTL_IN5, VALUE(1), 2 },
232    { SENSORS_LM79_IN6_MIN, "in6_min", SENSORS_LM79_IN6, SENSORS_LM79_IN6,
233                            SENSORS_MODE_RW, LM78_SYSCTL_IN6, VALUE(1), 2 },
234    { SENSORS_LM79_IN0_MAX, "in0_max", SENSORS_LM79_IN0, SENSORS_LM79_IN0,
235                            SENSORS_MODE_RW, LM78_SYSCTL_IN0, VALUE(2), 2 },
236    { SENSORS_LM79_IN1_MAX, "in1_max", SENSORS_LM79_IN1, SENSORS_LM79_IN1,
237                            SENSORS_MODE_RW, LM78_SYSCTL_IN1, VALUE(2), 2 },
238    { SENSORS_LM79_IN2_MAX, "in2_max", SENSORS_LM79_IN2, SENSORS_LM79_IN2,
239                            SENSORS_MODE_RW, LM78_SYSCTL_IN2, VALUE(2), 2 },
240    { SENSORS_LM79_IN3_MAX, "in3_max", SENSORS_LM79_IN3, SENSORS_LM79_IN3,
241                            SENSORS_MODE_RW, LM78_SYSCTL_IN3, VALUE(2), 2 },
242    { SENSORS_LM79_IN4_MAX, "in4_max", SENSORS_LM79_IN4, SENSORS_LM79_IN4,
243                            SENSORS_MODE_RW, LM78_SYSCTL_IN4, VALUE(2), 2 },
244    { SENSORS_LM79_IN5_MAX, "in5_max", SENSORS_LM79_IN5, SENSORS_LM79_IN5,
245                            SENSORS_MODE_RW, LM78_SYSCTL_IN5, VALUE(2), 2 },
246    { SENSORS_LM79_IN6_MAX, "in6_max", SENSORS_LM79_IN6, SENSORS_LM79_IN6,
247                            SENSORS_MODE_RW, LM78_SYSCTL_IN6, VALUE(2), 2 },
248    { SENSORS_LM79_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
249                         SENSORS_MODE_R, LM78_SYSCTL_FAN1, VALUE(2), 0 },
250    { SENSORS_LM79_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
251                         SENSORS_MODE_R, LM78_SYSCTL_FAN2, VALUE(2), 0 },
252    { SENSORS_LM79_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
253                         SENSORS_MODE_R, LM78_SYSCTL_FAN3, VALUE(2), 0 },
254    { SENSORS_LM79_FAN1_MIN, "fan1_min", SENSORS_LM79_FAN1, SENSORS_LM79_FAN1,
255                             SENSORS_MODE_RW, LM78_SYSCTL_FAN1, VALUE(1), 0 },
256    { SENSORS_LM79_FAN2_MIN, "fan2_min", SENSORS_LM79_FAN2, SENSORS_LM79_FAN2,
257                             SENSORS_MODE_RW, LM78_SYSCTL_FAN2, VALUE(1), 0 },
258    { SENSORS_LM79_FAN3_MIN, "fan3_min", SENSORS_LM79_FAN3, SENSORS_LM79_FAN3,
259                             SENSORS_MODE_RW, LM78_SYSCTL_FAN3, VALUE(1), 0 },
260    { SENSORS_LM79_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
261                         SENSORS_MODE_R, LM78_SYSCTL_TEMP, VALUE(3), 1 },
262    { SENSORS_LM79_TEMP_HYST, "temp_hyst", SENSORS_LM79_TEMP,
263                              SENSORS_LM79_TEMP, SENSORS_MODE_RW, 
264                              LM78_SYSCTL_TEMP, VALUE(2), 1 },
265    { SENSORS_LM79_TEMP_OVER, "temp_over", SENSORS_LM79_TEMP,
266                              SENSORS_LM79_TEMP, SENSORS_MODE_RW, 
267                              LM78_SYSCTL_TEMP, VALUE(1), 1 },
268    { SENSORS_LM79_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
269                        SENSORS_MODE_R, LM78_SYSCTL_VID, VALUE(1), 2 },
270    { SENSORS_LM79_FAN1_DIV, "fan1_div", SENSORS_LM79_FAN1, SENSORS_NO_MAPPING,
271                             SENSORS_MODE_RW, LM78_SYSCTL_FAN_DIV, VALUE(1), 
272                             0 },
273    { SENSORS_LM79_FAN2_DIV, "fan2_div", SENSORS_LM79_FAN2, SENSORS_NO_MAPPING,
274                             SENSORS_MODE_RW, LM78_SYSCTL_FAN_DIV, VALUE(2), 
275                             0 },
276    { SENSORS_LM79_FAN3_DIV, "fan3_div", SENSORS_LM79_FAN3, SENSORS_NO_MAPPING,
277                              SENSORS_MODE_R, LM78_SYSCTL_FAN_DIV, VALUE(3), 
278                              0 },
279    { SENSORS_LM79_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
280                           SENSORS_MODE_R, LM78_SYSCTL_ALARMS, VALUE(1), 0 },
281    { 0 }
282  };
283
284
285static sensors_chip_feature lm75_features[] =
286  {
287    { SENSORS_LM75_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
288                         SENSORS_MODE_R, LM75_SYSCTL_TEMP, VALUE(3), 1 },
289    { SENSORS_LM75_TEMP_HYST, "temp_hyst", SENSORS_LM75_TEMP,
290                              SENSORS_LM75_TEMP, SENSORS_MODE_RW, 
291                              LM75_SYSCTL_TEMP, VALUE(2), 1 },
292    { SENSORS_LM75_TEMP_OVER, "temp_over", SENSORS_LM75_TEMP,
293                              SENSORS_LM75_TEMP, SENSORS_MODE_RW, 
294                              LM75_SYSCTL_TEMP, VALUE(1), 1 },
295    { 0 }
296  };
297
298
299static sensors_chip_feature adm1021_features[] =
300  {
301    { SENSORS_ADM1021_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
302                         SENSORS_MODE_R, ADM1021_SYSCTL_TEMP, VALUE(3), 0 },
303    { SENSORS_ADM1021_TEMP_HYST, "temp_low", SENSORS_ADM1021_TEMP,
304                              SENSORS_ADM1021_TEMP, SENSORS_MODE_RW, 
305                              ADM1021_SYSCTL_TEMP, VALUE(2), 0 },
306    { SENSORS_ADM1021_TEMP_OVER, "temp_over", SENSORS_ADM1021_TEMP,
307                              SENSORS_ADM1021_TEMP, SENSORS_MODE_RW,
308                              ADM1021_SYSCTL_TEMP, VALUE(1), 0 },
309    { SENSORS_ADM1021_REMOTE_TEMP, "remote_temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
310                         SENSORS_MODE_R, ADM1021_SYSCTL_REMOTE_TEMP, VALUE(3), 0 },
311    { SENSORS_ADM1021_REMOTE_TEMP_HYST, "remote_temp_low", SENSORS_ADM1021_REMOTE_TEMP,
312                              SENSORS_ADM1021_REMOTE_TEMP, SENSORS_MODE_RW, 
313                              ADM1021_SYSCTL_REMOTE_TEMP, VALUE(2), 0 },
314    { SENSORS_ADM1021_REMOTE_TEMP_OVER, "remote_temp_over", SENSORS_ADM1021_REMOTE_TEMP,
315                              SENSORS_ADM1021_REMOTE_TEMP, SENSORS_MODE_RW,
316                              ADM1021_SYSCTL_REMOTE_TEMP, VALUE(1), 0 },
317    { SENSORS_ADM1021_STATUS, "status", SENSORS_NO_MAPPING,
318                              SENSORS_NO_MAPPING, SENSORS_MODE_R,
319                              ADM1021_SYSCTL_STATUS, VALUE(1), 0 },
320    { 0 }
321  };
322
323static sensors_chip_feature gl518r00_features[] =
324  {
325    { SENSORS_GL518R00_VDD, "vdd", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
326                            SENSORS_MODE_NO_RW, GL518_SYSCTL_VDD, VALUE(3), 2 },
327    { SENSORS_GL518R00_VIN1, "vin1", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
328                             SENSORS_MODE_NO_RW, GL518_SYSCTL_VIN1, VALUE(3), 
329                             2 },
330    { SENSORS_GL518R00_VIN2, "vin2", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
331                             SENSORS_MODE_NO_RW, GL518_SYSCTL_VIN2, VALUE(3), 
332                             2 },
333    { SENSORS_GL518R00_VIN3, "vin3", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
334                             SENSORS_MODE_R, GL518_SYSCTL_VIN3, VALUE(3), 2 },
335    { SENSORS_GL518R00_VDD_MIN, "vdd_min", SENSORS_GL518R00_VDD,
336                                SENSORS_GL518R00_VDD, SENSORS_MODE_RW,
337                                GL518_SYSCTL_VDD, VALUE(1), 2 },
338    { SENSORS_GL518R00_VIN1_MIN, "vin1_min", SENSORS_GL518R00_VIN1, 
339                                 SENSORS_GL518R00_VIN1, SENSORS_MODE_RW,
340                                 GL518_SYSCTL_VIN1, VALUE(1), 2 },
341    { SENSORS_GL518R00_VIN2_MIN, "vin2_min", SENSORS_GL518R00_VIN2, 
342                                 SENSORS_GL518R00_VIN2, SENSORS_MODE_RW,
343                                 GL518_SYSCTL_VIN2, VALUE(1), 2 },
344    { SENSORS_GL518R00_VIN3_MIN, "vin3_min", SENSORS_GL518R00_VIN3, 
345                                 SENSORS_GL518R00_VIN3, SENSORS_MODE_RW,
346                                 GL518_SYSCTL_VIN3, VALUE(1), 2 },
347    { SENSORS_GL518R00_VDD_MAX, "vdd_max", SENSORS_GL518R00_VDD,
348                                SENSORS_GL518R00_VDD, SENSORS_MODE_RW,
349                                GL518_SYSCTL_VDD, VALUE(2), 2 },
350    { SENSORS_GL518R00_VIN1_MAX, "vin1_max", SENSORS_GL518R00_VIN1, 
351                                 SENSORS_GL518R00_VIN1, SENSORS_MODE_RW,
352                                 GL518_SYSCTL_VIN1, VALUE(2), 2 },
353    { SENSORS_GL518R00_VIN2_MAX, "vin2_max", SENSORS_GL518R00_VIN2, 
354                                 SENSORS_GL518R00_VIN2, SENSORS_MODE_RW,
355                                 GL518_SYSCTL_VIN2, VALUE(2), 2 },
356    { SENSORS_GL518R00_VIN3_MAX, "vin3_max", SENSORS_GL518R00_VIN3, 
357                                 SENSORS_GL518R00_VIN3, SENSORS_MODE_RW,
358                                 GL518_SYSCTL_VIN3, VALUE(2), 2 },
359    { SENSORS_GL518R00_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
360                             SENSORS_MODE_R, GL518_SYSCTL_FAN1, VALUE(2), 0 },
361    { SENSORS_GL518R00_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
362                             SENSORS_MODE_R, GL518_SYSCTL_FAN2, VALUE(2), 0 },
363    { SENSORS_GL518R00_FAN1_MIN, "fan1_min", SENSORS_GL518R00_FAN1, 
364                                 SENSORS_GL518R00_FAN1, SENSORS_MODE_RW,
365                                 GL518_SYSCTL_FAN1, VALUE(1), 0 },
366    { SENSORS_GL518R00_FAN2_MIN, "fan2_min", SENSORS_GL518R00_FAN2, 
367                                 SENSORS_GL518R00_FAN2, SENSORS_MODE_RW,
368                                 GL518_SYSCTL_FAN2, VALUE(1), 0 },
369    { SENSORS_GL518R00_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
370                             SENSORS_MODE_R, GL518_SYSCTL_TEMP, VALUE(3), 1 },
371    { SENSORS_GL518R00_TEMP_HYST, "temp_hyst", SENSORS_GL518R00_TEMP, 
372                                  SENSORS_GL518R00_TEMP, SENSORS_MODE_RW,
373                                  GL518_SYSCTL_TEMP, VALUE(2), 1 },
374    { SENSORS_GL518R00_TEMP_OVER, "temp_over", SENSORS_GL518R00_TEMP, 
375                                  SENSORS_GL518R00_TEMP, SENSORS_MODE_RW,
376                                  GL518_SYSCTL_TEMP, VALUE(1), 1 },
377    { SENSORS_GL518R00_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
378                            SENSORS_MODE_R, GL518_SYSCTL_VID, VALUE(1), 0 },
379    { SENSORS_GL518R00_FAN1_DIV, "fan1_div", SENSORS_GL518R00_FAN1, 
380                                 SENSORS_NO_MAPPING, SENSORS_MODE_RW,
381                                 GL518_SYSCTL_FAN_DIV, VALUE(1), 0 },
382    { SENSORS_GL518R00_FAN2_DIV, "fan2_div", SENSORS_GL518R00_FAN2, 
383                                 SENSORS_NO_MAPPING, SENSORS_MODE_RW,
384                                 GL518_SYSCTL_FAN_DIV, VALUE(2), 0 },
385    { SENSORS_GL518R00_ALARMS, "alarms", SENSORS_NO_MAPPING,
386                               SENSORS_NO_MAPPING, SENSORS_MODE_R,
387                               GL518_SYSCTL_ALARMS, VALUE(1), 0 },
388    { SENSORS_GL518R00_BEEP_ENABLE, "beep_enable", SENSORS_GL518R00_ALARMS,
389                               SENSORS_NO_MAPPING, SENSORS_MODE_RW,
390                               GL518_SYSCTL_BEEP, VALUE(1), 0 },
391    { SENSORS_GL518R00_BEEPS, "beeps", SENSORS_GL518R00_ALARMS,
392                               SENSORS_GL518R00_ALARMS, SENSORS_MODE_RW,
393                               GL518_SYSCTL_BEEP, VALUE(2), 0 },
394    { 0 }
395  };
396
397
398static sensors_chip_feature gl518r80_features[] =
399  {
400    { SENSORS_GL518R80_VDD, "vdd", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
401                             SENSORS_MODE_R, GL518_SYSCTL_VDD, VALUE(3), 2 },
402    { SENSORS_GL518R80_VIN1, "vin1", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
403                             SENSORS_MODE_R, GL518_SYSCTL_VIN1, VALUE(3), 2 },
404    { SENSORS_GL518R80_VIN2, "vin2", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
405                             SENSORS_MODE_R, GL518_SYSCTL_VIN2, VALUE(3), 2 },
406    { SENSORS_GL518R80_VIN3, "vin3", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
407                             SENSORS_MODE_R, GL518_SYSCTL_VIN3, VALUE(3), 2 },
408    { SENSORS_GL518R80_VDD_MIN, "vdd_min", SENSORS_GL518R80_VDD,
409                                SENSORS_GL518R80_VDD, SENSORS_MODE_RW,
410                                GL518_SYSCTL_VDD, VALUE(1), 2 },
411    { SENSORS_GL518R80_VIN1_MIN, "vin1_min", SENSORS_GL518R80_VIN1, 
412                                 SENSORS_GL518R80_VIN1, SENSORS_MODE_RW,
413                                 GL518_SYSCTL_VIN1, VALUE(1), 2 },
414    { SENSORS_GL518R80_VIN2_MIN, "vin2_min", SENSORS_GL518R80_VIN2, 
415                                 SENSORS_GL518R80_VIN2, SENSORS_MODE_RW,
416                                 GL518_SYSCTL_VIN2, VALUE(1), 2 },
417    { SENSORS_GL518R80_VIN3_MIN, "vin3_min", SENSORS_GL518R80_VIN3, 
418                                 SENSORS_GL518R80_VIN3, SENSORS_MODE_RW,
419                                 GL518_SYSCTL_VIN3, VALUE(1), 2 },
420    { SENSORS_GL518R80_VDD_MAX, "vdd_max", SENSORS_GL518R80_VDD,
421                                SENSORS_GL518R80_VDD, SENSORS_MODE_RW,
422                                GL518_SYSCTL_VDD, VALUE(2), 2 },
423    { SENSORS_GL518R80_VIN1_MAX, "vin1_max", SENSORS_GL518R80_VIN1, 
424                                 SENSORS_GL518R80_VIN1, SENSORS_MODE_RW,
425                                 GL518_SYSCTL_VIN1, VALUE(2), 2 },
426    { SENSORS_GL518R80_VIN2_MAX, "vin2_max", SENSORS_GL518R80_VIN2, 
427                                 SENSORS_GL518R80_VIN2, SENSORS_MODE_RW,
428                                 GL518_SYSCTL_VIN2, VALUE(2), 2 },
429    { SENSORS_GL518R80_VIN3_MAX, "vin3_max", SENSORS_GL518R80_VIN3, 
430                                 SENSORS_GL518R80_VIN3, SENSORS_MODE_RW,
431                                 GL518_SYSCTL_VIN3, VALUE(2), 2 },
432    { SENSORS_GL518R80_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
433                             SENSORS_MODE_R, GL518_SYSCTL_FAN1, VALUE(2), 0 },
434    { SENSORS_GL518R80_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
435                             SENSORS_MODE_R, GL518_SYSCTL_FAN2, VALUE(2), 0 },
436    { SENSORS_GL518R80_FAN1_MIN, "fan1_min", SENSORS_GL518R80_FAN1, 
437                                 SENSORS_GL518R80_FAN1, SENSORS_MODE_RW,
438                                 GL518_SYSCTL_FAN1, VALUE(1), 0 },
439    { SENSORS_GL518R80_FAN2_MIN, "fan2_min", SENSORS_GL518R80_FAN2, 
440                                 SENSORS_GL518R80_FAN2, SENSORS_MODE_RW,
441                                 GL518_SYSCTL_FAN2, VALUE(1), 0 },
442    { SENSORS_GL518R80_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
443                             SENSORS_MODE_R, GL518_SYSCTL_TEMP, VALUE(3), 1 },
444    { SENSORS_GL518R80_TEMP_HYST, "temp_hyst", SENSORS_GL518R80_TEMP, 
445                                  SENSORS_GL518R80_TEMP, SENSORS_MODE_RW,
446                                  GL518_SYSCTL_TEMP, VALUE(2), 1 },
447    { SENSORS_GL518R80_TEMP_OVER, "temp_over", SENSORS_GL518R80_TEMP, 
448                                  SENSORS_GL518R80_TEMP, SENSORS_MODE_RW,
449                                  GL518_SYSCTL_TEMP, VALUE(1), 1 },
450    { SENSORS_GL518R80_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
451                            SENSORS_MODE_R, GL518_SYSCTL_VID, VALUE(1), 0 },
452    { SENSORS_GL518R80_FAN1_DIV, "fan1_div", SENSORS_GL518R80_FAN1, 
453                                 SENSORS_NO_MAPPING, SENSORS_MODE_RW,
454                                 GL518_SYSCTL_FAN_DIV, VALUE(1), 0 },
455    { SENSORS_GL518R80_FAN2_DIV, "fan2_div", SENSORS_GL518R80_FAN2, 
456                                 SENSORS_NO_MAPPING, SENSORS_MODE_RW,
457                                 GL518_SYSCTL_FAN_DIV, VALUE(2), 0 },
458    { SENSORS_GL518R80_ALARMS, "alarms", SENSORS_NO_MAPPING,
459                               SENSORS_NO_MAPPING, SENSORS_MODE_R,
460                               GL518_SYSCTL_ALARMS, VALUE(1), 0 },
461    { SENSORS_GL518R80_BEEP_ENABLE, "beep_enable", SENSORS_GL518R80_ALARMS,
462                               SENSORS_NO_MAPPING, SENSORS_MODE_RW,
463                               GL518_SYSCTL_BEEP, VALUE(1), 0 },
464    { SENSORS_GL518R80_BEEPS, "beeps", SENSORS_GL518R80_ALARMS,
465                               SENSORS_GL518R80_ALARMS, SENSORS_MODE_RW,
466                               GL518_SYSCTL_BEEP, VALUE(2), 0 },
467    { 0 }
468  };
469
470static sensors_chip_feature lm80_features[] =
471  { 
472    { SENSORS_LM80_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
473                        SENSORS_MODE_R, LM80_SYSCTL_IN0, VALUE(3), 2 },
474    { SENSORS_LM80_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
475                        SENSORS_MODE_R, LM80_SYSCTL_IN1, VALUE(3), 2 },
476    { SENSORS_LM80_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
477                        SENSORS_MODE_R, LM80_SYSCTL_IN2, VALUE(3), 2 },
478    { SENSORS_LM80_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
479                        SENSORS_MODE_R, LM80_SYSCTL_IN3, VALUE(3), 2 },
480    { SENSORS_LM80_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
481                        SENSORS_MODE_R, LM80_SYSCTL_IN4, VALUE(3), 2 },
482    { SENSORS_LM80_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
483                        SENSORS_MODE_R, LM80_SYSCTL_IN5, VALUE(3), 2 },
484    { SENSORS_LM80_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
485                        SENSORS_MODE_R, LM80_SYSCTL_IN6, VALUE(3), 2 },
486    { SENSORS_LM80_IN0_MIN, "in0_min", SENSORS_LM80_IN0, SENSORS_LM80_IN0,
487                            SENSORS_MODE_RW, LM80_SYSCTL_IN0, VALUE(1), 2 },
488    { SENSORS_LM80_IN1_MIN, "in1_min", SENSORS_LM80_IN1, SENSORS_LM80_IN1,
489                            SENSORS_MODE_RW, LM80_SYSCTL_IN1, VALUE(1), 2 },
490    { SENSORS_LM80_IN2_MIN, "in2_min", SENSORS_LM80_IN2, SENSORS_LM80_IN2,
491                            SENSORS_MODE_RW, LM80_SYSCTL_IN2, VALUE(1), 2 },
492    { SENSORS_LM80_IN3_MIN, "in3_min", SENSORS_LM80_IN3, SENSORS_LM80_IN3,
493                            SENSORS_MODE_RW, LM80_SYSCTL_IN3, VALUE(1), 2 },
494    { SENSORS_LM80_IN4_MIN, "in4_min", SENSORS_LM80_IN4, SENSORS_LM80_IN4,
495                            SENSORS_MODE_RW, LM80_SYSCTL_IN4, VALUE(1), 2 },
496    { SENSORS_LM80_IN5_MIN, "in5_min", SENSORS_LM80_IN5, SENSORS_LM80_IN5,
497                            SENSORS_MODE_RW, LM80_SYSCTL_IN5, VALUE(1), 2 },
498    { SENSORS_LM80_IN6_MIN, "in6_min", SENSORS_LM80_IN6, SENSORS_LM80_IN6,
499                            SENSORS_MODE_RW, LM80_SYSCTL_IN6, VALUE(1), 2 },
500    { SENSORS_LM80_IN0_MAX, "in0_max", SENSORS_LM80_IN0, SENSORS_LM80_IN0,
501                            SENSORS_MODE_RW, LM80_SYSCTL_IN0, VALUE(2), 2 },
502    { SENSORS_LM80_IN1_MAX, "in1_max", SENSORS_LM80_IN1, SENSORS_LM80_IN1,
503                            SENSORS_MODE_RW, LM80_SYSCTL_IN1, VALUE(2), 2 },
504    { SENSORS_LM80_IN2_MAX, "in2_max", SENSORS_LM80_IN2, SENSORS_LM80_IN2,
505                            SENSORS_MODE_RW, LM80_SYSCTL_IN2, VALUE(2), 2 },
506    { SENSORS_LM80_IN3_MAX, "in3_max", SENSORS_LM80_IN3, SENSORS_LM80_IN3,
507                            SENSORS_MODE_RW, LM80_SYSCTL_IN3, VALUE(2), 2 },
508    { SENSORS_LM80_IN4_MAX, "in4_max", SENSORS_LM80_IN4, SENSORS_LM80_IN4,
509                            SENSORS_MODE_RW, LM80_SYSCTL_IN4, VALUE(2), 2 },
510    { SENSORS_LM80_IN5_MAX, "in5_max", SENSORS_LM80_IN5, SENSORS_LM80_IN5,
511                            SENSORS_MODE_RW, LM80_SYSCTL_IN5, VALUE(2), 2 },
512    { SENSORS_LM80_IN6_MAX, "in6_max", SENSORS_LM80_IN6, SENSORS_LM80_IN6,
513                            SENSORS_MODE_RW, LM80_SYSCTL_IN6, VALUE(2), 2 },
514    { SENSORS_LM80_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
515                         SENSORS_MODE_R, LM80_SYSCTL_FAN1, VALUE(2), 0 },
516    { SENSORS_LM80_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
517                         SENSORS_MODE_R, LM80_SYSCTL_FAN2, VALUE(2), 0 },
518    { SENSORS_LM80_FAN1_MIN, "fan1_min", SENSORS_LM80_FAN1, SENSORS_NO_MAPPING,
519                             SENSORS_MODE_RW, LM80_SYSCTL_FAN1, VALUE(1), 0 },
520    { SENSORS_LM80_FAN2_MIN, "fan2_min", SENSORS_LM80_FAN2, SENSORS_NO_MAPPING,
521                             SENSORS_MODE_RW, LM80_SYSCTL_FAN2, VALUE(1), 0 },
522    { SENSORS_LM80_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
523                         SENSORS_MODE_R, LM80_SYSCTL_TEMP, VALUE(5), 2 },
524    { SENSORS_LM80_TEMP_HOT_HYST, "temp_hot_hyst", SENSORS_LM80_TEMP,
525                              SENSORS_LM80_TEMP, SENSORS_MODE_RW, 
526                              LM80_SYSCTL_TEMP, VALUE(2), 2 },
527    { SENSORS_LM80_TEMP_HOT_MAX, "temp_hot_max", SENSORS_LM80_TEMP,
528                              SENSORS_LM80_TEMP, SENSORS_MODE_RW, 
529                              LM80_SYSCTL_TEMP, VALUE(1), 2 },
530    { SENSORS_LM80_TEMP_OS_HYST, "temp_os_hyst", SENSORS_LM80_TEMP,
531                              SENSORS_LM80_TEMP, SENSORS_MODE_RW, 
532                              LM80_SYSCTL_TEMP, VALUE(4), 2 },
533    { SENSORS_LM80_TEMP_OS_MAX, "temp_os_max", SENSORS_LM80_TEMP,
534                              SENSORS_LM80_TEMP, SENSORS_MODE_RW, 
535                              LM80_SYSCTL_TEMP, VALUE(3), 2 },
536    { SENSORS_LM80_FAN1_DIV, "fan1_div", SENSORS_LM80_FAN1, SENSORS_NO_MAPPING,
537                             SENSORS_MODE_RW, LM80_SYSCTL_FAN_DIV, VALUE(1), 
538                             0 },
539    { SENSORS_LM80_FAN2_DIV, "fan2_div", SENSORS_LM80_FAN2, SENSORS_NO_MAPPING,
540                             SENSORS_MODE_RW, LM80_SYSCTL_FAN_DIV, VALUE(2), 
541                             0 },
542    { SENSORS_LM80_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
543                           SENSORS_MODE_R, LM80_SYSCTL_ALARMS, VALUE(1), 0 },
544    { 0 }
545  };
546
547
548static sensors_chip_feature w83781d_features[] =
549  { 
550    { SENSORS_W83781D_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
551                        SENSORS_MODE_R, W83781D_SYSCTL_IN0, VALUE(3), 2 },
552    { SENSORS_W83781D_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
553                        SENSORS_MODE_R, W83781D_SYSCTL_IN1, VALUE(3), 2 },
554    { SENSORS_W83781D_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
555                        SENSORS_MODE_R, W83781D_SYSCTL_IN2, VALUE(3), 2 },
556    { SENSORS_W83781D_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
557                        SENSORS_MODE_R, W83781D_SYSCTL_IN3, VALUE(3), 2 },
558    { SENSORS_W83781D_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
559                        SENSORS_MODE_R, W83781D_SYSCTL_IN4, VALUE(3), 2 },
560    { SENSORS_W83781D_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
561                        SENSORS_MODE_R, W83781D_SYSCTL_IN5, VALUE(3), 2 },
562    { SENSORS_W83781D_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
563                        SENSORS_MODE_R, W83781D_SYSCTL_IN6, VALUE(3), 2 },
564    { SENSORS_W83781D_IN0_MIN, "in0_min", SENSORS_W83781D_IN0, 
565                        SENSORS_W83781D_IN0, SENSORS_MODE_RW, 
566                        W83781D_SYSCTL_IN0, VALUE(1), 2 },
567    { SENSORS_W83781D_IN1_MIN, "in1_min", SENSORS_W83781D_IN1, 
568                        SENSORS_W83781D_IN1, SENSORS_MODE_RW, 
569                        W83781D_SYSCTL_IN1, VALUE(1), 2 },
570    { SENSORS_W83781D_IN2_MIN, "in2_min", SENSORS_W83781D_IN2, 
571                        SENSORS_W83781D_IN2, SENSORS_MODE_RW, 
572                        W83781D_SYSCTL_IN2, VALUE(1), 2 },
573    { SENSORS_W83781D_IN3_MIN, "in3_min", SENSORS_W83781D_IN3, 
574                        SENSORS_W83781D_IN3, SENSORS_MODE_RW, 
575                        W83781D_SYSCTL_IN3, VALUE(1), 2 },
576    { SENSORS_W83781D_IN4_MIN, "in4_min", SENSORS_W83781D_IN4, 
577                        SENSORS_W83781D_IN4, SENSORS_MODE_RW, 
578                        W83781D_SYSCTL_IN4, VALUE(1), 2 },
579    { SENSORS_W83781D_IN5_MIN, "in5_min", SENSORS_W83781D_IN5, 
580                        SENSORS_W83781D_IN5, SENSORS_MODE_RW, 
581                        W83781D_SYSCTL_IN5, VALUE(1), 2 },
582    { SENSORS_W83781D_IN6_MIN, "in6_min", SENSORS_W83781D_IN6, 
583                        SENSORS_W83781D_IN6, SENSORS_MODE_RW, 
584                        W83781D_SYSCTL_IN6, VALUE(1), 2 },
585    { SENSORS_W83781D_IN0_MAX, "in0_max", SENSORS_W83781D_IN0, 
586                        SENSORS_W83781D_IN0, SENSORS_MODE_RW,
587                        W83781D_SYSCTL_IN0, VALUE(2), 2 },
588    { SENSORS_W83781D_IN1_MAX, "in1_max", SENSORS_W83781D_IN1, 
589                        SENSORS_W83781D_IN1, SENSORS_MODE_RW, 
590                        W83781D_SYSCTL_IN1, VALUE(2), 2 },
591    { SENSORS_W83781D_IN2_MAX, "in2_max", SENSORS_W83781D_IN2, 
592                        SENSORS_W83781D_IN2, SENSORS_MODE_RW, 
593                        W83781D_SYSCTL_IN2, VALUE(2), 2 },
594    { SENSORS_W83781D_IN3_MAX, "in3_max", SENSORS_W83781D_IN3, 
595                        SENSORS_W83781D_IN3, SENSORS_MODE_RW, 
596                        W83781D_SYSCTL_IN3, VALUE(2), 2 },
597    { SENSORS_W83781D_IN4_MAX, "in4_max", SENSORS_W83781D_IN4, 
598                        SENSORS_W83781D_IN4, SENSORS_MODE_RW,
599                        W83781D_SYSCTL_IN4, VALUE(2), 2 },
600    { SENSORS_W83781D_IN5_MAX, "in5_max", SENSORS_W83781D_IN5, 
601                        SENSORS_W83781D_IN5, SENSORS_MODE_RW, 
602                        W83781D_SYSCTL_IN5, VALUE(2), 2 },
603    { SENSORS_W83781D_IN6_MAX, "in6_max", SENSORS_W83781D_IN6, 
604                        SENSORS_W83781D_IN6, SENSORS_MODE_RW, 
605                        W83781D_SYSCTL_IN6, VALUE(2), 2 },
606    { SENSORS_W83781D_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
607                        SENSORS_MODE_R, W83781D_SYSCTL_FAN1, VALUE(2), 0 },
608    { SENSORS_W83781D_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
609                        SENSORS_MODE_R, W83781D_SYSCTL_FAN2, VALUE(2), 0 },
610    { SENSORS_W83781D_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
611                        SENSORS_MODE_R, W83781D_SYSCTL_FAN3, VALUE(2), 0 },
612    { SENSORS_W83781D_FAN1_MIN, "fan1_min", SENSORS_W83781D_FAN1,
613                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
614                        W83781D_SYSCTL_FAN1, VALUE(1), 0 },
615    { SENSORS_W83781D_FAN2_MIN, "fan2_min", SENSORS_W83781D_FAN2, 
616                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
617                        W83781D_SYSCTL_FAN2, VALUE(1), 0 },
618    { SENSORS_W83781D_FAN3_MIN, "fan3_min", SENSORS_W83781D_FAN3, 
619                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
620                        W83781D_SYSCTL_FAN3, VALUE(1), 0 },
621    { SENSORS_W83781D_TEMP1, "temp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
622                         SENSORS_MODE_R, W83781D_SYSCTL_TEMP1, VALUE(3), 1 },
623    { SENSORS_W83781D_TEMP1_HYST, "temp1_hyst", SENSORS_W83781D_TEMP1,
624                         SENSORS_W83781D_TEMP1, SENSORS_MODE_RW, 
625                         W83781D_SYSCTL_TEMP1, VALUE(2), 1 },
626    { SENSORS_W83781D_TEMP1_OVER, "temp1_over", SENSORS_W83781D_TEMP1,
627                         SENSORS_W83781D_TEMP1, SENSORS_MODE_RW, 
628                         W83781D_SYSCTL_TEMP1, VALUE(1), 1 },
629    { SENSORS_W83781D_TEMP2, "temp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
630                         SENSORS_MODE_R, W83781D_SYSCTL_TEMP2, VALUE(3), 1 },
631    { SENSORS_W83781D_TEMP2_HYST, "temp2_hyst", SENSORS_W83781D_TEMP2,
632                         SENSORS_W83781D_TEMP2, SENSORS_MODE_RW, 
633                         W83781D_SYSCTL_TEMP2, VALUE(2), 1 },
634    { SENSORS_W83781D_TEMP2_OVER, "temp2_over", SENSORS_W83781D_TEMP2,
635                         SENSORS_W83781D_TEMP2, SENSORS_MODE_RW, 
636                         W83781D_SYSCTL_TEMP2, VALUE(1), 1 },
637    { SENSORS_W83781D_TEMP3, "temp3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
638                         SENSORS_MODE_R, W83781D_SYSCTL_TEMP3, VALUE(3), 1 },
639    { SENSORS_W83781D_TEMP3_HYST, "temp3_hyst", SENSORS_W83781D_TEMP3,
640                         SENSORS_W83781D_TEMP3, SENSORS_MODE_RW, 
641                         W83781D_SYSCTL_TEMP3, VALUE(2), 1 },
642    { SENSORS_W83781D_TEMP3_OVER, "temp3_over", SENSORS_W83781D_TEMP3,
643                         SENSORS_W83781D_TEMP3, SENSORS_MODE_RW, 
644                         W83781D_SYSCTL_TEMP3, VALUE(1), 1 },
645
646    { SENSORS_W83781D_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
647                         SENSORS_MODE_R, W83781D_SYSCTL_VID, VALUE(1), 2 },
648    { SENSORS_W83781D_FAN1_DIV, "fan1_div", SENSORS_W83781D_FAN1, 
649                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
650                         W83781D_SYSCTL_FAN_DIV, VALUE(1), 0 },
651    { SENSORS_W83781D_FAN2_DIV, "fan2_div", SENSORS_W83781D_FAN2, 
652                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
653                         W83781D_SYSCTL_FAN_DIV, VALUE(2), 0 },
654    { SENSORS_W83781D_FAN3_DIV, "fan3_div", SENSORS_W83781D_FAN3, 
655                         SENSORS_NO_MAPPING, SENSORS_MODE_R, 
656                         W83781D_SYSCTL_FAN_DIV, VALUE(3), 0 },
657    { SENSORS_W83781D_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
658                         SENSORS_MODE_R, W83781D_SYSCTL_ALARMS, VALUE(1), 0 },
659    { SENSORS_W83781D_BEEP_ENABLE, "beep_enable", SENSORS_W83781D_ALARMS,
660                         SENSORS_NO_MAPPING, SENSORS_MODE_RW,
661                         W83781D_SYSCTL_BEEP, VALUE(1), 0 },
662    { SENSORS_W83781D_BEEPS, "beeps", SENSORS_W83781D_ALARMS,
663                         SENSORS_W83781D_ALARMS, SENSORS_MODE_RW,
664                         W83781D_SYSCTL_BEEP, VALUE(2), 0 },
665    { 0 }
666  };
667 
668static sensors_chip_feature w83782d_features[] =
669  { 
670    { SENSORS_W83782D_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
671                        SENSORS_MODE_R, W83781D_SYSCTL_IN0, VALUE(3), 2 },
672    { SENSORS_W83782D_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
673                        SENSORS_MODE_R, W83781D_SYSCTL_IN1, VALUE(3), 2 },
674    { SENSORS_W83782D_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
675                        SENSORS_MODE_R, W83781D_SYSCTL_IN2, VALUE(3), 2 },
676    { SENSORS_W83782D_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
677                        SENSORS_MODE_R, W83781D_SYSCTL_IN3, VALUE(3), 2 },
678    { SENSORS_W83782D_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
679                        SENSORS_MODE_R, W83781D_SYSCTL_IN4, VALUE(3), 2 },
680    { SENSORS_W83782D_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
681                        SENSORS_MODE_R, W83781D_SYSCTL_IN5, VALUE(3), 2 },
682    { SENSORS_W83782D_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
683                        SENSORS_MODE_R, W83781D_SYSCTL_IN6, VALUE(3), 2 },
684    { SENSORS_W83782D_IN7, "in7", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
685                        SENSORS_MODE_R, W83781D_SYSCTL_IN7, VALUE(3), 2 },
686    { SENSORS_W83782D_IN8, "in8", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
687                        SENSORS_MODE_R, W83781D_SYSCTL_IN8, VALUE(3), 2 },
688    { SENSORS_W83782D_IN0_MIN, "in0_min", SENSORS_W83782D_IN0, 
689                        SENSORS_W83782D_IN0, SENSORS_MODE_RW, 
690                        W83781D_SYSCTL_IN0, VALUE(1), 2 },
691    { SENSORS_W83782D_IN1_MIN, "in1_min", SENSORS_W83782D_IN1, 
692                        SENSORS_W83782D_IN1, SENSORS_MODE_RW, 
693                        W83781D_SYSCTL_IN1, VALUE(1), 2 },
694    { SENSORS_W83782D_IN2_MIN, "in2_min", SENSORS_W83782D_IN2, 
695                        SENSORS_W83782D_IN2, SENSORS_MODE_RW, 
696                        W83781D_SYSCTL_IN2, VALUE(1), 2 },
697    { SENSORS_W83782D_IN3_MIN, "in3_min", SENSORS_W83782D_IN3, 
698                        SENSORS_W83782D_IN3, SENSORS_MODE_RW, 
699                        W83781D_SYSCTL_IN3, VALUE(1), 2 },
700    { SENSORS_W83782D_IN4_MIN, "in4_min", SENSORS_W83782D_IN4, 
701                        SENSORS_W83782D_IN4, SENSORS_MODE_RW, 
702                        W83781D_SYSCTL_IN4, VALUE(1), 2 },
703    { SENSORS_W83782D_IN5_MIN, "in5_min", SENSORS_W83782D_IN5, 
704                        SENSORS_W83782D_IN5, SENSORS_MODE_RW, 
705                        W83781D_SYSCTL_IN5, VALUE(1), 2 },
706    { SENSORS_W83782D_IN6_MIN, "in6_min", SENSORS_W83782D_IN6, 
707                        SENSORS_W83782D_IN6, SENSORS_MODE_RW, 
708                        W83781D_SYSCTL_IN6, VALUE(1), 2 },
709    { SENSORS_W83782D_IN7_MIN, "in7_min", SENSORS_W83782D_IN7, 
710                        SENSORS_W83782D_IN7, SENSORS_MODE_RW, 
711                        W83781D_SYSCTL_IN7, VALUE(1), 2 },
712    { SENSORS_W83782D_IN8_MIN, "in8_min", SENSORS_W83782D_IN8, 
713                        SENSORS_W83782D_IN8, SENSORS_MODE_RW, 
714                        W83781D_SYSCTL_IN8, VALUE(1), 2 },
715    { SENSORS_W83782D_IN0_MAX, "in0_max", SENSORS_W83782D_IN0, 
716                        SENSORS_W83782D_IN0, SENSORS_MODE_RW,
717                        W83781D_SYSCTL_IN0, VALUE(2), 2 },
718    { SENSORS_W83782D_IN1_MAX, "in1_max", SENSORS_W83782D_IN1, 
719                        SENSORS_W83782D_IN1, SENSORS_MODE_RW, 
720                        W83781D_SYSCTL_IN1, VALUE(2), 2 },
721    { SENSORS_W83782D_IN2_MAX, "in2_max", SENSORS_W83782D_IN2, 
722                        SENSORS_W83782D_IN2, SENSORS_MODE_RW, 
723                        W83781D_SYSCTL_IN2, VALUE(2), 2 },
724    { SENSORS_W83782D_IN3_MAX, "in3_max", SENSORS_W83782D_IN3, 
725                        SENSORS_W83782D_IN3, SENSORS_MODE_RW, 
726                        W83781D_SYSCTL_IN3, VALUE(2), 2 },
727    { SENSORS_W83782D_IN4_MAX, "in4_max", SENSORS_W83782D_IN4, 
728                        SENSORS_W83782D_IN4, SENSORS_MODE_RW,
729                        W83781D_SYSCTL_IN4, VALUE(2), 2 },
730    { SENSORS_W83782D_IN5_MAX, "in5_max", SENSORS_W83782D_IN5, 
731                        SENSORS_W83782D_IN5, SENSORS_MODE_RW, 
732                        W83781D_SYSCTL_IN5, VALUE(2), 2 },
733    { SENSORS_W83782D_IN6_MAX, "in6_max", SENSORS_W83782D_IN6, 
734                        SENSORS_W83782D_IN6, SENSORS_MODE_RW, 
735                        W83781D_SYSCTL_IN6, VALUE(2), 2 },
736    { SENSORS_W83782D_IN7_MAX, "in7_max", SENSORS_W83782D_IN7, 
737                        SENSORS_W83782D_IN7, SENSORS_MODE_RW, 
738                        W83781D_SYSCTL_IN7, VALUE(2), 2 },
739    { SENSORS_W83782D_IN8_MAX, "in8_max", SENSORS_W83782D_IN8, 
740                        SENSORS_W83782D_IN8, SENSORS_MODE_RW, 
741                        W83781D_SYSCTL_IN8, VALUE(2), 2 },
742    { SENSORS_W83782D_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
743                        SENSORS_MODE_R, W83781D_SYSCTL_FAN1, VALUE(2), 0 },
744    { SENSORS_W83782D_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
745                        SENSORS_MODE_R, W83781D_SYSCTL_FAN2, VALUE(2), 0 },
746    { SENSORS_W83782D_FAN1_MIN, "fan1_min", SENSORS_W83782D_FAN1,
747                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
748                        W83781D_SYSCTL_FAN1, VALUE(1), 0 },
749    { SENSORS_W83782D_FAN2_MIN, "fan2_min", SENSORS_W83782D_FAN2, 
750                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
751                        W83781D_SYSCTL_FAN2, VALUE(1), 0 },
752    { SENSORS_W83782D_TEMP1, "temp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
753                         SENSORS_MODE_R, W83781D_SYSCTL_TEMP1, VALUE(3), 1 },
754    { SENSORS_W83782D_TEMP1_HYST, "temp1_hyst", SENSORS_W83782D_TEMP1,
755                         SENSORS_W83782D_TEMP1, SENSORS_MODE_RW, 
756                         W83781D_SYSCTL_TEMP1, VALUE(2), 1 },
757    { SENSORS_W83782D_TEMP1_OVER, "temp1_over", SENSORS_W83782D_TEMP1,
758                         SENSORS_W83782D_TEMP1, SENSORS_MODE_RW, 
759                         W83781D_SYSCTL_TEMP1, VALUE(1), 1 },
760    { SENSORS_W83782D_TEMP2, "temp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
761                         SENSORS_MODE_R, W83781D_SYSCTL_TEMP2, VALUE(3), 1 },
762    { SENSORS_W83782D_TEMP2_HYST, "temp2_hyst", SENSORS_W83782D_TEMP2,
763                         SENSORS_W83782D_TEMP2, SENSORS_MODE_RW, 
764                         W83781D_SYSCTL_TEMP2, VALUE(2), 1 },
765    { SENSORS_W83782D_TEMP2_OVER, "temp2_over", SENSORS_W83782D_TEMP2,
766                         SENSORS_W83782D_TEMP2, SENSORS_MODE_RW, 
767                         W83781D_SYSCTL_TEMP2, VALUE(1), 1 },
768    { SENSORS_W83782D_TEMP3, "temp3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
769                         SENSORS_MODE_R, W83781D_SYSCTL_TEMP3, VALUE(3), 1 },
770    { SENSORS_W83782D_TEMP3_HYST, "temp3_hyst", SENSORS_W83782D_TEMP3,
771                         SENSORS_W83782D_TEMP3, SENSORS_MODE_RW, 
772                         W83781D_SYSCTL_TEMP3, VALUE(2), 1 },
773    { SENSORS_W83782D_TEMP3_OVER, "temp3_over", SENSORS_W83782D_TEMP3,
774                         SENSORS_W83782D_TEMP3, SENSORS_MODE_RW, 
775                         W83781D_SYSCTL_TEMP3, VALUE(1), 1 },
776
777    { SENSORS_W83782D_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
778                         SENSORS_MODE_R, W83781D_SYSCTL_VID, VALUE(1), 2 },
779    { SENSORS_W83782D_FAN1_DIV, "fan1_div", SENSORS_W83782D_FAN1, 
780                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
781                         W83781D_SYSCTL_FAN_DIV, VALUE(1), 0 },
782    { SENSORS_W83782D_FAN2_DIV, "fan2_div", SENSORS_W83782D_FAN2, 
783                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
784                         W83781D_SYSCTL_FAN_DIV, VALUE(2), 0 },
785    { SENSORS_W83782D_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
786                         SENSORS_MODE_R, W83781D_SYSCTL_ALARMS, VALUE(1), 0 },
787    { SENSORS_W83782D_BEEP_ENABLE, "beep_enable", SENSORS_W83782D_ALARMS,
788                         SENSORS_NO_MAPPING, SENSORS_MODE_RW,
789                         W83781D_SYSCTL_BEEP, VALUE(1), 0 },
790    { SENSORS_W83782D_BEEPS, "beeps", SENSORS_W83782D_ALARMS,
791                         SENSORS_W83782D_ALARMS, SENSORS_MODE_RW,
792                         W83781D_SYSCTL_BEEP, VALUE(2), 0 },
793    { 0 }
794  };
795 
796static sensors_chip_feature w83783s_features[] =
797  { 
798    { SENSORS_W83783S_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
799                        SENSORS_MODE_R, W83781D_SYSCTL_IN0, VALUE(3), 2 },
800    { SENSORS_W83783S_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
801                        SENSORS_MODE_R, W83781D_SYSCTL_IN1, VALUE(3), 2 },
802    { SENSORS_W83783S_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
803                        SENSORS_MODE_R, W83781D_SYSCTL_IN2, VALUE(3), 2 },
804    { SENSORS_W83783S_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
805                        SENSORS_MODE_R, W83781D_SYSCTL_IN3, VALUE(3), 2 },
806    { SENSORS_W83783S_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
807                        SENSORS_MODE_R, W83781D_SYSCTL_IN4, VALUE(3), 2 },
808    { SENSORS_W83783S_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
809                        SENSORS_MODE_R, W83781D_SYSCTL_IN5, VALUE(3), 2 },
810    { SENSORS_W83783S_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
811                        SENSORS_MODE_R, W83781D_SYSCTL_IN6, VALUE(3), 2 },
812    { SENSORS_W83783S_IN0_MIN, "in0_min", SENSORS_W83783S_IN0, 
813                        SENSORS_W83783S_IN0, SENSORS_MODE_RW, 
814                        W83781D_SYSCTL_IN0, VALUE(1), 2 },
815    { SENSORS_W83783S_IN1_MIN, "in1_min", SENSORS_W83783S_IN1, 
816                        SENSORS_W83783S_IN1, SENSORS_MODE_RW, 
817                        W83781D_SYSCTL_IN1, VALUE(1), 2 },
818    { SENSORS_W83783S_IN2_MIN, "in2_min", SENSORS_W83783S_IN2, 
819                        SENSORS_W83783S_IN2, SENSORS_MODE_RW, 
820                        W83781D_SYSCTL_IN2, VALUE(1), 2 },
821    { SENSORS_W83783S_IN3_MIN, "in3_min", SENSORS_W83783S_IN3, 
822                        SENSORS_W83783S_IN3, SENSORS_MODE_RW, 
823                        W83781D_SYSCTL_IN3, VALUE(1), 2 },
824    { SENSORS_W83783S_IN4_MIN, "in4_min", SENSORS_W83783S_IN4, 
825                        SENSORS_W83783S_IN4, SENSORS_MODE_RW, 
826                        W83781D_SYSCTL_IN4, VALUE(1), 2 },
827    { SENSORS_W83783S_IN5_MIN, "in5_min", SENSORS_W83783S_IN5, 
828                        SENSORS_W83783S_IN5, SENSORS_MODE_RW, 
829                        W83781D_SYSCTL_IN5, VALUE(1), 2 },
830    { SENSORS_W83783S_IN6_MIN, "in6_min", SENSORS_W83783S_IN6, 
831                        SENSORS_W83783S_IN6, SENSORS_MODE_RW, 
832                        W83781D_SYSCTL_IN6, VALUE(1), 2 },
833    { SENSORS_W83783S_IN0_MAX, "in0_max", SENSORS_W83783S_IN0, 
834                        SENSORS_W83783S_IN0, SENSORS_MODE_RW,
835                        W83781D_SYSCTL_IN0, VALUE(2), 2 },
836    { SENSORS_W83783S_IN1_MAX, "in1_max", SENSORS_W83783S_IN1, 
837                        SENSORS_W83783S_IN1, SENSORS_MODE_RW, 
838                        W83781D_SYSCTL_IN1, VALUE(2), 2 },
839    { SENSORS_W83783S_IN2_MAX, "in2_max", SENSORS_W83783S_IN2, 
840                        SENSORS_W83783S_IN2, SENSORS_MODE_RW, 
841                        W83781D_SYSCTL_IN2, VALUE(2), 2 },
842    { SENSORS_W83783S_IN3_MAX, "in3_max", SENSORS_W83783S_IN3, 
843                        SENSORS_W83783S_IN3, SENSORS_MODE_RW, 
844                        W83781D_SYSCTL_IN3, VALUE(2), 2 },
845    { SENSORS_W83783S_IN4_MAX, "in4_max", SENSORS_W83783S_IN4, 
846                        SENSORS_W83783S_IN4, SENSORS_MODE_RW,
847                        W83781D_SYSCTL_IN4, VALUE(2), 2 },
848    { SENSORS_W83783S_IN5_MAX, "in5_max", SENSORS_W83783S_IN5, 
849                        SENSORS_W83783S_IN5, SENSORS_MODE_RW, 
850                        W83781D_SYSCTL_IN5, VALUE(2), 2 },
851    { SENSORS_W83783S_IN6_MAX, "in6_max", SENSORS_W83783S_IN6, 
852                        SENSORS_W83783S_IN6, SENSORS_MODE_RW, 
853                        W83781D_SYSCTL_IN6, VALUE(2), 2 },
854    { SENSORS_W83783S_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
855                        SENSORS_MODE_R, W83781D_SYSCTL_FAN1, VALUE(2), 0 },
856    { SENSORS_W83783S_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
857                        SENSORS_MODE_R, W83781D_SYSCTL_FAN2, VALUE(2), 0 },
858    { SENSORS_W83783S_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
859                        SENSORS_MODE_R, W83781D_SYSCTL_FAN3, VALUE(2), 0 },
860    { SENSORS_W83783S_FAN1_MIN, "fan1_min", SENSORS_W83783S_FAN1,
861                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
862                        W83781D_SYSCTL_FAN1, VALUE(1), 0 },
863    { SENSORS_W83783S_FAN2_MIN, "fan2_min", SENSORS_W83783S_FAN2, 
864                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
865                        W83781D_SYSCTL_FAN2, VALUE(1), 0 },
866    { SENSORS_W83783S_FAN3_MIN, "fan3_min", SENSORS_W83783S_FAN3, 
867                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
868                        W83781D_SYSCTL_FAN3, VALUE(1), 0 },
869    { SENSORS_W83783S_TEMP1, "temp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
870                         SENSORS_MODE_R, W83781D_SYSCTL_TEMP1, VALUE(3), 1 },
871    { SENSORS_W83783S_TEMP1_HYST, "temp1_hyst", SENSORS_W83783S_TEMP1,
872                         SENSORS_W83783S_TEMP1, SENSORS_MODE_RW, 
873                         W83781D_SYSCTL_TEMP1, VALUE(2), 1 },
874    { SENSORS_W83783S_TEMP1_OVER, "temp1_over", SENSORS_W83783S_TEMP1,
875                         SENSORS_W83783S_TEMP1, SENSORS_MODE_RW, 
876                         W83781D_SYSCTL_TEMP1, VALUE(1), 1 },
877    { SENSORS_W83783S_TEMP2, "temp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
878                         SENSORS_MODE_R, W83781D_SYSCTL_TEMP2, VALUE(3), 1 },
879    { SENSORS_W83783S_TEMP2_HYST, "temp2_hyst", SENSORS_W83783S_TEMP2,
880                         SENSORS_W83783S_TEMP2, SENSORS_MODE_RW, 
881                         W83781D_SYSCTL_TEMP2, VALUE(2), 1 },
882    { SENSORS_W83783S_TEMP2_OVER, "temp2_over", SENSORS_W83783S_TEMP2,
883                         SENSORS_W83783S_TEMP2, SENSORS_MODE_RW, 
884                         W83781D_SYSCTL_TEMP2, VALUE(1), 1 },
885    { SENSORS_W83783S_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
886                         SENSORS_MODE_R, W83781D_SYSCTL_VID, VALUE(1), 2 },
887    { SENSORS_W83783S_FAN1_DIV, "fan1_div", SENSORS_W83783S_FAN1, 
888                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
889                         W83781D_SYSCTL_FAN_DIV, VALUE(1), 0 },
890    { SENSORS_W83783S_FAN2_DIV, "fan2_div", SENSORS_W83783S_FAN2, 
891                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
892                         W83781D_SYSCTL_FAN_DIV, VALUE(2), 0 },
893    { SENSORS_W83783S_FAN3_DIV, "fan3_div", SENSORS_W83783S_FAN3, 
894                         SENSORS_NO_MAPPING, SENSORS_MODE_R, 
895                         W83781D_SYSCTL_FAN_DIV, VALUE(3), 0 },
896    { SENSORS_W83783S_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
897                         SENSORS_MODE_R, W83781D_SYSCTL_ALARMS, VALUE(1), 0 },
898    { SENSORS_W83783S_BEEP_ENABLE, "beep_enable", SENSORS_W83783S_ALARMS,
899                         SENSORS_NO_MAPPING, SENSORS_MODE_RW,
900                         W83781D_SYSCTL_BEEP, VALUE(1), 0 },
901    { SENSORS_W83783S_BEEPS, "beeps", SENSORS_W83783S_ALARMS,
902                         SENSORS_W83783S_ALARMS, SENSORS_MODE_RW,
903                         W83781D_SYSCTL_BEEP, VALUE(2), 0 },
904    { 0 }
905  };
906 
907static sensors_chip_feature adm9240_features[] =
908  { 
909    { SENSORS_ADM9240_IN0, "2.5V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
910                        SENSORS_MODE_R, ADM9240_SYSCTL_IN0, VALUE(3), 2 },
911    { SENSORS_ADM9240_IN1, "Vccp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
912                        SENSORS_MODE_R, ADM9240_SYSCTL_IN1, VALUE(3), 2 },
913    { SENSORS_ADM9240_IN2, "3.3V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
914                        SENSORS_MODE_R, ADM9240_SYSCTL_IN2, VALUE(3), 2 },
915    { SENSORS_ADM9240_IN3, "5V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
916                        SENSORS_MODE_R, ADM9240_SYSCTL_IN3, VALUE(3), 2 },
917    { SENSORS_ADM9240_IN4, "12V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
918                        SENSORS_MODE_R, ADM9240_SYSCTL_IN4, VALUE(3), 2 },
919    { SENSORS_ADM9240_IN5, "Vccp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
920                        SENSORS_MODE_R, ADM9240_SYSCTL_IN5, VALUE(3), 2 },
921    { SENSORS_ADM9240_IN0_MIN, "2.5V_min", SENSORS_ADM9240_IN0, 
922                        SENSORS_ADM9240_IN0, SENSORS_MODE_RW, 
923                        ADM9240_SYSCTL_IN0, VALUE(1), 2 },
924    { SENSORS_ADM9240_IN1_MIN, "Vccp1_min", SENSORS_ADM9240_IN1, 
925                        SENSORS_ADM9240_IN1, SENSORS_MODE_RW, 
926                        ADM9240_SYSCTL_IN1, VALUE(1), 2 },
927    { SENSORS_ADM9240_IN2_MIN, "3.3V_min", SENSORS_ADM9240_IN2, 
928                        SENSORS_ADM9240_IN2, SENSORS_MODE_RW, 
929                        ADM9240_SYSCTL_IN2, VALUE(1), 2 },
930    { SENSORS_ADM9240_IN3_MIN, "5V_min", SENSORS_ADM9240_IN3, 
931                        SENSORS_ADM9240_IN3, SENSORS_MODE_RW, 
932                        ADM9240_SYSCTL_IN3, VALUE(1), 2 },
933    { SENSORS_ADM9240_IN4_MIN, "12V_min", SENSORS_ADM9240_IN4, 
934                        SENSORS_ADM9240_IN4, SENSORS_MODE_RW, 
935                        ADM9240_SYSCTL_IN4, VALUE(1), 2 },
936    { SENSORS_ADM9240_IN5_MIN, "Vccp2_min", SENSORS_ADM9240_IN5, 
937                        SENSORS_ADM9240_IN5, SENSORS_MODE_RW, 
938                        ADM9240_SYSCTL_IN5, VALUE(1), 2 },
939    { SENSORS_ADM9240_IN0_MAX, "2.5V_max", SENSORS_ADM9240_IN0, 
940                        SENSORS_ADM9240_IN0, SENSORS_MODE_RW,
941                        ADM9240_SYSCTL_IN0, VALUE(2), 2 },
942    { SENSORS_ADM9240_IN1_MAX, "Vccp1_max", SENSORS_ADM9240_IN1, 
943                        SENSORS_ADM9240_IN1, SENSORS_MODE_RW, 
944                        ADM9240_SYSCTL_IN1, VALUE(2), 2 },
945    { SENSORS_ADM9240_IN2_MAX, "3.3V_max", SENSORS_ADM9240_IN2, 
946                        SENSORS_ADM9240_IN2, SENSORS_MODE_RW, 
947                        ADM9240_SYSCTL_IN2, VALUE(2), 2 },
948    { SENSORS_ADM9240_IN3_MAX, "5V_max", SENSORS_ADM9240_IN3, 
949                        SENSORS_ADM9240_IN3, SENSORS_MODE_RW, 
950                        ADM9240_SYSCTL_IN3, VALUE(2), 2 },
951    { SENSORS_ADM9240_IN4_MAX, "12V_max", SENSORS_ADM9240_IN4, 
952                        SENSORS_ADM9240_IN4, SENSORS_MODE_RW,
953                        ADM9240_SYSCTL_IN4, VALUE(2), 2 },
954    { SENSORS_ADM9240_IN5_MAX, "Vccp2_max", SENSORS_ADM9240_IN5, 
955                        SENSORS_ADM9240_IN5, SENSORS_MODE_RW, 
956                        ADM9240_SYSCTL_IN5, VALUE(2), 2 },
957    { SENSORS_ADM9240_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
958                        SENSORS_MODE_R, ADM9240_SYSCTL_FAN1, VALUE(2), 0 },
959    { SENSORS_ADM9240_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
960                        SENSORS_MODE_R, ADM9240_SYSCTL_FAN2, VALUE(2), 0 },
961    { SENSORS_ADM9240_FAN1_MIN, "fan1_min", SENSORS_ADM9240_FAN1,
962                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
963                        ADM9240_SYSCTL_FAN1, VALUE(1), 0 },
964    { SENSORS_ADM9240_FAN2_MIN, "fan2_min", SENSORS_ADM9240_FAN2, 
965                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
966                        ADM9240_SYSCTL_FAN2, VALUE(1), 0 },
967    { SENSORS_ADM9240_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
968                         SENSORS_MODE_R, ADM9240_SYSCTL_TEMP, VALUE(3), 1 },
969    { SENSORS_ADM9240_TEMP_HYST, "temp_hyst", SENSORS_ADM9240_TEMP,
970                         SENSORS_ADM9240_TEMP, SENSORS_MODE_RW, 
971                         ADM9240_SYSCTL_TEMP, VALUE(2), 1 },
972    { SENSORS_ADM9240_TEMP_OVER, "temp_over", SENSORS_ADM9240_TEMP,
973                         SENSORS_ADM9240_TEMP, SENSORS_MODE_RW, 
974                         ADM9240_SYSCTL_TEMP, VALUE(1), 1 },
975
976    { SENSORS_ADM9240_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
977                         SENSORS_MODE_R, ADM9240_SYSCTL_VID, VALUE(1), 2 },
978    { SENSORS_ADM9240_FAN1_DIV, "fan1_div", SENSORS_ADM9240_FAN1, 
979                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
980                         ADM9240_SYSCTL_FAN_DIV, VALUE(1), 0 },
981    { SENSORS_ADM9240_FAN2_DIV, "fan2_div", SENSORS_ADM9240_FAN2, 
982                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
983                         ADM9240_SYSCTL_FAN_DIV, VALUE(2), 0 },
984    { SENSORS_ADM9240_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
985                         SENSORS_MODE_R, ADM9240_SYSCTL_ALARMS, VALUE(1), 0 },
986    { SENSORS_ADM9240_ANALOG_OUT, "analog_out", SENSORS_NO_MAPPING,
987                         SENSORS_NO_MAPPING, SENSORS_MODE_RW,
988                         ADM9240_SYSCTL_ANALOG_OUT, VALUE(1), 0 },
989    { 0 }
990  };
991
992static sensors_chip_feature sis5595_features[] =
993  { 
994    { SENSORS_SIS5595_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
995                        SENSORS_MODE_R, LM78_SYSCTL_IN0, VALUE(3), 2 },
996    { SENSORS_SIS5595_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
997                        SENSORS_MODE_R, LM78_SYSCTL_IN1, VALUE(3), 2 },
998    { SENSORS_SIS5595_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
999                        SENSORS_MODE_R, LM78_SYSCTL_IN2, VALUE(3), 2 },
1000    { SENSORS_SIS5595_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1001                        SENSORS_MODE_R, LM78_SYSCTL_IN3, VALUE(3), 2 },
1002    { SENSORS_SIS5595_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1003                        SENSORS_MODE_R, LM78_SYSCTL_IN4, VALUE(3), 2 },
1004    { SENSORS_SIS5595_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1005                        SENSORS_MODE_R, LM78_SYSCTL_IN5, VALUE(3), 2 },
1006    { SENSORS_SIS5595_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1007                        SENSORS_MODE_R, LM78_SYSCTL_IN6, VALUE(3), 2 },
1008    { SENSORS_SIS5595_IN0_MIN, "in0_min", SENSORS_SIS5595_IN0, SENSORS_SIS5595_IN0,
1009                            SENSORS_MODE_RW, LM78_SYSCTL_IN0, VALUE(1), 2 },
1010    { SENSORS_SIS5595_IN1_MIN, "in1_min", SENSORS_SIS5595_IN1, SENSORS_SIS5595_IN1,
1011                            SENSORS_MODE_RW, LM78_SYSCTL_IN1, VALUE(1), 2 },
1012    { SENSORS_SIS5595_IN2_MIN, "in2_min", SENSORS_SIS5595_IN2, SENSORS_SIS5595_IN2,
1013                            SENSORS_MODE_RW, LM78_SYSCTL_IN2, VALUE(1), 2 },
1014    { SENSORS_SIS5595_IN3_MIN, "in3_min", SENSORS_SIS5595_IN3, SENSORS_SIS5595_IN3,
1015                            SENSORS_MODE_RW, LM78_SYSCTL_IN3, VALUE(1), 2 },
1016    { SENSORS_SIS5595_IN4_MIN, "in4_min", SENSORS_SIS5595_IN4, SENSORS_SIS5595_IN4,
1017                            SENSORS_MODE_RW, LM78_SYSCTL_IN4, VALUE(1), 2 },
1018    { SENSORS_SIS5595_IN5_MIN, "in5_min", SENSORS_SIS5595_IN5, SENSORS_SIS5595_IN5,
1019                            SENSORS_MODE_RW, LM78_SYSCTL_IN5, VALUE(1), 2 },
1020    { SENSORS_SIS5595_IN6_MIN, "in6_min", SENSORS_SIS5595_IN6, SENSORS_SIS5595_IN6,
1021                            SENSORS_MODE_RW, LM78_SYSCTL_IN6, VALUE(1), 2 },
1022    { SENSORS_SIS5595_IN0_MAX, "in0_max", SENSORS_SIS5595_IN0, SENSORS_SIS5595_IN0,
1023                            SENSORS_MODE_RW, LM78_SYSCTL_IN0, VALUE(2), 2 },
1024    { SENSORS_SIS5595_IN1_MAX, "in1_max", SENSORS_SIS5595_IN1, SENSORS_SIS5595_IN1,
1025                            SENSORS_MODE_RW, LM78_SYSCTL_IN1, VALUE(2), 2 },
1026    { SENSORS_SIS5595_IN2_MAX, "in2_max", SENSORS_SIS5595_IN2, SENSORS_SIS5595_IN2,
1027                            SENSORS_MODE_RW, LM78_SYSCTL_IN2, VALUE(2), 2 },
1028    { SENSORS_SIS5595_IN3_MAX, "in3_max", SENSORS_SIS5595_IN3, SENSORS_SIS5595_IN3,
1029                            SENSORS_MODE_RW, LM78_SYSCTL_IN3, VALUE(2), 2 },
1030    { SENSORS_SIS5595_IN4_MAX, "in4_max", SENSORS_SIS5595_IN4, SENSORS_SIS5595_IN4,
1031                            SENSORS_MODE_RW, LM78_SYSCTL_IN4, VALUE(2), 2 },
1032    { SENSORS_SIS5595_IN5_MAX, "in5_max", SENSORS_SIS5595_IN5, SENSORS_SIS5595_IN5,
1033                            SENSORS_MODE_RW, LM78_SYSCTL_IN5, VALUE(2), 2 },
1034    { SENSORS_SIS5595_IN6_MAX, "in6_max", SENSORS_SIS5595_IN6, SENSORS_SIS5595_IN6,
1035                            SENSORS_MODE_RW, LM78_SYSCTL_IN6, VALUE(2), 2 },
1036    { SENSORS_SIS5595_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1037                         SENSORS_MODE_R, LM78_SYSCTL_FAN1, VALUE(2), 0 },
1038    { SENSORS_SIS5595_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1039                         SENSORS_MODE_R, LM78_SYSCTL_FAN2, VALUE(2), 0 },
1040    { SENSORS_SIS5595_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1041                         SENSORS_MODE_R, LM78_SYSCTL_FAN3, VALUE(2), 0 },
1042    { SENSORS_SIS5595_FAN1_MIN, "fan1_min", SENSORS_SIS5595_FAN1, SENSORS_SIS5595_FAN1,
1043                             SENSORS_MODE_RW, LM78_SYSCTL_FAN1, VALUE(1), 0 },
1044    { SENSORS_SIS5595_FAN2_MIN, "fan2_min", SENSORS_SIS5595_FAN2, SENSORS_SIS5595_FAN2,
1045                             SENSORS_MODE_RW, LM78_SYSCTL_FAN2, VALUE(1), 0 },
1046    { SENSORS_SIS5595_FAN3_MIN, "fan3_min", SENSORS_SIS5595_FAN3, SENSORS_SIS5595_FAN3,
1047                             SENSORS_MODE_RW, LM78_SYSCTL_FAN3, VALUE(1), 0 },
1048    { SENSORS_SIS5595_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1049                         SENSORS_MODE_R, LM78_SYSCTL_TEMP, VALUE(3), 1 },
1050    { SENSORS_SIS5595_TEMP_HYST, "temp_hyst", SENSORS_SIS5595_TEMP,
1051                              SENSORS_SIS5595_TEMP, SENSORS_MODE_RW, 
1052                              LM78_SYSCTL_TEMP, VALUE(2), 1 },
1053    { SENSORS_SIS5595_TEMP_OVER, "temp_over", SENSORS_SIS5595_TEMP,
1054                              SENSORS_SIS5595_TEMP, SENSORS_MODE_RW, 
1055                              LM78_SYSCTL_TEMP, VALUE(1), 1 },
1056    { SENSORS_SIS5595_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1057                        SENSORS_MODE_R, LM78_SYSCTL_VID, VALUE(1), 2 },
1058    { SENSORS_SIS5595_FAN1_DIV, "fan1_div", SENSORS_SIS5595_FAN1, SENSORS_NO_MAPPING,
1059                             SENSORS_MODE_RW, LM78_SYSCTL_FAN_DIV, VALUE(1), 
1060                             0 },
1061    { SENSORS_SIS5595_FAN2_DIV, "fan2_div", SENSORS_SIS5595_FAN2, SENSORS_NO_MAPPING,
1062                             SENSORS_MODE_RW, LM78_SYSCTL_FAN_DIV, VALUE(2), 
1063                             0 },
1064    { SENSORS_SIS5595_FAN3_DIV, "fan3_div", SENSORS_SIS5595_FAN3, SENSORS_NO_MAPPING,
1065                              SENSORS_MODE_R, LM78_SYSCTL_FAN_DIV, VALUE(3), 
1066                              0 },
1067    { SENSORS_SIS5595_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
1068                           SENSORS_MODE_R, LM78_SYSCTL_ALARMS, VALUE(1), 0 },
1069    { 0 }
1070  };
1071
1072sensors_chip_features sensors_chip_features_list[] =
1073{
1074 { SENSORS_LM78_PREFIX, lm78_features },
1075 { SENSORS_LM78J_PREFIX, lm78j_features },
1076 { SENSORS_LM79_PREFIX, lm79_features },
1077 { SENSORS_LM75_PREFIX, lm75_features },
1078 { SENSORS_GL518R00_PREFIX, gl518r00_features },
1079 { SENSORS_GL518R80_PREFIX, gl518r80_features },
1080 { SENSORS_LM80_PREFIX, lm80_features },
1081 { SENSORS_W83781D_PREFIX, w83781d_features },
1082 { SENSORS_W83782D_PREFIX, w83782d_features },
1083 { SENSORS_W83783S_PREFIX, w83783s_features },
1084 { SENSORS_ADM9240_PREFIX, adm9240_features },
1085 { SENSORS_ADM1021_PREFIX, adm1021_features },
1086 { SENSORS_SIS5595_PREFIX, sis5595_features },
1087 { 0 }
1088};
1089
Note: See TracBrowser for help on using the browser.