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

Revision 406, 98.6 KB (checked in by frodo, 14 years ago)

Maxilife documentation and library updates

  • 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
298static sensors_chip_feature adm1021_features[] =
299  {
300    { SENSORS_ADM1021_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
301                              SENSORS_MODE_R, ADM1021_SYSCTL_TEMP, VALUE(3), 
302                              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, 
310                              SENSORS_NO_MAPPING, SENSORS_MODE_R, 
311                              ADM1021_SYSCTL_REMOTE_TEMP, VALUE(3), 0 },
312    { SENSORS_ADM1021_REMOTE_TEMP_HYST, "remote_temp_low", 
313                              SENSORS_ADM1021_REMOTE_TEMP,
314                              SENSORS_ADM1021_REMOTE_TEMP, SENSORS_MODE_RW, 
315                              ADM1021_SYSCTL_REMOTE_TEMP, VALUE(2), 0 },
316    { SENSORS_ADM1021_REMOTE_TEMP_OVER, "remote_temp_over", 
317                              SENSORS_ADM1021_REMOTE_TEMP,
318                              SENSORS_ADM1021_REMOTE_TEMP, SENSORS_MODE_RW,
319                              ADM1021_SYSCTL_REMOTE_TEMP, VALUE(1), 0 },
320    { SENSORS_ADM1021_ALARMS, "alarms", SENSORS_NO_MAPPING,
321                              SENSORS_NO_MAPPING, SENSORS_MODE_R,
322                              ADM1021_SYSCTL_ALARMS, VALUE(1), 0 },
323    { SENSORS_ADM1021_DIE_CODE, "die_code", SENSORS_NO_MAPPING,
324                              SENSORS_NO_MAPPING, SENSORS_MODE_R,
325                              ADM1021_SYSCTL_DIE_CODE, VALUE(1), 0 },
326    { 0 }
327  };
328
329static sensors_chip_feature max1617_features[] =
330  {
331    { SENSORS_MAX1617_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
332                              SENSORS_MODE_R, ADM1021_SYSCTL_TEMP, VALUE(3), 
333                              0 },
334    { SENSORS_MAX1617_TEMP_HYST, "temp_low", SENSORS_MAX1617_TEMP,
335                              SENSORS_MAX1617_TEMP, SENSORS_MODE_RW, 
336                              ADM1021_SYSCTL_TEMP, VALUE(2), 0 },
337    { SENSORS_MAX1617_TEMP_OVER, "temp_over", SENSORS_MAX1617_TEMP,
338                              SENSORS_MAX1617_TEMP, SENSORS_MODE_RW,
339                              ADM1021_SYSCTL_TEMP, VALUE(1), 0 },
340    { SENSORS_MAX1617_REMOTE_TEMP, "remote_temp", SENSORS_NO_MAPPING, 
341                              SENSORS_NO_MAPPING, SENSORS_MODE_R, 
342                              ADM1021_SYSCTL_REMOTE_TEMP, VALUE(3), 0 },
343    { SENSORS_MAX1617_REMOTE_TEMP_HYST, "remote_temp_low", 
344                              SENSORS_MAX1617_REMOTE_TEMP,
345                              SENSORS_MAX1617_REMOTE_TEMP, SENSORS_MODE_RW, 
346                              ADM1021_SYSCTL_REMOTE_TEMP, VALUE(2), 0 },
347    { SENSORS_MAX1617_REMOTE_TEMP_OVER, "remote_temp_over", 
348                              SENSORS_MAX1617_REMOTE_TEMP,
349                              SENSORS_MAX1617_REMOTE_TEMP, SENSORS_MODE_RW,
350                              ADM1021_SYSCTL_REMOTE_TEMP, VALUE(1), 0 },
351    { SENSORS_MAX1617_ALARMS, "alarms", SENSORS_NO_MAPPING,
352                              SENSORS_NO_MAPPING, SENSORS_MODE_R,
353                              ADM1021_SYSCTL_ALARMS, VALUE(1), 0 },
354    { 0 }
355  };
356
357static sensors_chip_feature max1617a_features[] =
358  {
359    { SENSORS_MAX1617A_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
360                              SENSORS_MODE_R, ADM1021_SYSCTL_TEMP, VALUE(3), 
361                              0 },
362    { SENSORS_MAX1617A_TEMP_HYST, "temp_low", SENSORS_MAX1617A_TEMP,
363                              SENSORS_MAX1617A_TEMP, SENSORS_MODE_RW, 
364                              ADM1021_SYSCTL_TEMP, VALUE(2), 0 },
365    { SENSORS_MAX1617A_TEMP_OVER, "temp_over", SENSORS_MAX1617A_TEMP,
366                              SENSORS_MAX1617A_TEMP, SENSORS_MODE_RW,
367                              ADM1021_SYSCTL_TEMP, VALUE(1), 0 },
368    { SENSORS_MAX1617A_REMOTE_TEMP, "remote_temp", SENSORS_NO_MAPPING, 
369                              SENSORS_NO_MAPPING, SENSORS_MODE_R, 
370                              ADM1021_SYSCTL_REMOTE_TEMP, VALUE(3), 0 },
371    { SENSORS_MAX1617A_REMOTE_TEMP_HYST, "remote_temp_low", 
372                              SENSORS_MAX1617A_REMOTE_TEMP,
373                              SENSORS_MAX1617A_REMOTE_TEMP, SENSORS_MODE_RW, 
374                              ADM1021_SYSCTL_REMOTE_TEMP, VALUE(2), 0 },
375    { SENSORS_MAX1617A_REMOTE_TEMP_OVER, "remote_temp_over", 
376                              SENSORS_MAX1617A_REMOTE_TEMP,
377                              SENSORS_MAX1617A_REMOTE_TEMP, SENSORS_MODE_RW,
378                              ADM1021_SYSCTL_REMOTE_TEMP, VALUE(1), 0 },
379    { SENSORS_MAX1617A_ALARMS, "alarms", SENSORS_NO_MAPPING,
380                              SENSORS_NO_MAPPING, SENSORS_MODE_R,
381                              ADM1021_SYSCTL_ALARMS, VALUE(1), 0 },
382    { 0 }
383  };
384
385static sensors_chip_feature gl518r00_features[] =
386  {
387    { SENSORS_GL518R00_VDD, "vdd", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
388                            SENSORS_MODE_R, GL518_SYSCTL_VDD, VALUE(3), 2 },
389    { SENSORS_GL518R00_VIN1, "vin1", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
390                             SENSORS_MODE_R, GL518_SYSCTL_VIN1, VALUE(3), 
391                             2 },
392    { SENSORS_GL518R00_VIN2, "vin2", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
393                             SENSORS_MODE_R, GL518_SYSCTL_VIN2, VALUE(3), 
394                             2 },
395    { SENSORS_GL518R00_VIN3, "vin3", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
396                             SENSORS_MODE_R, GL518_SYSCTL_VIN3, VALUE(3), 2 },
397    { SENSORS_GL518R00_VDD_MIN, "vdd_min", SENSORS_GL518R00_VDD,
398                                SENSORS_GL518R00_VDD, SENSORS_MODE_RW,
399                                GL518_SYSCTL_VDD, VALUE(1), 2 },
400    { SENSORS_GL518R00_VIN1_MIN, "vin1_min", SENSORS_GL518R00_VIN1, 
401                                 SENSORS_GL518R00_VIN1, SENSORS_MODE_RW,
402                                 GL518_SYSCTL_VIN1, VALUE(1), 2 },
403    { SENSORS_GL518R00_VIN2_MIN, "vin2_min", SENSORS_GL518R00_VIN2, 
404                                 SENSORS_GL518R00_VIN2, SENSORS_MODE_RW,
405                                 GL518_SYSCTL_VIN2, VALUE(1), 2 },
406    { SENSORS_GL518R00_VIN3_MIN, "vin3_min", SENSORS_GL518R00_VIN3, 
407                                 SENSORS_GL518R00_VIN3, SENSORS_MODE_RW,
408                                 GL518_SYSCTL_VIN3, VALUE(1), 2 },
409    { SENSORS_GL518R00_VDD_MAX, "vdd_max", SENSORS_GL518R00_VDD,
410                                SENSORS_GL518R00_VDD, SENSORS_MODE_RW,
411                                GL518_SYSCTL_VDD, VALUE(2), 2 },
412    { SENSORS_GL518R00_VIN1_MAX, "vin1_max", SENSORS_GL518R00_VIN1, 
413                                 SENSORS_GL518R00_VIN1, SENSORS_MODE_RW,
414                                 GL518_SYSCTL_VIN1, VALUE(2), 2 },
415    { SENSORS_GL518R00_VIN2_MAX, "vin2_max", SENSORS_GL518R00_VIN2, 
416                                 SENSORS_GL518R00_VIN2, SENSORS_MODE_RW,
417                                 GL518_SYSCTL_VIN2, VALUE(2), 2 },
418    { SENSORS_GL518R00_VIN3_MAX, "vin3_max", SENSORS_GL518R00_VIN3, 
419                                 SENSORS_GL518R00_VIN3, SENSORS_MODE_RW,
420                                 GL518_SYSCTL_VIN3, VALUE(2), 2 },
421    { SENSORS_GL518R00_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
422                             SENSORS_MODE_R, GL518_SYSCTL_FAN1, VALUE(2), 0 },
423    { SENSORS_GL518R00_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
424                             SENSORS_MODE_R, GL518_SYSCTL_FAN2, VALUE(2), 0 },
425    { SENSORS_GL518R00_FAN1_MIN, "fan1_min", SENSORS_GL518R00_FAN1, 
426                                 SENSORS_GL518R00_FAN1, SENSORS_MODE_RW,
427                                 GL518_SYSCTL_FAN1, VALUE(1), 0 },
428    { SENSORS_GL518R00_FAN2_MIN, "fan2_min", SENSORS_GL518R00_FAN2, 
429                                 SENSORS_GL518R00_FAN2, SENSORS_MODE_RW,
430                                 GL518_SYSCTL_FAN2, VALUE(1), 0 },
431    { SENSORS_GL518R00_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
432                             SENSORS_MODE_R, GL518_SYSCTL_TEMP, VALUE(3), 1 },
433    { SENSORS_GL518R00_TEMP_HYST, "temp_hyst", SENSORS_GL518R00_TEMP, 
434                                  SENSORS_GL518R00_TEMP, SENSORS_MODE_RW,
435                                  GL518_SYSCTL_TEMP, VALUE(2), 1 },
436    { SENSORS_GL518R00_TEMP_OVER, "temp_over", SENSORS_GL518R00_TEMP, 
437                                  SENSORS_GL518R00_TEMP, SENSORS_MODE_RW,
438                                  GL518_SYSCTL_TEMP, VALUE(1), 1 },
439    { SENSORS_GL518R00_FAN1_DIV, "fan1_div", SENSORS_GL518R00_FAN1, 
440                                 SENSORS_NO_MAPPING, SENSORS_MODE_RW,
441                                 GL518_SYSCTL_FAN_DIV, VALUE(1), 0 },
442    { SENSORS_GL518R00_FAN2_DIV, "fan2_div", SENSORS_GL518R00_FAN2, 
443                                 SENSORS_NO_MAPPING, SENSORS_MODE_RW,
444                                 GL518_SYSCTL_FAN_DIV, VALUE(2), 0 },
445    { SENSORS_GL518R00_ALARMS, "alarms", SENSORS_NO_MAPPING,
446                               SENSORS_NO_MAPPING, SENSORS_MODE_R,
447                               GL518_SYSCTL_ALARMS, VALUE(1), 0 },
448    { SENSORS_GL518R00_BEEP_ENABLE, "beep_enable", SENSORS_GL518R00_ALARMS,
449                               SENSORS_NO_MAPPING, SENSORS_MODE_RW,
450                               GL518_SYSCTL_BEEP, VALUE(1), 0 },
451    { SENSORS_GL518R00_BEEPS, "beeps", SENSORS_GL518R00_ALARMS,
452                               SENSORS_GL518R00_ALARMS, SENSORS_MODE_RW,
453                               GL518_SYSCTL_BEEP, VALUE(2), 0 },
454    { 0 }
455  };
456
457
458static sensors_chip_feature gl518r80_features[] =
459  {
460    { SENSORS_GL518R80_VDD, "vdd", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
461                             SENSORS_MODE_R, GL518_SYSCTL_VDD, VALUE(3), 2 },
462    { SENSORS_GL518R80_VIN1, "vin1", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
463                             SENSORS_MODE_R, GL518_SYSCTL_VIN1, VALUE(3), 2 },
464    { SENSORS_GL518R80_VIN2, "vin2", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
465                             SENSORS_MODE_R, GL518_SYSCTL_VIN2, VALUE(3), 2 },
466    { SENSORS_GL518R80_VIN3, "vin3", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
467                             SENSORS_MODE_R, GL518_SYSCTL_VIN3, VALUE(3), 2 },
468    { SENSORS_GL518R80_VDD_MIN, "vdd_min", SENSORS_GL518R80_VDD,
469                                SENSORS_GL518R80_VDD, SENSORS_MODE_RW,
470                                GL518_SYSCTL_VDD, VALUE(1), 2 },
471    { SENSORS_GL518R80_VIN1_MIN, "vin1_min", SENSORS_GL518R80_VIN1, 
472                                 SENSORS_GL518R80_VIN1, SENSORS_MODE_RW,
473                                 GL518_SYSCTL_VIN1, VALUE(1), 2 },
474    { SENSORS_GL518R80_VIN2_MIN, "vin2_min", SENSORS_GL518R80_VIN2, 
475                                 SENSORS_GL518R80_VIN2, SENSORS_MODE_RW,
476                                 GL518_SYSCTL_VIN2, VALUE(1), 2 },
477    { SENSORS_GL518R80_VIN3_MIN, "vin3_min", SENSORS_GL518R80_VIN3, 
478                                 SENSORS_GL518R80_VIN3, SENSORS_MODE_RW,
479                                 GL518_SYSCTL_VIN3, VALUE(1), 2 },
480    { SENSORS_GL518R80_VDD_MAX, "vdd_max", SENSORS_GL518R80_VDD,
481                                SENSORS_GL518R80_VDD, SENSORS_MODE_RW,
482                                GL518_SYSCTL_VDD, VALUE(2), 2 },
483    { SENSORS_GL518R80_VIN1_MAX, "vin1_max", SENSORS_GL518R80_VIN1, 
484                                 SENSORS_GL518R80_VIN1, SENSORS_MODE_RW,
485                                 GL518_SYSCTL_VIN1, VALUE(2), 2 },
486    { SENSORS_GL518R80_VIN2_MAX, "vin2_max", SENSORS_GL518R80_VIN2, 
487                                 SENSORS_GL518R80_VIN2, SENSORS_MODE_RW,
488                                 GL518_SYSCTL_VIN2, VALUE(2), 2 },
489    { SENSORS_GL518R80_VIN3_MAX, "vin3_max", SENSORS_GL518R80_VIN3, 
490                                 SENSORS_GL518R80_VIN3, SENSORS_MODE_RW,
491                                 GL518_SYSCTL_VIN3, VALUE(2), 2 },
492    { SENSORS_GL518R80_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
493                             SENSORS_MODE_R, GL518_SYSCTL_FAN1, VALUE(2), 0 },
494    { SENSORS_GL518R80_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
495                             SENSORS_MODE_R, GL518_SYSCTL_FAN2, VALUE(2), 0 },
496    { SENSORS_GL518R80_FAN1_MIN, "fan1_min", SENSORS_GL518R80_FAN1, 
497                                 SENSORS_GL518R80_FAN1, SENSORS_MODE_RW,
498                                 GL518_SYSCTL_FAN1, VALUE(1), 0 },
499    { SENSORS_GL518R80_FAN2_MIN, "fan2_min", SENSORS_GL518R80_FAN2, 
500                                 SENSORS_GL518R80_FAN2, SENSORS_MODE_RW,
501                                 GL518_SYSCTL_FAN2, VALUE(1), 0 },
502    { SENSORS_GL518R80_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
503                             SENSORS_MODE_R, GL518_SYSCTL_TEMP, VALUE(3), 1 },
504    { SENSORS_GL518R80_TEMP_HYST, "temp_hyst", SENSORS_GL518R80_TEMP, 
505                                  SENSORS_GL518R80_TEMP, SENSORS_MODE_RW,
506                                  GL518_SYSCTL_TEMP, VALUE(2), 1 },
507    { SENSORS_GL518R80_TEMP_OVER, "temp_over", SENSORS_GL518R80_TEMP, 
508                                  SENSORS_GL518R80_TEMP, SENSORS_MODE_RW,
509                                  GL518_SYSCTL_TEMP, VALUE(1), 1 },
510    { SENSORS_GL518R80_FAN1_DIV, "fan1_div", SENSORS_GL518R80_FAN1, 
511                                 SENSORS_NO_MAPPING, SENSORS_MODE_RW,
512                                 GL518_SYSCTL_FAN_DIV, VALUE(1), 0 },
513    { SENSORS_GL518R80_FAN2_DIV, "fan2_div", SENSORS_GL518R80_FAN2, 
514                                 SENSORS_NO_MAPPING, SENSORS_MODE_RW,
515                                 GL518_SYSCTL_FAN_DIV, VALUE(2), 0 },
516    { SENSORS_GL518R80_ALARMS, "alarms", SENSORS_NO_MAPPING,
517                               SENSORS_NO_MAPPING, SENSORS_MODE_R,
518                               GL518_SYSCTL_ALARMS, VALUE(1), 0 },
519    { SENSORS_GL518R80_BEEP_ENABLE, "beep_enable", SENSORS_GL518R80_ALARMS,
520                               SENSORS_NO_MAPPING, SENSORS_MODE_RW,
521                               GL518_SYSCTL_BEEP, VALUE(1), 0 },
522    { SENSORS_GL518R80_BEEPS, "beeps", SENSORS_GL518R80_ALARMS,
523                               SENSORS_GL518R80_ALARMS, SENSORS_MODE_RW,
524                               GL518_SYSCTL_BEEP, VALUE(2), 0 },
525    { 0 }
526  };
527
528static sensors_chip_feature lm80_features[] =
529  { 
530    { SENSORS_LM80_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
531                        SENSORS_MODE_R, LM80_SYSCTL_IN0, VALUE(3), 2 },
532    { SENSORS_LM80_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
533                        SENSORS_MODE_R, LM80_SYSCTL_IN1, VALUE(3), 2 },
534    { SENSORS_LM80_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
535                        SENSORS_MODE_R, LM80_SYSCTL_IN2, VALUE(3), 2 },
536    { SENSORS_LM80_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
537                        SENSORS_MODE_R, LM80_SYSCTL_IN3, VALUE(3), 2 },
538    { SENSORS_LM80_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
539                        SENSORS_MODE_R, LM80_SYSCTL_IN4, VALUE(3), 2 },
540    { SENSORS_LM80_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
541                        SENSORS_MODE_R, LM80_SYSCTL_IN5, VALUE(3), 2 },
542    { SENSORS_LM80_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
543                        SENSORS_MODE_R, LM80_SYSCTL_IN6, VALUE(3), 2 },
544    { SENSORS_LM80_IN0_MIN, "in0_min", SENSORS_LM80_IN0, SENSORS_LM80_IN0,
545                            SENSORS_MODE_RW, LM80_SYSCTL_IN0, VALUE(1), 2 },
546    { SENSORS_LM80_IN1_MIN, "in1_min", SENSORS_LM80_IN1, SENSORS_LM80_IN1,
547                            SENSORS_MODE_RW, LM80_SYSCTL_IN1, VALUE(1), 2 },
548    { SENSORS_LM80_IN2_MIN, "in2_min", SENSORS_LM80_IN2, SENSORS_LM80_IN2,
549                            SENSORS_MODE_RW, LM80_SYSCTL_IN2, VALUE(1), 2 },
550    { SENSORS_LM80_IN3_MIN, "in3_min", SENSORS_LM80_IN3, SENSORS_LM80_IN3,
551                            SENSORS_MODE_RW, LM80_SYSCTL_IN3, VALUE(1), 2 },
552    { SENSORS_LM80_IN4_MIN, "in4_min", SENSORS_LM80_IN4, SENSORS_LM80_IN4,
553                            SENSORS_MODE_RW, LM80_SYSCTL_IN4, VALUE(1), 2 },
554    { SENSORS_LM80_IN5_MIN, "in5_min", SENSORS_LM80_IN5, SENSORS_LM80_IN5,
555                            SENSORS_MODE_RW, LM80_SYSCTL_IN5, VALUE(1), 2 },
556    { SENSORS_LM80_IN6_MIN, "in6_min", SENSORS_LM80_IN6, SENSORS_LM80_IN6,
557                            SENSORS_MODE_RW, LM80_SYSCTL_IN6, VALUE(1), 2 },
558    { SENSORS_LM80_IN0_MAX, "in0_max", SENSORS_LM80_IN0, SENSORS_LM80_IN0,
559                            SENSORS_MODE_RW, LM80_SYSCTL_IN0, VALUE(2), 2 },
560    { SENSORS_LM80_IN1_MAX, "in1_max", SENSORS_LM80_IN1, SENSORS_LM80_IN1,
561                            SENSORS_MODE_RW, LM80_SYSCTL_IN1, VALUE(2), 2 },
562    { SENSORS_LM80_IN2_MAX, "in2_max", SENSORS_LM80_IN2, SENSORS_LM80_IN2,
563                            SENSORS_MODE_RW, LM80_SYSCTL_IN2, VALUE(2), 2 },
564    { SENSORS_LM80_IN3_MAX, "in3_max", SENSORS_LM80_IN3, SENSORS_LM80_IN3,
565                            SENSORS_MODE_RW, LM80_SYSCTL_IN3, VALUE(2), 2 },
566    { SENSORS_LM80_IN4_MAX, "in4_max", SENSORS_LM80_IN4, SENSORS_LM80_IN4,
567                            SENSORS_MODE_RW, LM80_SYSCTL_IN4, VALUE(2), 2 },
568    { SENSORS_LM80_IN5_MAX, "in5_max", SENSORS_LM80_IN5, SENSORS_LM80_IN5,
569                            SENSORS_MODE_RW, LM80_SYSCTL_IN5, VALUE(2), 2 },
570    { SENSORS_LM80_IN6_MAX, "in6_max", SENSORS_LM80_IN6, SENSORS_LM80_IN6,
571                            SENSORS_MODE_RW, LM80_SYSCTL_IN6, VALUE(2), 2 },
572    { SENSORS_LM80_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
573                         SENSORS_MODE_R, LM80_SYSCTL_FAN1, VALUE(2), 0 },
574    { SENSORS_LM80_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
575                         SENSORS_MODE_R, LM80_SYSCTL_FAN2, VALUE(2), 0 },
576    { SENSORS_LM80_FAN1_MIN, "fan1_min", SENSORS_LM80_FAN1, SENSORS_NO_MAPPING,
577                             SENSORS_MODE_RW, LM80_SYSCTL_FAN1, VALUE(1), 0 },
578    { SENSORS_LM80_FAN2_MIN, "fan2_min", SENSORS_LM80_FAN2, SENSORS_NO_MAPPING,
579                             SENSORS_MODE_RW, LM80_SYSCTL_FAN2, VALUE(1), 0 },
580    { SENSORS_LM80_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
581                         SENSORS_MODE_R, LM80_SYSCTL_TEMP, VALUE(5), 2 },
582    { SENSORS_LM80_TEMP_HOT_HYST, "temp_hot_hyst", SENSORS_LM80_TEMP,
583                              SENSORS_LM80_TEMP, SENSORS_MODE_RW, 
584                              LM80_SYSCTL_TEMP, VALUE(2), 2 },
585    { SENSORS_LM80_TEMP_HOT_MAX, "temp_hot_max", SENSORS_LM80_TEMP,
586                              SENSORS_LM80_TEMP, SENSORS_MODE_RW, 
587                              LM80_SYSCTL_TEMP, VALUE(1), 2 },
588    { SENSORS_LM80_TEMP_OS_HYST, "temp_os_hyst", SENSORS_LM80_TEMP,
589                              SENSORS_LM80_TEMP, SENSORS_MODE_RW, 
590                              LM80_SYSCTL_TEMP, VALUE(4), 2 },
591    { SENSORS_LM80_TEMP_OS_MAX, "temp_os_max", SENSORS_LM80_TEMP,
592                              SENSORS_LM80_TEMP, SENSORS_MODE_RW, 
593                              LM80_SYSCTL_TEMP, VALUE(3), 2 },
594    { SENSORS_LM80_FAN1_DIV, "fan1_div", SENSORS_LM80_FAN1, SENSORS_NO_MAPPING,
595                             SENSORS_MODE_RW, LM80_SYSCTL_FAN_DIV, VALUE(1), 
596                             0 },
597    { SENSORS_LM80_FAN2_DIV, "fan2_div", SENSORS_LM80_FAN2, SENSORS_NO_MAPPING,
598                             SENSORS_MODE_RW, LM80_SYSCTL_FAN_DIV, VALUE(2), 
599                             0 },
600    { SENSORS_LM80_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
601                           SENSORS_MODE_R, LM80_SYSCTL_ALARMS, VALUE(1), 0 },
602    { 0 }
603  };
604
605
606static sensors_chip_feature w83781d_features[] =
607  { 
608    { SENSORS_W83781D_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
609                        SENSORS_MODE_R, W83781D_SYSCTL_IN0, VALUE(3), 2 },
610    { SENSORS_W83781D_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
611                        SENSORS_MODE_R, W83781D_SYSCTL_IN1, VALUE(3), 2 },
612    { SENSORS_W83781D_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
613                        SENSORS_MODE_R, W83781D_SYSCTL_IN2, VALUE(3), 2 },
614    { SENSORS_W83781D_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
615                        SENSORS_MODE_R, W83781D_SYSCTL_IN3, VALUE(3), 2 },
616    { SENSORS_W83781D_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
617                        SENSORS_MODE_R, W83781D_SYSCTL_IN4, VALUE(3), 2 },
618    { SENSORS_W83781D_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
619                        SENSORS_MODE_R, W83781D_SYSCTL_IN5, VALUE(3), 2 },
620    { SENSORS_W83781D_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
621                        SENSORS_MODE_R, W83781D_SYSCTL_IN6, VALUE(3), 2 },
622    { SENSORS_W83781D_IN0_MIN, "in0_min", SENSORS_W83781D_IN0, 
623                        SENSORS_W83781D_IN0, SENSORS_MODE_RW, 
624                        W83781D_SYSCTL_IN0, VALUE(1), 2 },
625    { SENSORS_W83781D_IN1_MIN, "in1_min", SENSORS_W83781D_IN1, 
626                        SENSORS_W83781D_IN1, SENSORS_MODE_RW, 
627                        W83781D_SYSCTL_IN1, VALUE(1), 2 },
628    { SENSORS_W83781D_IN2_MIN, "in2_min", SENSORS_W83781D_IN2, 
629                        SENSORS_W83781D_IN2, SENSORS_MODE_RW, 
630                        W83781D_SYSCTL_IN2, VALUE(1), 2 },
631    { SENSORS_W83781D_IN3_MIN, "in3_min", SENSORS_W83781D_IN3, 
632                        SENSORS_W83781D_IN3, SENSORS_MODE_RW, 
633                        W83781D_SYSCTL_IN3, VALUE(1), 2 },
634    { SENSORS_W83781D_IN4_MIN, "in4_min", SENSORS_W83781D_IN4, 
635                        SENSORS_W83781D_IN4, SENSORS_MODE_RW, 
636                        W83781D_SYSCTL_IN4, VALUE(1), 2 },
637    { SENSORS_W83781D_IN5_MIN, "in5_min", SENSORS_W83781D_IN5, 
638                        SENSORS_W83781D_IN5, SENSORS_MODE_RW, 
639                        W83781D_SYSCTL_IN5, VALUE(1), 2 },
640    { SENSORS_W83781D_IN6_MIN, "in6_min", SENSORS_W83781D_IN6, 
641                        SENSORS_W83781D_IN6, SENSORS_MODE_RW, 
642                        W83781D_SYSCTL_IN6, VALUE(1), 2 },
643    { SENSORS_W83781D_IN0_MAX, "in0_max", SENSORS_W83781D_IN0, 
644                        SENSORS_W83781D_IN0, SENSORS_MODE_RW,
645                        W83781D_SYSCTL_IN0, VALUE(2), 2 },
646    { SENSORS_W83781D_IN1_MAX, "in1_max", SENSORS_W83781D_IN1, 
647                        SENSORS_W83781D_IN1, SENSORS_MODE_RW, 
648                        W83781D_SYSCTL_IN1, VALUE(2), 2 },
649    { SENSORS_W83781D_IN2_MAX, "in2_max", SENSORS_W83781D_IN2, 
650                        SENSORS_W83781D_IN2, SENSORS_MODE_RW, 
651                        W83781D_SYSCTL_IN2, VALUE(2), 2 },
652    { SENSORS_W83781D_IN3_MAX, "in3_max", SENSORS_W83781D_IN3, 
653                        SENSORS_W83781D_IN3, SENSORS_MODE_RW, 
654                        W83781D_SYSCTL_IN3, VALUE(2), 2 },
655    { SENSORS_W83781D_IN4_MAX, "in4_max", SENSORS_W83781D_IN4, 
656                        SENSORS_W83781D_IN4, SENSORS_MODE_RW,
657                        W83781D_SYSCTL_IN4, VALUE(2), 2 },
658    { SENSORS_W83781D_IN5_MAX, "in5_max", SENSORS_W83781D_IN5, 
659                        SENSORS_W83781D_IN5, SENSORS_MODE_RW, 
660                        W83781D_SYSCTL_IN5, VALUE(2), 2 },
661    { SENSORS_W83781D_IN6_MAX, "in6_max", SENSORS_W83781D_IN6, 
662                        SENSORS_W83781D_IN6, SENSORS_MODE_RW, 
663                        W83781D_SYSCTL_IN6, VALUE(2), 2 },
664    { SENSORS_W83781D_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
665                        SENSORS_MODE_R, W83781D_SYSCTL_FAN1, VALUE(2), 0 },
666    { SENSORS_W83781D_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
667                        SENSORS_MODE_R, W83781D_SYSCTL_FAN2, VALUE(2), 0 },
668    { SENSORS_W83781D_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
669                        SENSORS_MODE_R, W83781D_SYSCTL_FAN3, VALUE(2), 0 },
670    { SENSORS_W83781D_FAN1_MIN, "fan1_min", SENSORS_W83781D_FAN1,
671                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
672                        W83781D_SYSCTL_FAN1, VALUE(1), 0 },
673    { SENSORS_W83781D_FAN2_MIN, "fan2_min", SENSORS_W83781D_FAN2, 
674                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
675                        W83781D_SYSCTL_FAN2, VALUE(1), 0 },
676    { SENSORS_W83781D_FAN3_MIN, "fan3_min", SENSORS_W83781D_FAN3, 
677                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
678                        W83781D_SYSCTL_FAN3, VALUE(1), 0 },
679    { SENSORS_W83781D_TEMP1, "temp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
680                         SENSORS_MODE_R, W83781D_SYSCTL_TEMP1, VALUE(3), 1 },
681    { SENSORS_W83781D_TEMP1_HYST, "temp1_hyst", SENSORS_W83781D_TEMP1,
682                         SENSORS_W83781D_TEMP1, SENSORS_MODE_RW, 
683                         W83781D_SYSCTL_TEMP1, VALUE(2), 1 },
684    { SENSORS_W83781D_TEMP1_OVER, "temp1_over", SENSORS_W83781D_TEMP1,
685                         SENSORS_W83781D_TEMP1, SENSORS_MODE_RW, 
686                         W83781D_SYSCTL_TEMP1, VALUE(1), 1 },
687    { SENSORS_W83781D_TEMP2, "temp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
688                         SENSORS_MODE_R, W83781D_SYSCTL_TEMP2, VALUE(3), 1 },
689    { SENSORS_W83781D_TEMP2_HYST, "temp2_hyst", SENSORS_W83781D_TEMP2,
690                         SENSORS_W83781D_TEMP2, SENSORS_MODE_RW, 
691                         W83781D_SYSCTL_TEMP2, VALUE(2), 1 },
692    { SENSORS_W83781D_TEMP2_OVER, "temp2_over", SENSORS_W83781D_TEMP2,
693                         SENSORS_W83781D_TEMP2, SENSORS_MODE_RW, 
694                         W83781D_SYSCTL_TEMP2, VALUE(1), 1 },
695    { SENSORS_W83781D_TEMP3, "temp3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
696                         SENSORS_MODE_R, W83781D_SYSCTL_TEMP3, VALUE(3), 1 },
697    { SENSORS_W83781D_TEMP3_HYST, "temp3_hyst", SENSORS_W83781D_TEMP3,
698                         SENSORS_W83781D_TEMP3, SENSORS_MODE_RW, 
699                         W83781D_SYSCTL_TEMP3, VALUE(2), 1 },
700    { SENSORS_W83781D_TEMP3_OVER, "temp3_over", SENSORS_W83781D_TEMP3,
701                         SENSORS_W83781D_TEMP3, SENSORS_MODE_RW, 
702                         W83781D_SYSCTL_TEMP3, VALUE(1), 1 },
703
704    { SENSORS_W83781D_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
705                         SENSORS_MODE_R, W83781D_SYSCTL_VID, VALUE(1), 2 },
706    { SENSORS_W83781D_FAN1_DIV, "fan1_div", SENSORS_W83781D_FAN1, 
707                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
708                         W83781D_SYSCTL_FAN_DIV, VALUE(1), 0 },
709    { SENSORS_W83781D_FAN2_DIV, "fan2_div", SENSORS_W83781D_FAN2, 
710                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
711                         W83781D_SYSCTL_FAN_DIV, VALUE(2), 0 },
712    { SENSORS_W83781D_FAN3_DIV, "fan3_div", SENSORS_W83781D_FAN3, 
713                         SENSORS_NO_MAPPING, SENSORS_MODE_R, 
714                         W83781D_SYSCTL_FAN_DIV, VALUE(3), 0 },
715    { SENSORS_W83781D_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
716                         SENSORS_MODE_R, W83781D_SYSCTL_ALARMS, VALUE(1), 0 },
717    { SENSORS_W83781D_BEEP_ENABLE, "beep_enable", SENSORS_W83781D_ALARMS,
718                         SENSORS_NO_MAPPING, SENSORS_MODE_RW,
719                         W83781D_SYSCTL_BEEP, VALUE(1), 0 },
720    { SENSORS_W83781D_BEEPS, "beeps", SENSORS_W83781D_ALARMS,
721                         SENSORS_W83781D_ALARMS, SENSORS_MODE_RW,
722                         W83781D_SYSCTL_BEEP, VALUE(2), 0 },
723    { 0 }
724  };
725 
726static sensors_chip_feature w83782d_features[] =
727  { 
728    { SENSORS_W83782D_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
729                        SENSORS_MODE_R, W83781D_SYSCTL_IN0, VALUE(3), 2 },
730    { SENSORS_W83782D_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
731                        SENSORS_MODE_R, W83781D_SYSCTL_IN1, VALUE(3), 2 },
732    { SENSORS_W83782D_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
733                        SENSORS_MODE_R, W83781D_SYSCTL_IN2, VALUE(3), 2 },
734    { SENSORS_W83782D_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
735                        SENSORS_MODE_R, W83781D_SYSCTL_IN3, VALUE(3), 2 },
736    { SENSORS_W83782D_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
737                        SENSORS_MODE_R, W83781D_SYSCTL_IN4, VALUE(3), 2 },
738    { SENSORS_W83782D_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
739                        SENSORS_MODE_R, W83781D_SYSCTL_IN5, VALUE(3), 2 },
740    { SENSORS_W83782D_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
741                        SENSORS_MODE_R, W83781D_SYSCTL_IN6, VALUE(3), 2 },
742    { SENSORS_W83782D_IN7, "in7", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
743                        SENSORS_MODE_R, W83781D_SYSCTL_IN7, VALUE(3), 2 },
744    { SENSORS_W83782D_IN8, "in8", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
745                        SENSORS_MODE_R, W83781D_SYSCTL_IN8, VALUE(3), 2 },
746    { SENSORS_W83782D_IN0_MIN, "in0_min", SENSORS_W83782D_IN0, 
747                        SENSORS_W83782D_IN0, SENSORS_MODE_RW, 
748                        W83781D_SYSCTL_IN0, VALUE(1), 2 },
749    { SENSORS_W83782D_IN1_MIN, "in1_min", SENSORS_W83782D_IN1, 
750                        SENSORS_W83782D_IN1, SENSORS_MODE_RW, 
751                        W83781D_SYSCTL_IN1, VALUE(1), 2 },
752    { SENSORS_W83782D_IN2_MIN, "in2_min", SENSORS_W83782D_IN2, 
753                        SENSORS_W83782D_IN2, SENSORS_MODE_RW, 
754                        W83781D_SYSCTL_IN2, VALUE(1), 2 },
755    { SENSORS_W83782D_IN3_MIN, "in3_min", SENSORS_W83782D_IN3, 
756                        SENSORS_W83782D_IN3, SENSORS_MODE_RW, 
757                        W83781D_SYSCTL_IN3, VALUE(1), 2 },
758    { SENSORS_W83782D_IN4_MIN, "in4_min", SENSORS_W83782D_IN4, 
759                        SENSORS_W83782D_IN4, SENSORS_MODE_RW, 
760                        W83781D_SYSCTL_IN4, VALUE(1), 2 },
761    { SENSORS_W83782D_IN5_MIN, "in5_min", SENSORS_W83782D_IN5, 
762                        SENSORS_W83782D_IN5, SENSORS_MODE_RW, 
763                        W83781D_SYSCTL_IN5, VALUE(1), 2 },
764    { SENSORS_W83782D_IN6_MIN, "in6_min", SENSORS_W83782D_IN6, 
765                        SENSORS_W83782D_IN6, SENSORS_MODE_RW, 
766                        W83781D_SYSCTL_IN6, VALUE(1), 2 },
767    { SENSORS_W83782D_IN7_MIN, "in7_min", SENSORS_W83782D_IN7, 
768                        SENSORS_W83782D_IN7, SENSORS_MODE_RW, 
769                        W83781D_SYSCTL_IN7, VALUE(1), 2 },
770    { SENSORS_W83782D_IN8_MIN, "in8_min", SENSORS_W83782D_IN8, 
771                        SENSORS_W83782D_IN8, SENSORS_MODE_RW, 
772                        W83781D_SYSCTL_IN8, VALUE(1), 2 },
773    { SENSORS_W83782D_IN0_MAX, "in0_max", SENSORS_W83782D_IN0, 
774                        SENSORS_W83782D_IN0, SENSORS_MODE_RW,
775                        W83781D_SYSCTL_IN0, VALUE(2), 2 },
776    { SENSORS_W83782D_IN1_MAX, "in1_max", SENSORS_W83782D_IN1, 
777                        SENSORS_W83782D_IN1, SENSORS_MODE_RW, 
778                        W83781D_SYSCTL_IN1, VALUE(2), 2 },
779    { SENSORS_W83782D_IN2_MAX, "in2_max", SENSORS_W83782D_IN2, 
780                        SENSORS_W83782D_IN2, SENSORS_MODE_RW, 
781                        W83781D_SYSCTL_IN2, VALUE(2), 2 },
782    { SENSORS_W83782D_IN3_MAX, "in3_max", SENSORS_W83782D_IN3, 
783                        SENSORS_W83782D_IN3, SENSORS_MODE_RW, 
784                        W83781D_SYSCTL_IN3, VALUE(2), 2 },
785    { SENSORS_W83782D_IN4_MAX, "in4_max", SENSORS_W83782D_IN4, 
786                        SENSORS_W83782D_IN4, SENSORS_MODE_RW,
787                        W83781D_SYSCTL_IN4, VALUE(2), 2 },
788    { SENSORS_W83782D_IN5_MAX, "in5_max", SENSORS_W83782D_IN5, 
789                        SENSORS_W83782D_IN5, SENSORS_MODE_RW, 
790                        W83781D_SYSCTL_IN5, VALUE(2), 2 },
791    { SENSORS_W83782D_IN6_MAX, "in6_max", SENSORS_W83782D_IN6, 
792                        SENSORS_W83782D_IN6, SENSORS_MODE_RW, 
793                        W83781D_SYSCTL_IN6, VALUE(2), 2 },
794    { SENSORS_W83782D_IN7_MAX, "in7_max", SENSORS_W83782D_IN7, 
795                        SENSORS_W83782D_IN7, SENSORS_MODE_RW, 
796                        W83781D_SYSCTL_IN7, VALUE(2), 2 },
797    { SENSORS_W83782D_IN8_MAX, "in8_max", SENSORS_W83782D_IN8, 
798                        SENSORS_W83782D_IN8, SENSORS_MODE_RW, 
799                        W83781D_SYSCTL_IN8, VALUE(2), 2 },
800    { SENSORS_W83782D_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
801                        SENSORS_MODE_R, W83781D_SYSCTL_FAN1, VALUE(2), 0 },
802    { SENSORS_W83782D_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
803                        SENSORS_MODE_R, W83781D_SYSCTL_FAN2, VALUE(2), 0 },
804    { SENSORS_W83781D_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
805                        SENSORS_MODE_R, W83781D_SYSCTL_FAN3, VALUE(2), 0 },
806    { SENSORS_W83782D_FAN1_MIN, "fan1_min", SENSORS_W83782D_FAN1,
807                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
808                        W83781D_SYSCTL_FAN1, VALUE(1), 0 },
809    { SENSORS_W83782D_FAN2_MIN, "fan2_min", SENSORS_W83782D_FAN2, 
810                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
811                        W83781D_SYSCTL_FAN2, VALUE(1), 0 },
812    { SENSORS_W83781D_FAN3_MIN, "fan3_min", SENSORS_W83781D_FAN3, 
813                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
814                        W83781D_SYSCTL_FAN3, VALUE(1), 0 },
815    { SENSORS_W83782D_TEMP1, "temp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
816                         SENSORS_MODE_R, W83781D_SYSCTL_TEMP1, VALUE(3), 1 },
817    { SENSORS_W83782D_TEMP1_HYST, "temp1_hyst", SENSORS_W83782D_TEMP1,
818                         SENSORS_W83782D_TEMP1, SENSORS_MODE_RW, 
819                         W83781D_SYSCTL_TEMP1, VALUE(2), 1 },
820    { SENSORS_W83782D_TEMP1_OVER, "temp1_over", SENSORS_W83782D_TEMP1,
821                         SENSORS_W83782D_TEMP1, SENSORS_MODE_RW, 
822                         W83781D_SYSCTL_TEMP1, VALUE(1), 1 },
823    { SENSORS_W83782D_TEMP2, "temp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
824                         SENSORS_MODE_R, W83781D_SYSCTL_TEMP2, VALUE(3), 1 },
825    { SENSORS_W83782D_TEMP2_HYST, "temp2_hyst", SENSORS_W83782D_TEMP2,
826                         SENSORS_W83782D_TEMP2, SENSORS_MODE_RW, 
827                         W83781D_SYSCTL_TEMP2, VALUE(2), 1 },
828    { SENSORS_W83782D_TEMP2_OVER, "temp2_over", SENSORS_W83782D_TEMP2,
829                         SENSORS_W83782D_TEMP2, SENSORS_MODE_RW, 
830                         W83781D_SYSCTL_TEMP2, VALUE(1), 1 },
831    { SENSORS_W83782D_TEMP3, "temp3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
832                         SENSORS_MODE_R, W83781D_SYSCTL_TEMP3, VALUE(3), 1 },
833    { SENSORS_W83782D_TEMP3_HYST, "temp3_hyst", SENSORS_W83782D_TEMP3,
834                         SENSORS_W83782D_TEMP3, SENSORS_MODE_RW, 
835                         W83781D_SYSCTL_TEMP3, VALUE(2), 1 },
836    { SENSORS_W83782D_TEMP3_OVER, "temp3_over", SENSORS_W83782D_TEMP3,
837                         SENSORS_W83782D_TEMP3, SENSORS_MODE_RW, 
838                         W83781D_SYSCTL_TEMP3, VALUE(1), 1 },
839
840    { SENSORS_W83782D_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
841                         SENSORS_MODE_R, W83781D_SYSCTL_VID, VALUE(1), 2 },
842    { SENSORS_W83782D_FAN1_DIV, "fan1_div", SENSORS_W83782D_FAN1, 
843                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
844                         W83781D_SYSCTL_FAN_DIV, VALUE(1), 0 },
845    { SENSORS_W83782D_FAN2_DIV, "fan2_div", SENSORS_W83782D_FAN2, 
846                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
847                         W83781D_SYSCTL_FAN_DIV, VALUE(2), 0 },
848    { SENSORS_W83781D_FAN3_DIV, "fan3_div", SENSORS_W83781D_FAN3, 
849                         SENSORS_NO_MAPPING, SENSORS_MODE_R, 
850                         W83781D_SYSCTL_FAN_DIV, VALUE(3), 0 },
851    { SENSORS_W83782D_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
852                         SENSORS_MODE_R, W83781D_SYSCTL_ALARMS, VALUE(1), 0 },
853    { SENSORS_W83782D_BEEP_ENABLE, "beep_enable", SENSORS_W83782D_ALARMS,
854                         SENSORS_NO_MAPPING, SENSORS_MODE_RW,
855                         W83781D_SYSCTL_BEEP, VALUE(1), 0 },
856    { SENSORS_W83782D_BEEPS, "beeps", SENSORS_W83782D_ALARMS,
857                         SENSORS_W83782D_ALARMS, SENSORS_MODE_RW,
858                         W83781D_SYSCTL_BEEP, VALUE(2), 0 },
859    { SENSORS_W83782D_SENS1, "sensor1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
860                         SENSORS_MODE_RW, W83781D_SYSCTL_SENS1, VALUE(1), 0 },
861    { SENSORS_W83782D_SENS2, "sensor2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
862                         SENSORS_MODE_RW, W83781D_SYSCTL_SENS2, VALUE(1), 0 },
863    { SENSORS_W83782D_SENS3, "sensor3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
864                         SENSORS_MODE_RW, W83781D_SYSCTL_SENS3, VALUE(1), 0 },
865    { 0 }
866  };
867 
868static sensors_chip_feature w83783s_features[] =
869  { 
870    { SENSORS_W83783S_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
871                        SENSORS_MODE_R, W83781D_SYSCTL_IN0, VALUE(3), 2 },
872    { SENSORS_W83783S_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
873                        SENSORS_MODE_R, W83781D_SYSCTL_IN1, VALUE(3), 2 },
874    { SENSORS_W83783S_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
875                        SENSORS_MODE_R, W83781D_SYSCTL_IN2, VALUE(3), 2 },
876    { SENSORS_W83783S_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
877                        SENSORS_MODE_R, W83781D_SYSCTL_IN3, VALUE(3), 2 },
878    { SENSORS_W83783S_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
879                        SENSORS_MODE_R, W83781D_SYSCTL_IN4, VALUE(3), 2 },
880    { SENSORS_W83783S_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
881                        SENSORS_MODE_R, W83781D_SYSCTL_IN5, VALUE(3), 2 },
882    { SENSORS_W83783S_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
883                        SENSORS_MODE_R, W83781D_SYSCTL_IN6, VALUE(3), 2 },
884    { SENSORS_W83783S_IN0_MIN, "in0_min", SENSORS_W83783S_IN0, 
885                        SENSORS_W83783S_IN0, SENSORS_MODE_RW, 
886                        W83781D_SYSCTL_IN0, VALUE(1), 2 },
887    { SENSORS_W83783S_IN1_MIN, "in1_min", SENSORS_W83783S_IN1, 
888                        SENSORS_W83783S_IN1, SENSORS_MODE_RW, 
889                        W83781D_SYSCTL_IN1, VALUE(1), 2 },
890    { SENSORS_W83783S_IN2_MIN, "in2_min", SENSORS_W83783S_IN2, 
891                        SENSORS_W83783S_IN2, SENSORS_MODE_RW, 
892                        W83781D_SYSCTL_IN2, VALUE(1), 2 },
893    { SENSORS_W83783S_IN3_MIN, "in3_min", SENSORS_W83783S_IN3, 
894                        SENSORS_W83783S_IN3, SENSORS_MODE_RW, 
895                        W83781D_SYSCTL_IN3, VALUE(1), 2 },
896    { SENSORS_W83783S_IN4_MIN, "in4_min", SENSORS_W83783S_IN4, 
897                        SENSORS_W83783S_IN4, SENSORS_MODE_RW, 
898                        W83781D_SYSCTL_IN4, VALUE(1), 2 },
899    { SENSORS_W83783S_IN5_MIN, "in5_min", SENSORS_W83783S_IN5, 
900                        SENSORS_W83783S_IN5, SENSORS_MODE_RW, 
901                        W83781D_SYSCTL_IN5, VALUE(1), 2 },
902    { SENSORS_W83783S_IN6_MIN, "in6_min", SENSORS_W83783S_IN6, 
903                        SENSORS_W83783S_IN6, SENSORS_MODE_RW, 
904                        W83781D_SYSCTL_IN6, VALUE(1), 2 },
905    { SENSORS_W83783S_IN0_MAX, "in0_max", SENSORS_W83783S_IN0, 
906                        SENSORS_W83783S_IN0, SENSORS_MODE_RW,
907                        W83781D_SYSCTL_IN0, VALUE(2), 2 },
908    { SENSORS_W83783S_IN1_MAX, "in1_max", SENSORS_W83783S_IN1, 
909                        SENSORS_W83783S_IN1, SENSORS_MODE_RW, 
910                        W83781D_SYSCTL_IN1, VALUE(2), 2 },
911    { SENSORS_W83783S_IN2_MAX, "in2_max", SENSORS_W83783S_IN2, 
912                        SENSORS_W83783S_IN2, SENSORS_MODE_RW, 
913                        W83781D_SYSCTL_IN2, VALUE(2), 2 },
914    { SENSORS_W83783S_IN3_MAX, "in3_max", SENSORS_W83783S_IN3, 
915                        SENSORS_W83783S_IN3, SENSORS_MODE_RW, 
916                        W83781D_SYSCTL_IN3, VALUE(2), 2 },
917    { SENSORS_W83783S_IN4_MAX, "in4_max", SENSORS_W83783S_IN4, 
918                        SENSORS_W83783S_IN4, SENSORS_MODE_RW,
919                        W83781D_SYSCTL_IN4, VALUE(2), 2 },
920    { SENSORS_W83783S_IN5_MAX, "in5_max", SENSORS_W83783S_IN5, 
921                        SENSORS_W83783S_IN5, SENSORS_MODE_RW, 
922                        W83781D_SYSCTL_IN5, VALUE(2), 2 },
923    { SENSORS_W83783S_IN6_MAX, "in6_max", SENSORS_W83783S_IN6, 
924                        SENSORS_W83783S_IN6, SENSORS_MODE_RW, 
925                        W83781D_SYSCTL_IN6, VALUE(2), 2 },
926    { SENSORS_W83783S_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
927                        SENSORS_MODE_R, W83781D_SYSCTL_FAN1, VALUE(2), 0 },
928    { SENSORS_W83783S_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
929                        SENSORS_MODE_R, W83781D_SYSCTL_FAN2, VALUE(2), 0 },
930    { SENSORS_W83783S_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
931                        SENSORS_MODE_R, W83781D_SYSCTL_FAN3, VALUE(2), 0 },
932    { SENSORS_W83783S_FAN1_MIN, "fan1_min", SENSORS_W83783S_FAN1,
933                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
934                        W83781D_SYSCTL_FAN1, VALUE(1), 0 },
935    { SENSORS_W83783S_FAN2_MIN, "fan2_min", SENSORS_W83783S_FAN2, 
936                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
937                        W83781D_SYSCTL_FAN2, VALUE(1), 0 },
938    { SENSORS_W83783S_FAN3_MIN, "fan3_min", SENSORS_W83783S_FAN3, 
939                        SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
940                        W83781D_SYSCTL_FAN3, VALUE(1), 0 },
941    { SENSORS_W83783S_TEMP1, "temp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
942                         SENSORS_MODE_R, W83781D_SYSCTL_TEMP1, VALUE(3), 1 },
943    { SENSORS_W83783S_TEMP1_HYST, "temp1_hyst", SENSORS_W83783S_TEMP1,
944                         SENSORS_W83783S_TEMP1, SENSORS_MODE_RW, 
945                         W83781D_SYSCTL_TEMP1, VALUE(2), 1 },
946    { SENSORS_W83783S_TEMP1_OVER, "temp1_over", SENSORS_W83783S_TEMP1,
947                         SENSORS_W83783S_TEMP1, SENSORS_MODE_RW, 
948                         W83781D_SYSCTL_TEMP1, VALUE(1), 1 },
949    { SENSORS_W83783S_TEMP2, "temp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
950                         SENSORS_MODE_R, W83781D_SYSCTL_TEMP2, VALUE(3), 1 },
951    { SENSORS_W83783S_TEMP2_HYST, "temp2_hyst", SENSORS_W83783S_TEMP2,
952                         SENSORS_W83783S_TEMP2, SENSORS_MODE_RW, 
953                         W83781D_SYSCTL_TEMP2, VALUE(2), 1 },
954    { SENSORS_W83783S_TEMP2_OVER, "temp2_over", SENSORS_W83783S_TEMP2,
955                         SENSORS_W83783S_TEMP2, SENSORS_MODE_RW, 
956                         W83781D_SYSCTL_TEMP2, VALUE(1), 1 },
957    { SENSORS_W83783S_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
958                         SENSORS_MODE_R, W83781D_SYSCTL_VID, VALUE(1), 2 },
959    { SENSORS_W83783S_FAN1_DIV, "fan1_div", SENSORS_W83783S_FAN1, 
960                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
961                         W83781D_SYSCTL_FAN_DIV, VALUE(1), 0 },
962    { SENSORS_W83783S_FAN2_DIV, "fan2_div", SENSORS_W83783S_FAN2, 
963                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
964                         W83781D_SYSCTL_FAN_DIV, VALUE(2), 0 },
965    { SENSORS_W83783S_FAN3_DIV, "fan3_div", SENSORS_W83783S_FAN3, 
966                         SENSORS_NO_MAPPING, SENSORS_MODE_R, 
967                         W83781D_SYSCTL_FAN_DIV, VALUE(3), 0 },
968    { SENSORS_W83783S_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
969                         SENSORS_MODE_R, W83781D_SYSCTL_ALARMS, VALUE(1), 0 },
970    { SENSORS_W83783S_BEEP_ENABLE, "beep_enable", SENSORS_W83783S_ALARMS,
971                         SENSORS_NO_MAPPING, SENSORS_MODE_RW,
972                         W83781D_SYSCTL_BEEP, VALUE(1), 0 },
973    { SENSORS_W83783S_BEEPS, "beeps", SENSORS_W83783S_ALARMS,
974                         SENSORS_W83783S_ALARMS, SENSORS_MODE_RW,
975                         W83781D_SYSCTL_BEEP, VALUE(2), 0 },
976    { SENSORS_W83783S_SENS1, "sensor1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
977                         SENSORS_MODE_RW, W83781D_SYSCTL_SENS1, VALUE(1), 0 },
978    { SENSORS_W83783S_SENS2, "sensor2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
979                         SENSORS_MODE_RW, W83781D_SYSCTL_SENS2, VALUE(1), 0 },
980    { 0 }
981  };
982 
983static sensors_chip_feature adm9240_features[] =
984  { 
985    { SENSORS_ADM9240_IN0, "2.5V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
986                        SENSORS_MODE_R, ADM9240_SYSCTL_IN0, VALUE(3), 2 },
987    { SENSORS_ADM9240_IN1, "Vccp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
988                        SENSORS_MODE_R, ADM9240_SYSCTL_IN1, VALUE(3), 2 },
989    { SENSORS_ADM9240_IN2, "3.3V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
990                        SENSORS_MODE_R, ADM9240_SYSCTL_IN2, VALUE(3), 2 },
991    { SENSORS_ADM9240_IN3, "5V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
992                        SENSORS_MODE_R, ADM9240_SYSCTL_IN3, VALUE(3), 2 },
993    { SENSORS_ADM9240_IN4, "12V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
994                        SENSORS_MODE_R, ADM9240_SYSCTL_IN4, VALUE(3), 2 },
995    { SENSORS_ADM9240_IN5, "Vccp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
996                        SENSORS_MODE_R, ADM9240_SYSCTL_IN5, VALUE(3), 2 },
997    { SENSORS_ADM9240_IN0_MIN, "2.5V_min", SENSORS_ADM9240_IN0, 
998                        SENSORS_ADM9240_IN0, SENSORS_MODE_RW, 
999                        ADM9240_SYSCTL_IN0, VALUE(1), 2 },
1000    { SENSORS_ADM9240_IN1_MIN, "Vccp1_min", SENSORS_ADM9240_IN1, 
1001                        SENSORS_ADM9240_IN1, SENSORS_MODE_RW, 
1002                        ADM9240_SYSCTL_IN1, VALUE(1), 2 },
1003    { SENSORS_ADM9240_IN2_MIN, "3.3V_min", SENSORS_ADM9240_IN2, 
1004                        SENSORS_ADM9240_IN2, SENSORS_MODE_RW, 
1005                        ADM9240_SYSCTL_IN2, VALUE(1), 2 },
1006    { SENSORS_ADM9240_IN3_MIN, "5V_min", SENSORS_ADM9240_IN3, 
1007                        SENSORS_ADM9240_IN3, SENSORS_MODE_RW, 
1008                        ADM9240_SYSCTL_IN3, VALUE(1), 2 },
1009    { SENSORS_ADM9240_IN4_MIN, "12V_min", SENSORS_ADM9240_IN4, 
1010                        SENSORS_ADM9240_IN4, SENSORS_MODE_RW, 
1011                        ADM9240_SYSCTL_IN4, VALUE(1), 2 },
1012    { SENSORS_ADM9240_IN5_MIN, "Vccp2_min", SENSORS_ADM9240_IN5, 
1013                        SENSORS_ADM9240_IN5, SENSORS_MODE_RW, 
1014                        ADM9240_SYSCTL_IN5, VALUE(1), 2 },
1015    { SENSORS_ADM9240_IN0_MAX, "2.5V_max", SENSORS_ADM9240_IN0, 
1016                        SENSORS_ADM9240_IN0, SENSORS_MODE_RW,
1017                        ADM9240_SYSCTL_IN0, VALUE(2), 2 },
1018    { SENSORS_ADM9240_IN1_MAX, "Vccp1_max", SENSORS_ADM9240_IN1, 
1019                        SENSORS_ADM9240_IN1, SENSORS_MODE_RW, 
1020                        ADM9240_SYSCTL_IN1, VALUE(2), 2 },
1021    { SENSORS_ADM9240_IN2_MAX, "3.3V_max", SENSORS_ADM9240_IN2, 
1022                        SENSORS_ADM9240_IN2, SENSORS_MODE_RW, 
1023                        ADM9240_SYSCTL_IN2, VALUE(2), 2 },
1024    { SENSORS_ADM9240_IN3_MAX, "5V_max", SENSORS_ADM9240_IN3, 
1025                        SENSORS_ADM9240_IN3, SENSORS_MODE_RW, 
1026                        ADM9240_SYSCTL_IN3, VALUE(2), 2 },
1027    { SENSORS_ADM9240_IN4_MAX, "12V_max", SENSORS_ADM9240_IN4, 
1028                        SENSORS_ADM9240_IN4, SENSORS_MODE_RW,
1029                        ADM9240_SYSCTL_IN4, VALUE(2), 2 },
1030    { SENSORS_ADM9240_IN5_MAX, "Vccp2_max", SENSORS_ADM9240_IN5, 
1031                        SENSORS_ADM9240_IN5, SENSORS_MODE_RW, 
1032                        ADM9240_SYSCTL_IN5, VALUE(2), 2 },
1033    { SENSORS_ADM9240_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1034                        SENSORS_MODE_R, ADM9240_SYSCTL_FAN1, VALUE(2), 0 },
1035    { SENSORS_ADM9240_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1036                        SENSORS_MODE_R, ADM9240_SYSCTL_FAN2, VALUE(2), 0 },
1037    { SENSORS_ADM9240_FAN1_MIN, "fan1_min", SENSORS_ADM9240_FAN1,
1038                        SENSORS_ADM9240_FAN1, SENSORS_MODE_RW, 
1039                        ADM9240_SYSCTL_FAN1, VALUE(1), 0 },
1040    { SENSORS_ADM9240_FAN2_MIN, "fan2_min", SENSORS_ADM9240_FAN2, 
1041                        SENSORS_ADM9240_FAN2, SENSORS_MODE_RW, 
1042                        ADM9240_SYSCTL_FAN2, VALUE(1), 0 },
1043    { SENSORS_ADM9240_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1044                         SENSORS_MODE_R, ADM9240_SYSCTL_TEMP, VALUE(3), 1 },
1045    { SENSORS_ADM9240_TEMP_HYST, "temp_hyst", SENSORS_ADM9240_TEMP,
1046                         SENSORS_ADM9240_TEMP, SENSORS_MODE_RW, 
1047                         ADM9240_SYSCTL_TEMP, VALUE(2), 1 },
1048    { SENSORS_ADM9240_TEMP_OVER, "temp_over", SENSORS_ADM9240_TEMP,
1049                         SENSORS_ADM9240_TEMP, SENSORS_MODE_RW, 
1050                         ADM9240_SYSCTL_TEMP, VALUE(1), 1 },
1051
1052    { SENSORS_ADM9240_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1053                         SENSORS_MODE_R, ADM9240_SYSCTL_VID, VALUE(1), 2 },
1054    { SENSORS_ADM9240_FAN1_DIV, "fan1_div", SENSORS_ADM9240_FAN1, 
1055                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
1056                         ADM9240_SYSCTL_FAN_DIV, VALUE(1), 0 },
1057    { SENSORS_ADM9240_FAN2_DIV, "fan2_div", SENSORS_ADM9240_FAN2, 
1058                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
1059                         ADM9240_SYSCTL_FAN_DIV, VALUE(2), 0 },
1060    { SENSORS_ADM9240_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
1061                         SENSORS_MODE_R, ADM9240_SYSCTL_ALARMS, VALUE(1), 0 },
1062    { SENSORS_ADM9240_ANALOG_OUT, "analog_out", SENSORS_NO_MAPPING,
1063                         SENSORS_NO_MAPPING, SENSORS_MODE_RW,
1064                         ADM9240_SYSCTL_ANALOG_OUT, VALUE(1), 0 },
1065    { 0 }
1066  };
1067
1068static sensors_chip_feature ds1780_features[] =
1069  { 
1070    { SENSORS_DS1780_IN0, "2.5V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
1071                        SENSORS_MODE_R, ADM9240_SYSCTL_IN0, VALUE(3), 2 },
1072    { SENSORS_DS1780_IN1, "Vccp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1073                        SENSORS_MODE_R, ADM9240_SYSCTL_IN1, VALUE(3), 2 },
1074    { SENSORS_DS1780_IN2, "3.3V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1075                        SENSORS_MODE_R, ADM9240_SYSCTL_IN2, VALUE(3), 2 },
1076    { SENSORS_DS1780_IN3, "5V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1077                        SENSORS_MODE_R, ADM9240_SYSCTL_IN3, VALUE(3), 2 },
1078    { SENSORS_DS1780_IN4, "12V", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1079                        SENSORS_MODE_R, ADM9240_SYSCTL_IN4, VALUE(3), 2 },
1080    { SENSORS_DS1780_IN5, "Vccp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1081                        SENSORS_MODE_R, ADM9240_SYSCTL_IN5, VALUE(3), 2 },
1082    { SENSORS_DS1780_IN0_MIN, "2.5V_min", SENSORS_DS1780_IN0, 
1083                        SENSORS_DS1780_IN0, SENSORS_MODE_RW, 
1084                        ADM9240_SYSCTL_IN0, VALUE(1), 2 },
1085    { SENSORS_DS1780_IN1_MIN, "Vccp1_min", SENSORS_DS1780_IN1, 
1086                        SENSORS_DS1780_IN1, SENSORS_MODE_RW, 
1087                        ADM9240_SYSCTL_IN1, VALUE(1), 2 },
1088    { SENSORS_DS1780_IN2_MIN, "3.3V_min", SENSORS_DS1780_IN2, 
1089                        SENSORS_DS1780_IN2, SENSORS_MODE_RW, 
1090                        ADM9240_SYSCTL_IN2, VALUE(1), 2 },
1091    { SENSORS_DS1780_IN3_MIN, "5V_min", SENSORS_DS1780_IN3, 
1092                        SENSORS_DS1780_IN3, SENSORS_MODE_RW, 
1093                        ADM9240_SYSCTL_IN3, VALUE(1), 2 },
1094    { SENSORS_DS1780_IN4_MIN, "12V_min", SENSORS_DS1780_IN4, 
1095                        SENSORS_DS1780_IN4, SENSORS_MODE_RW, 
1096                        ADM9240_SYSCTL_IN4, VALUE(1), 2 },
1097    { SENSORS_DS1780_IN5_MIN, "Vccp2_min", SENSORS_DS1780_IN5, 
1098                        SENSORS_DS1780_IN5, SENSORS_MODE_RW, 
1099                        ADM9240_SYSCTL_IN5, VALUE(1), 2 },
1100    { SENSORS_DS1780_IN0_MAX, "2.5V_max", SENSORS_DS1780_IN0, 
1101                        SENSORS_DS1780_IN0, SENSORS_MODE_RW,
1102                        ADM9240_SYSCTL_IN0, VALUE(2), 2 },
1103    { SENSORS_DS1780_IN1_MAX, "Vccp1_max", SENSORS_DS1780_IN1, 
1104                        SENSORS_DS1780_IN1, SENSORS_MODE_RW, 
1105                        ADM9240_SYSCTL_IN1, VALUE(2), 2 },
1106    { SENSORS_DS1780_IN2_MAX, "3.3V_max", SENSORS_DS1780_IN2, 
1107                        SENSORS_DS1780_IN2, SENSORS_MODE_RW, 
1108                        ADM9240_SYSCTL_IN2, VALUE(2), 2 },
1109    { SENSORS_DS1780_IN3_MAX, "5V_max", SENSORS_DS1780_IN3, 
1110                        SENSORS_DS1780_IN3, SENSORS_MODE_RW, 
1111                        ADM9240_SYSCTL_IN3, VALUE(2), 2 },
1112    { SENSORS_DS1780_IN4_MAX, "12V_max", SENSORS_DS1780_IN4, 
1113                        SENSORS_DS1780_IN4, SENSORS_MODE_RW,
1114                        ADM9240_SYSCTL_IN4, VALUE(2), 2 },
1115    { SENSORS_DS1780_IN5_MAX, "Vccp2_max", SENSORS_DS1780_IN5, 
1116                        SENSORS_DS1780_IN5, SENSORS_MODE_RW, 
1117                        ADM9240_SYSCTL_IN5, VALUE(2), 2 },
1118    { SENSORS_DS1780_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1119                        SENSORS_MODE_R, ADM9240_SYSCTL_FAN1, VALUE(2), 0 },
1120    { SENSORS_DS1780_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1121                        SENSORS_MODE_R, ADM9240_SYSCTL_FAN2, VALUE(2), 0 },
1122    { SENSORS_DS1780_FAN1_MIN, "fan1_min", SENSORS_DS1780_FAN1,
1123                        SENSORS_DS1780_FAN1, SENSORS_MODE_RW, 
1124                        ADM9240_SYSCTL_FAN1, VALUE(1), 0 },
1125    { SENSORS_DS1780_FAN2_MIN, "fan2_min", SENSORS_DS1780_FAN2, 
1126                        SENSORS_DS1780_FAN2, SENSORS_MODE_RW, 
1127                        ADM9240_SYSCTL_FAN2, VALUE(1), 0 },
1128    { SENSORS_DS1780_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1129                         SENSORS_MODE_R, ADM9240_SYSCTL_TEMP, VALUE(3), 1 },
1130    { SENSORS_DS1780_TEMP_HYST, "temp_hyst", SENSORS_DS1780_TEMP,
1131                         SENSORS_DS1780_TEMP, SENSORS_MODE_RW, 
1132                         ADM9240_SYSCTL_TEMP, VALUE(2), 1 },
1133    { SENSORS_DS1780_TEMP_OVER, "temp_over", SENSORS_DS1780_TEMP,
1134                         SENSORS_DS1780_TEMP, SENSORS_MODE_RW, 
1135                         ADM9240_SYSCTL_TEMP, VALUE(1), 1 },
1136
1137    { SENSORS_DS1780_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1138                         SENSORS_MODE_R, ADM9240_SYSCTL_VID, VALUE(1), 2 },
1139    { SENSORS_DS1780_FAN1_DIV, "fan1_div", SENSORS_DS1780_FAN1, 
1140                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
1141                         ADM9240_SYSCTL_FAN_DIV, VALUE(1), 0 },
1142    { SENSORS_DS1780_FAN2_DIV, "fan2_div", SENSORS_DS1780_FAN2, 
1143                         SENSORS_NO_MAPPING, SENSORS_MODE_RW, 
1144                         ADM9240_SYSCTL_FAN_DIV, VALUE(2), 0 },
1145    { SENSORS_DS1780_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
1146                         SENSORS_MODE_R, ADM9240_SYSCTL_ALARMS, VALUE(1), 0 },
1147    { SENSORS_DS1780_ANALOG_OUT, "analog_out", SENSORS_NO_MAPPING,
1148                         SENSORS_NO_MAPPING, SENSORS_MODE_RW,
1149                         ADM9240_SYSCTL_ANALOG_OUT, VALUE(1), 0 },
1150    { 0 }
1151  };
1152
1153static sensors_chip_feature sis5595_features[] =
1154  { 
1155    { SENSORS_SIS5595_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
1156                        SENSORS_MODE_R, LM78_SYSCTL_IN0, VALUE(3), 2 },
1157    { SENSORS_SIS5595_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1158                        SENSORS_MODE_R, LM78_SYSCTL_IN1, VALUE(3), 2 },
1159    { SENSORS_SIS5595_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1160                        SENSORS_MODE_R, LM78_SYSCTL_IN2, VALUE(3), 2 },
1161    { SENSORS_SIS5595_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1162                        SENSORS_MODE_R, LM78_SYSCTL_IN3, VALUE(3), 2 },
1163    { SENSORS_SIS5595_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1164                        SENSORS_MODE_R, LM78_SYSCTL_IN4, VALUE(3), 2 },
1165    { SENSORS_SIS5595_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1166                        SENSORS_MODE_R, LM78_SYSCTL_IN5, VALUE(3), 2 },
1167    { SENSORS_SIS5595_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1168                        SENSORS_MODE_R, LM78_SYSCTL_IN6, VALUE(3), 2 },
1169    { SENSORS_SIS5595_IN0_MIN, "in0_min", SENSORS_SIS5595_IN0, SENSORS_SIS5595_IN0,
1170                            SENSORS_MODE_RW, LM78_SYSCTL_IN0, VALUE(1), 2 },
1171    { SENSORS_SIS5595_IN1_MIN, "in1_min", SENSORS_SIS5595_IN1, SENSORS_SIS5595_IN1,
1172                            SENSORS_MODE_RW, LM78_SYSCTL_IN1, VALUE(1), 2 },
1173    { SENSORS_SIS5595_IN2_MIN, "in2_min", SENSORS_SIS5595_IN2, SENSORS_SIS5595_IN2,
1174                            SENSORS_MODE_RW, LM78_SYSCTL_IN2, VALUE(1), 2 },
1175    { SENSORS_SIS5595_IN3_MIN, "in3_min", SENSORS_SIS5595_IN3, SENSORS_SIS5595_IN3,
1176                            SENSORS_MODE_RW, LM78_SYSCTL_IN3, VALUE(1), 2 },
1177    { SENSORS_SIS5595_IN4_MIN, "in4_min", SENSORS_SIS5595_IN4, SENSORS_SIS5595_IN4,
1178                            SENSORS_MODE_RW, LM78_SYSCTL_IN4, VALUE(1), 2 },
1179    { SENSORS_SIS5595_IN5_MIN, "in5_min", SENSORS_SIS5595_IN5, SENSORS_SIS5595_IN5,
1180                            SENSORS_MODE_RW, LM78_SYSCTL_IN5, VALUE(1), 2 },
1181    { SENSORS_SIS5595_IN6_MIN, "in6_min", SENSORS_SIS5595_IN6, SENSORS_SIS5595_IN6,
1182                            SENSORS_MODE_RW, LM78_SYSCTL_IN6, VALUE(1), 2 },
1183    { SENSORS_SIS5595_IN0_MAX, "in0_max", SENSORS_SIS5595_IN0, SENSORS_SIS5595_IN0,
1184                            SENSORS_MODE_RW, LM78_SYSCTL_IN0, VALUE(2), 2 },
1185    { SENSORS_SIS5595_IN1_MAX, "in1_max", SENSORS_SIS5595_IN1, SENSORS_SIS5595_IN1,
1186                            SENSORS_MODE_RW, LM78_SYSCTL_IN1, VALUE(2), 2 },
1187    { SENSORS_SIS5595_IN2_MAX, "in2_max", SENSORS_SIS5595_IN2, SENSORS_SIS5595_IN2,
1188                            SENSORS_MODE_RW, LM78_SYSCTL_IN2, VALUE(2), 2 },
1189    { SENSORS_SIS5595_IN3_MAX, "in3_max", SENSORS_SIS5595_IN3, SENSORS_SIS5595_IN3,
1190                            SENSORS_MODE_RW, LM78_SYSCTL_IN3, VALUE(2), 2 },
1191    { SENSORS_SIS5595_IN4_MAX, "in4_max", SENSORS_SIS5595_IN4, SENSORS_SIS5595_IN4,
1192                            SENSORS_MODE_RW, LM78_SYSCTL_IN4, VALUE(2), 2 },
1193    { SENSORS_SIS5595_IN5_MAX, "in5_max", SENSORS_SIS5595_IN5, SENSORS_SIS5595_IN5,
1194                            SENSORS_MODE_RW, LM78_SYSCTL_IN5, VALUE(2), 2 },
1195    { SENSORS_SIS5595_IN6_MAX, "in6_max", SENSORS_SIS5595_IN6, SENSORS_SIS5595_IN6,
1196                            SENSORS_MODE_RW, LM78_SYSCTL_IN6, VALUE(2), 2 },
1197    { SENSORS_SIS5595_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1198                         SENSORS_MODE_R, LM78_SYSCTL_FAN1, VALUE(2), 0 },
1199    { SENSORS_SIS5595_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1200                         SENSORS_MODE_R, LM78_SYSCTL_FAN2, VALUE(2), 0 },
1201    { SENSORS_SIS5595_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1202                         SENSORS_MODE_R, LM78_SYSCTL_FAN3, VALUE(2), 0 },
1203    { SENSORS_SIS5595_FAN1_MIN, "fan1_min", SENSORS_SIS5595_FAN1, SENSORS_SIS5595_FAN1,
1204                             SENSORS_MODE_RW, LM78_SYSCTL_FAN1, VALUE(1), 0 },
1205    { SENSORS_SIS5595_FAN2_MIN, "fan2_min", SENSORS_SIS5595_FAN2, SENSORS_SIS5595_FAN2,
1206                             SENSORS_MODE_RW, LM78_SYSCTL_FAN2, VALUE(1), 0 },
1207    { SENSORS_SIS5595_FAN3_MIN, "fan3_min", SENSORS_SIS5595_FAN3, SENSORS_SIS5595_FAN3,
1208                             SENSORS_MODE_RW, LM78_SYSCTL_FAN3, VALUE(1), 0 },
1209    { SENSORS_SIS5595_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1210                         SENSORS_MODE_R, LM78_SYSCTL_TEMP, VALUE(3), 1 },
1211    { SENSORS_SIS5595_TEMP_HYST, "temp_hyst", SENSORS_SIS5595_TEMP,
1212                              SENSORS_SIS5595_TEMP, SENSORS_MODE_RW, 
1213                              LM78_SYSCTL_TEMP, VALUE(2), 1 },
1214    { SENSORS_SIS5595_TEMP_OVER, "temp_over", SENSORS_SIS5595_TEMP,
1215                              SENSORS_SIS5595_TEMP, SENSORS_MODE_RW, 
1216                              LM78_SYSCTL_TEMP, VALUE(1), 1 },
1217    { SENSORS_SIS5595_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1218                        SENSORS_MODE_R, LM78_SYSCTL_VID, VALUE(1), 2 },
1219    { SENSORS_SIS5595_FAN1_DIV, "fan1_div", SENSORS_SIS5595_FAN1, SENSORS_NO_MAPPING,
1220                             SENSORS_MODE_RW, LM78_SYSCTL_FAN_DIV, VALUE(1), 
1221                             0 },
1222    { SENSORS_SIS5595_FAN2_DIV, "fan2_div", SENSORS_SIS5595_FAN2, SENSORS_NO_MAPPING,
1223                             SENSORS_MODE_RW, LM78_SYSCTL_FAN_DIV, VALUE(2), 
1224                             0 },
1225    { SENSORS_SIS5595_FAN3_DIV, "fan3_div", SENSORS_SIS5595_FAN3, SENSORS_NO_MAPPING,
1226                              SENSORS_MODE_R, LM78_SYSCTL_FAN_DIV, VALUE(3), 
1227                              0 },
1228    { SENSORS_SIS5595_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
1229                           SENSORS_MODE_R, LM78_SYSCTL_ALARMS, VALUE(1), 0 },
1230    { 0 }
1231  };
1232
1233static sensors_chip_feature maxi_cg_features[] =
1234  { 
1235    { SENSORS_MAXI_CG_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1236                         SENSORS_MODE_R, MAXI_SYSCTL_FAN1, VALUE(3), 0 },
1237    { SENSORS_MAXI_CG_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1238                         SENSORS_MODE_R, MAXI_SYSCTL_FAN2, VALUE(3), 0 },
1239    { SENSORS_MAXI_CG_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1240                         SENSORS_MODE_R, MAXI_SYSCTL_FAN3, VALUE(3), 0 },
1241    { SENSORS_MAXI_CG_FAN1_MIN, "fan1_min", SENSORS_MAXI_CG_FAN1, SENSORS_MAXI_CG_FAN1,
1242                             SENSORS_MODE_RW, MAXI_SYSCTL_FAN1, VALUE(1), 0 },
1243    { SENSORS_MAXI_CG_FAN2_MIN, "fan2_min", SENSORS_MAXI_CG_FAN2, SENSORS_MAXI_CG_FAN2,
1244                             SENSORS_MODE_RW, MAXI_SYSCTL_FAN2, VALUE(1), 0 },
1245    { SENSORS_MAXI_CG_FAN3_MIN, "fan3_min", SENSORS_MAXI_CG_FAN3, SENSORS_MAXI_CG_FAN3,
1246                             SENSORS_MODE_RW, MAXI_SYSCTL_FAN3, VALUE(1), 0 },
1247    { SENSORS_MAXI_CG_FAN1_DIV, "fan1_div", SENSORS_MAXI_CG_FAN1, SENSORS_NO_MAPPING,
1248                             SENSORS_MODE_R, MAXI_SYSCTL_FAN1, VALUE(2), 0 },
1249    { SENSORS_MAXI_CG_FAN2_DIV, "fan2_div", SENSORS_MAXI_CG_FAN2, SENSORS_NO_MAPPING,
1250                             SENSORS_MODE_R, MAXI_SYSCTL_FAN2, VALUE(2), 0 },
1251    { SENSORS_MAXI_CG_FAN3_DIV, "fan3_div", SENSORS_MAXI_CG_FAN3, SENSORS_NO_MAPPING,
1252                             SENSORS_MODE_R, MAXI_SYSCTL_FAN3, VALUE(2), 0 },
1253    { SENSORS_MAXI_CG_TEMP1, "temp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1254                          SENSORS_MODE_R, MAXI_SYSCTL_TEMP1, VALUE(3), 1 },
1255    { SENSORS_MAXI_CG_TEMP2, "temp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1256                          SENSORS_MODE_R, MAXI_SYSCTL_TEMP2, VALUE(3), 1 },
1257    { SENSORS_MAXI_CG_TEMP3, "temp3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1258                          SENSORS_MODE_R, MAXI_SYSCTL_TEMP3, VALUE(3), 1 },
1259    { SENSORS_MAXI_CG_TEMP4, "temp4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1260                          SENSORS_MODE_R, MAXI_SYSCTL_TEMP4, VALUE(3), 1 },
1261    { SENSORS_MAXI_CG_TEMP5, "temp5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1262                          SENSORS_MODE_R, MAXI_SYSCTL_TEMP5, VALUE(3), 1 },
1263    { SENSORS_MAXI_CG_TEMP1_MAX, "temp1_max", SENSORS_MAXI_CG_TEMP1,
1264                              SENSORS_MAXI_CG_TEMP1, SENSORS_MODE_R, 
1265                              MAXI_SYSCTL_TEMP1, VALUE(1), 1 },
1266    { SENSORS_MAXI_CG_TEMP2_MAX, "temp2_max", SENSORS_MAXI_CG_TEMP2,
1267                              SENSORS_MAXI_CG_TEMP2, SENSORS_MODE_R, 
1268                              MAXI_SYSCTL_TEMP2, VALUE(1), 1 },
1269    { SENSORS_MAXI_CG_TEMP3_MAX, "temp3_max", SENSORS_MAXI_CG_TEMP3,
1270                              SENSORS_MAXI_CG_TEMP3, SENSORS_MODE_R, 
1271                              MAXI_SYSCTL_TEMP3, VALUE(1), 1 },
1272    { SENSORS_MAXI_CG_TEMP4_MAX, "temp4_max", SENSORS_MAXI_CG_TEMP4,
1273                              SENSORS_MAXI_CG_TEMP4, SENSORS_MODE_R, 
1274                              MAXI_SYSCTL_TEMP4, VALUE(1), 1 },
1275    { SENSORS_MAXI_CG_TEMP5_MAX, "temp5_max", SENSORS_MAXI_CG_TEMP5,
1276                              SENSORS_MAXI_CG_TEMP5, SENSORS_MODE_R, 
1277                              MAXI_SYSCTL_TEMP5, VALUE(1), 1 },
1278    { SENSORS_MAXI_CG_TEMP1_HYST, "temp1_hyst", SENSORS_MAXI_CG_TEMP1,
1279                              SENSORS_MAXI_CG_TEMP1, SENSORS_MODE_R, 
1280                              MAXI_SYSCTL_TEMP1, VALUE(2), 1 },
1281    { SENSORS_MAXI_CG_TEMP2_HYST, "temp2_hyst", SENSORS_MAXI_CG_TEMP2,
1282                              SENSORS_MAXI_CG_TEMP2, SENSORS_MODE_R, 
1283                              MAXI_SYSCTL_TEMP2, VALUE(2), 1 },
1284    { SENSORS_MAXI_CG_TEMP3_HYST, "temp3_hyst", SENSORS_MAXI_CG_TEMP3,
1285                              SENSORS_MAXI_CG_TEMP3, SENSORS_MODE_R, 
1286                              MAXI_SYSCTL_TEMP3, VALUE(2), 1 },
1287    { SENSORS_MAXI_CG_TEMP4_HYST, "temp4_hyst", SENSORS_MAXI_CG_TEMP4,
1288                              SENSORS_MAXI_CG_TEMP4, SENSORS_MODE_R, 
1289                              MAXI_SYSCTL_TEMP4, VALUE(2), 1 },
1290    { SENSORS_MAXI_CG_TEMP5_HYST, "temp5_hyst", SENSORS_MAXI_CG_TEMP5,
1291                              SENSORS_MAXI_CG_TEMP5, SENSORS_MODE_R, 
1292                              MAXI_SYSCTL_TEMP5, VALUE(2), 1 },
1293    { SENSORS_MAXI_CG_PLL, "pll", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1294                        SENSORS_MODE_R, MAXI_SYSCTL_PLL, VALUE(3), 2 },
1295    { SENSORS_MAXI_CG_PLL_MIN, "pll_min", SENSORS_MAXI_CG_PLL, SENSORS_MAXI_CG_PLL,
1296                            SENSORS_MODE_RW, MAXI_SYSCTL_PLL, VALUE(1), 2 },
1297    { SENSORS_MAXI_CG_PLL_MAX, "pll_max", SENSORS_MAXI_CG_PLL, SENSORS_MAXI_CG_PLL,
1298                            SENSORS_MODE_RW, MAXI_SYSCTL_PLL, VALUE(2), 2 },
1299    { SENSORS_MAXI_CG_VID1, "vid1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1300                         SENSORS_MODE_R, MAXI_SYSCTL_VID1, VALUE(3), 4 },
1301    { SENSORS_MAXI_CG_VID2, "vid2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1302                         SENSORS_MODE_R, MAXI_SYSCTL_VID2, VALUE(3), 4 },
1303    { SENSORS_MAXI_CG_VID3, "vid3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1304                         SENSORS_MODE_R, MAXI_SYSCTL_VID3, VALUE(3), 4 },
1305    { SENSORS_MAXI_CG_VID4, "vid4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1306                         SENSORS_MODE_R, MAXI_SYSCTL_VID4, VALUE(3), 4 },
1307    { SENSORS_MAXI_CG_VID1_MIN, "vid1_min", SENSORS_MAXI_CG_VID1, SENSORS_MAXI_CG_VID1,
1308                             SENSORS_MODE_RW, MAXI_SYSCTL_VID1, VALUE(1), 4 },
1309    { SENSORS_MAXI_CG_VID2_MIN, "vid2_min", SENSORS_MAXI_CG_VID2, SENSORS_MAXI_CG_VID2,
1310                             SENSORS_MODE_RW, MAXI_SYSCTL_VID2, VALUE(1), 4 },
1311    { SENSORS_MAXI_CG_VID3_MIN, "vid3_min", SENSORS_MAXI_CG_VID3, SENSORS_MAXI_CG_VID3,
1312                             SENSORS_MODE_RW, MAXI_SYSCTL_VID3, VALUE(1), 4 },
1313    { SENSORS_MAXI_CG_VID4_MIN, "vid4_min", SENSORS_MAXI_CG_VID4, SENSORS_MAXI_CG_VID4,
1314                             SENSORS_MODE_RW, MAXI_SYSCTL_VID4, VALUE(1), 4 },
1315    { SENSORS_MAXI_CG_VID1_MAX, "vid1_max", SENSORS_MAXI_CG_VID1, SENSORS_MAXI_CG_VID1,
1316                             SENSORS_MODE_RW, MAXI_SYSCTL_VID1, VALUE(2), 4 },
1317    { SENSORS_MAXI_CG_VID2_MAX, "vid2_max", SENSORS_MAXI_CG_VID2, SENSORS_MAXI_CG_VID2,
1318                             SENSORS_MODE_RW, MAXI_SYSCTL_VID2, VALUE(2), 4 },
1319    { SENSORS_MAXI_CG_VID3_MAX, "vid3_max", SENSORS_MAXI_CG_VID3, SENSORS_MAXI_CG_VID3,
1320                             SENSORS_MODE_RW, MAXI_SYSCTL_VID3, VALUE(2), 4 },
1321    { SENSORS_MAXI_CG_VID4_MAX, "vid4_max", SENSORS_MAXI_CG_VID4, SENSORS_MAXI_CG_VID4,
1322                             SENSORS_MODE_RW, MAXI_SYSCTL_VID4, VALUE(2), 4 },
1323    { SENSORS_MAXI_CG_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
1324                           SENSORS_MODE_R, MAXI_SYSCTL_ALARMS, VALUE(1), 0 },
1325    { 0 }
1326  };
1327
1328static sensors_chip_feature maxi_co_features[] =
1329  { 
1330    { SENSORS_MAXI_CO_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1331                         SENSORS_MODE_R, MAXI_SYSCTL_FAN1, VALUE(3), 0 },
1332    { SENSORS_MAXI_CO_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1333                         SENSORS_MODE_R, MAXI_SYSCTL_FAN2, VALUE(3), 0 },
1334    { SENSORS_MAXI_CO_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1335                         SENSORS_MODE_R, MAXI_SYSCTL_FAN3, VALUE(3), 0 },
1336    { SENSORS_MAXI_CO_FAN1_MIN, "fan1_min", SENSORS_MAXI_CO_FAN1, SENSORS_MAXI_CO_FAN1,
1337                             SENSORS_MODE_RW, MAXI_SYSCTL_FAN1, VALUE(1), 0 },
1338    { SENSORS_MAXI_CO_FAN2_MIN, "fan2_min", SENSORS_MAXI_CO_FAN2, SENSORS_MAXI_CO_FAN2,
1339                             SENSORS_MODE_RW, MAXI_SYSCTL_FAN2, VALUE(1), 0 },
1340    { SENSORS_MAXI_CO_FAN3_MIN, "fan3_min", SENSORS_MAXI_CO_FAN3, SENSORS_MAXI_CO_FAN3,
1341                             SENSORS_MODE_RW, MAXI_SYSCTL_FAN3, VALUE(1), 0 },
1342    { SENSORS_MAXI_CO_FAN1_DIV, "fan1_div", SENSORS_MAXI_CO_FAN1, SENSORS_NO_MAPPING,
1343                             SENSORS_MODE_R, MAXI_SYSCTL_FAN1, VALUE(2), 0 },
1344    { SENSORS_MAXI_CO_FAN2_DIV, "fan2_div", SENSORS_MAXI_CO_FAN2, SENSORS_NO_MAPPING,
1345                             SENSORS_MODE_R, MAXI_SYSCTL_FAN2, VALUE(2), 0 },
1346    { SENSORS_MAXI_CO_FAN3_DIV, "fan3_div", SENSORS_MAXI_CO_FAN3, SENSORS_NO_MAPPING,
1347                             SENSORS_MODE_R, MAXI_SYSCTL_FAN3, VALUE(2), 0 },
1348    { SENSORS_MAXI_CO_TEMP1, "temp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1349                          SENSORS_MODE_R, MAXI_SYSCTL_TEMP1, VALUE(3), 1 },
1350    { SENSORS_MAXI_CO_TEMP2, "temp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1351                          SENSORS_MODE_R, MAXI_SYSCTL_TEMP2, VALUE(3), 1 },
1352    { SENSORS_MAXI_CO_TEMP3, "temp3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1353                          SENSORS_MODE_R, MAXI_SYSCTL_TEMP3, VALUE(3), 1 },
1354    { SENSORS_MAXI_CO_TEMP4, "temp4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1355                          SENSORS_MODE_R, MAXI_SYSCTL_TEMP4, VALUE(3), 1 },
1356    { SENSORS_MAXI_CO_TEMP5, "temp5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1357                          SENSORS_MODE_R, MAXI_SYSCTL_TEMP5, VALUE(3), 1 },
1358    { SENSORS_MAXI_CO_TEMP1_MAX, "temp1_max", SENSORS_MAXI_CO_TEMP1,
1359                              SENSORS_MAXI_CO_TEMP1, SENSORS_MODE_R, 
1360                              MAXI_SYSCTL_TEMP1, VALUE(1), 1 },
1361    { SENSORS_MAXI_CO_TEMP2_MAX, "temp2_max", SENSORS_MAXI_CO_TEMP2,
1362                              SENSORS_MAXI_CO_TEMP2, SENSORS_MODE_R, 
1363                              MAXI_SYSCTL_TEMP2, VALUE(1), 1 },
1364    { SENSORS_MAXI_CO_TEMP3_MAX, "temp3_max", SENSORS_MAXI_CO_TEMP3,
1365                              SENSORS_MAXI_CO_TEMP3, SENSORS_MODE_R, 
1366                              MAXI_SYSCTL_TEMP3, VALUE(1), 1 },
1367    { SENSORS_MAXI_CO_TEMP4_MAX, "temp4_max", SENSORS_MAXI_CO_TEMP4,
1368                              SENSORS_MAXI_CO_TEMP4, SENSORS_MODE_R, 
1369                              MAXI_SYSCTL_TEMP4, VALUE(1), 1 },
1370    { SENSORS_MAXI_CO_TEMP5_MAX, "temp5_max", SENSORS_MAXI_CO_TEMP5,
1371                              SENSORS_MAXI_CO_TEMP5, SENSORS_MODE_R, 
1372                              MAXI_SYSCTL_TEMP5, VALUE(1), 1 },
1373    { SENSORS_MAXI_CO_TEMP1_HYST, "temp1_hyst", SENSORS_MAXI_CO_TEMP1,
1374                              SENSORS_MAXI_CO_TEMP1, SENSORS_MODE_R, 
1375                              MAXI_SYSCTL_TEMP1, VALUE(2), 1 },
1376    { SENSORS_MAXI_CO_TEMP2_HYST, "temp2_hyst", SENSORS_MAXI_CO_TEMP2,
1377                              SENSORS_MAXI_CO_TEMP2, SENSORS_MODE_R, 
1378                              MAXI_SYSCTL_TEMP2, VALUE(2), 1 },
1379    { SENSORS_MAXI_CO_TEMP3_HYST, "temp3_hyst", SENSORS_MAXI_CO_TEMP3,
1380                              SENSORS_MAXI_CO_TEMP3, SENSORS_MODE_R, 
1381                              MAXI_SYSCTL_TEMP3, VALUE(2), 1 },
1382    { SENSORS_MAXI_CO_TEMP4_HYST, "temp4_hyst", SENSORS_MAXI_CO_TEMP4,
1383                              SENSORS_MAXI_CO_TEMP4, SENSORS_MODE_R, 
1384                              MAXI_SYSCTL_TEMP4, VALUE(2), 1 },
1385    { SENSORS_MAXI_CO_TEMP5_HYST, "temp5_hyst", SENSORS_MAXI_CO_TEMP5,
1386                              SENSORS_MAXI_CO_TEMP5, SENSORS_MODE_R, 
1387                              MAXI_SYSCTL_TEMP5, VALUE(2), 1 },
1388    { SENSORS_MAXI_CO_PLL, "pll", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1389                        SENSORS_MODE_R, MAXI_SYSCTL_PLL, VALUE(3), 2 },
1390    { SENSORS_MAXI_CO_PLL_MIN, "pll_min", SENSORS_MAXI_CO_PLL, SENSORS_MAXI_CO_PLL,
1391                            SENSORS_MODE_RW, MAXI_SYSCTL_PLL, VALUE(1), 2 },
1392    { SENSORS_MAXI_CO_PLL_MAX, "pll_max", SENSORS_MAXI_CO_PLL, SENSORS_MAXI_CO_PLL,
1393                            SENSORS_MODE_RW, MAXI_SYSCTL_PLL, VALUE(2), 2 },
1394    { SENSORS_MAXI_CO_VID1, "vid1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1395                         SENSORS_MODE_R, MAXI_SYSCTL_VID1, VALUE(3), 4 },
1396    { SENSORS_MAXI_CO_VID2, "vid2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1397                         SENSORS_MODE_R, MAXI_SYSCTL_VID2, VALUE(3), 4 },
1398    { SENSORS_MAXI_CO_VID3, "vid3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1399                         SENSORS_MODE_R, MAXI_SYSCTL_VID3, VALUE(3), 4 },
1400    { SENSORS_MAXI_CO_VID4, "vid4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1401                         SENSORS_MODE_R, MAXI_SYSCTL_VID4, VALUE(3), 4 },
1402    { SENSORS_MAXI_CO_VID1_MIN, "vid1_min", SENSORS_MAXI_CO_VID1, SENSORS_MAXI_CO_VID1,
1403                             SENSORS_MODE_RW, MAXI_SYSCTL_VID1, VALUE(1), 4 },
1404    { SENSORS_MAXI_CO_VID2_MIN, "vid2_min", SENSORS_MAXI_CO_VID2, SENSORS_MAXI_CO_VID2,
1405                             SENSORS_MODE_RW, MAXI_SYSCTL_VID2, VALUE(1), 4 },
1406    { SENSORS_MAXI_CO_VID3_MIN, "vid3_min", SENSORS_MAXI_CO_VID3, SENSORS_MAXI_CO_VID3,
1407                             SENSORS_MODE_RW, MAXI_SYSCTL_VID3, VALUE(1), 4 },
1408    { SENSORS_MAXI_CO_VID4_MIN, "vid4_min", SENSORS_MAXI_CO_VID4, SENSORS_MAXI_CO_VID4,
1409                             SENSORS_MODE_RW, MAXI_SYSCTL_VID4, VALUE(1), 4 },
1410    { SENSORS_MAXI_CO_VID1_MAX, "vid1_max", SENSORS_MAXI_CO_VID1, SENSORS_MAXI_CO_VID1,
1411                             SENSORS_MODE_RW, MAXI_SYSCTL_VID1, VALUE(2), 4 },
1412    { SENSORS_MAXI_CO_VID2_MAX, "vid2_max", SENSORS_MAXI_CO_VID2, SENSORS_MAXI_CO_VID2,
1413                             SENSORS_MODE_RW, MAXI_SYSCTL_VID2, VALUE(2), 4 },
1414    { SENSORS_MAXI_CG_VID3_MAX, "vid3_max", SENSORS_MAXI_CO_VID3, SENSORS_MAXI_CO_VID3,
1415                             SENSORS_MODE_RW, MAXI_SYSCTL_VID3, VALUE(2), 4 },
1416    { SENSORS_MAXI_CO_VID4_MAX, "vid4_max", SENSORS_MAXI_CO_VID4, SENSORS_MAXI_CG_VID4,
1417                             SENSORS_MODE_RW, MAXI_SYSCTL_VID4, VALUE(2), 4 },
1418    { SENSORS_MAXI_CO_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
1419                           SENSORS_MODE_R, MAXI_SYSCTL_ALARMS, VALUE(1), 0 },
1420    { 0 }
1421  };
1422
1423static sensors_chip_feature maxi_as_features[] =
1424  { 
1425    { SENSORS_MAXI_AS_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1426                         SENSORS_MODE_R, MAXI_SYSCTL_FAN1, VALUE(3), 0 },
1427    { SENSORS_MAXI_AS_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1428                         SENSORS_MODE_R, MAXI_SYSCTL_FAN2, VALUE(3), 0 },
1429    { SENSORS_MAXI_AS_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1430                         SENSORS_MODE_R, MAXI_SYSCTL_FAN3, VALUE(3), 0 },
1431    { SENSORS_MAXI_AS_FAN1_MIN, "fan1_min", SENSORS_MAXI_AS_FAN1, SENSORS_MAXI_AS_FAN1,
1432                             SENSORS_MODE_RW, MAXI_SYSCTL_FAN1, VALUE(1), 0 },
1433    { SENSORS_MAXI_AS_FAN2_MIN, "fan2_min", SENSORS_MAXI_AS_FAN2, SENSORS_MAXI_AS_FAN2,
1434                             SENSORS_MODE_RW, MAXI_SYSCTL_FAN2, VALUE(1), 0 },
1435    { SENSORS_MAXI_AS_FAN3_MIN, "fan3_min", SENSORS_MAXI_AS_FAN3, SENSORS_MAXI_AS_FAN3,
1436                             SENSORS_MODE_RW, MAXI_SYSCTL_FAN3, VALUE(1), 0 },
1437    { SENSORS_MAXI_AS_FAN1_DIV, "fan1_div", SENSORS_MAXI_AS_FAN1, SENSORS_NO_MAPPING,
1438                             SENSORS_MODE_R, MAXI_SYSCTL_FAN1, VALUE(2), 0 },
1439    { SENSORS_MAXI_AS_FAN2_DIV, "fan2_div", SENSORS_MAXI_AS_FAN2, SENSORS_NO_MAPPING,
1440                             SENSORS_MODE_R, MAXI_SYSCTL_FAN2, VALUE(2), 0 },
1441    { SENSORS_MAXI_AS_FAN3_DIV, "fan3_div", SENSORS_MAXI_AS_FAN3, SENSORS_NO_MAPPING,
1442                             SENSORS_MODE_R, MAXI_SYSCTL_FAN3, VALUE(2), 0 },
1443    { SENSORS_MAXI_AS_TEMP1, "temp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1444                          SENSORS_MODE_R, MAXI_SYSCTL_TEMP1, VALUE(3), 1 },
1445    { SENSORS_MAXI_AS_TEMP2, "temp2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1446                          SENSORS_MODE_R, MAXI_SYSCTL_TEMP2, VALUE(3), 1 },
1447    { SENSORS_MAXI_AS_TEMP3, "temp3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1448                          SENSORS_MODE_R, MAXI_SYSCTL_TEMP3, VALUE(3), 1 },
1449    { SENSORS_MAXI_AS_TEMP4, "temp4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1450                          SENSORS_MODE_R, MAXI_SYSCTL_TEMP4, VALUE(3), 1 },
1451    { SENSORS_MAXI_AS_TEMP5, "temp5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1452                          SENSORS_MODE_R, MAXI_SYSCTL_TEMP5, VALUE(3), 1 },
1453    { SENSORS_MAXI_AS_TEMP1_MAX, "temp1_max", SENSORS_MAXI_AS_TEMP1,
1454                              SENSORS_MAXI_AS_TEMP1, SENSORS_MODE_R, 
1455                              MAXI_SYSCTL_TEMP1, VALUE(1), 1 },
1456    { SENSORS_MAXI_AS_TEMP2_MAX, "temp2_max", SENSORS_MAXI_AS_TEMP2,
1457                              SENSORS_MAXI_AS_TEMP2, SENSORS_MODE_R, 
1458                              MAXI_SYSCTL_TEMP2, VALUE(1), 1 },
1459    { SENSORS_MAXI_AS_TEMP3_MAX, "temp3_max", SENSORS_MAXI_AS_TEMP3,
1460                              SENSORS_MAXI_AS_TEMP3, SENSORS_MODE_R, 
1461                              MAXI_SYSCTL_TEMP3, VALUE(1), 1 },
1462    { SENSORS_MAXI_AS_TEMP4_MAX, "temp4_max", SENSORS_MAXI_AS_TEMP4,
1463                              SENSORS_MAXI_AS_TEMP4, SENSORS_MODE_R, 
1464                              MAXI_SYSCTL_TEMP4, VALUE(1), 1 },
1465    { SENSORS_MAXI_AS_TEMP5_MAX, "temp5_max", SENSORS_MAXI_AS_TEMP5,
1466                              SENSORS_MAXI_AS_TEMP5, SENSORS_MODE_R, 
1467                              MAXI_SYSCTL_TEMP5, VALUE(1), 1 },
1468    { SENSORS_MAXI_AS_TEMP1_HYST, "temp1_hyst", SENSORS_MAXI_AS_TEMP1,
1469                              SENSORS_MAXI_AS_TEMP1, SENSORS_MODE_R, 
1470                              MAXI_SYSCTL_TEMP1, VALUE(2), 1 },
1471    { SENSORS_MAXI_AS_TEMP2_HYST, "temp2_hyst", SENSORS_MAXI_AS_TEMP2,
1472                              SENSORS_MAXI_AS_TEMP2, SENSORS_MODE_R, 
1473                              MAXI_SYSCTL_TEMP2, VALUE(2), 1 },
1474    { SENSORS_MAXI_AS_TEMP3_HYST, "temp3_hyst", SENSORS_MAXI_AS_TEMP3,
1475                              SENSORS_MAXI_AS_TEMP3, SENSORS_MODE_R, 
1476                              MAXI_SYSCTL_TEMP3, VALUE(2), 1 },
1477    { SENSORS_MAXI_AS_TEMP4_HYST, "temp4_hyst", SENSORS_MAXI_AS_TEMP4,
1478                              SENSORS_MAXI_AS_TEMP4, SENSORS_MODE_R, 
1479                              MAXI_SYSCTL_TEMP4, VALUE(2), 1 },
1480    { SENSORS_MAXI_AS_TEMP5_HYST, "temp5_hyst", SENSORS_MAXI_AS_TEMP5,
1481                              SENSORS_MAXI_AS_TEMP5, SENSORS_MODE_R, 
1482                              MAXI_SYSCTL_TEMP5, VALUE(2), 1 },
1483    { SENSORS_MAXI_AS_PLL, "pll", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1484                        SENSORS_MODE_R, MAXI_SYSCTL_PLL, VALUE(3), 2 },
1485    { SENSORS_MAXI_AS_PLL_MIN, "pll_min", SENSORS_MAXI_AS_PLL, SENSORS_MAXI_AS_PLL,
1486                            SENSORS_MODE_RW, MAXI_SYSCTL_PLL, VALUE(1), 2 },
1487    { SENSORS_MAXI_AS_PLL_MAX, "pll_max", SENSORS_MAXI_AS_PLL, SENSORS_MAXI_AS_PLL,
1488                            SENSORS_MODE_RW, MAXI_SYSCTL_PLL, VALUE(2), 2 },
1489    { SENSORS_MAXI_AS_VID1, "vid1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1490                         SENSORS_MODE_R, MAXI_SYSCTL_VID1, VALUE(3), 4 },
1491    { SENSORS_MAXI_AS_VID2, "vid2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1492                         SENSORS_MODE_R, MAXI_SYSCTL_VID2, VALUE(3), 4 },
1493    { SENSORS_MAXI_AS_VID3, "vid3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1494                         SENSORS_MODE_R, MAXI_SYSCTL_VID3, VALUE(3), 4 },
1495    { SENSORS_MAXI_AS_VID4, "vid4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
1496                         SENSORS_MODE_R, MAXI_SYSCTL_VID4, VALUE(3), 4 },
1497    { SENSORS_MAXI_AS_VID1_MIN, "vid1_min", SENSORS_MAXI_AS_VID1, SENSORS_MAXI_AS_VID1,
1498                             SENSORS_MODE_RW, MAXI_SYSCTL_VID1, VALUE(1), 4 },
1499    { SENSORS_MAXI_AS_VID2_MIN, "vid2_min", SENSORS_MAXI_AS_VID2, SENSORS_MAXI_AS_VID2,
1500                             SENSORS_MODE_RW, MAXI_SYSCTL_VID2, VALUE(1), 4 },
1501    { SENSORS_MAXI_AS_VID3_MIN, "vid3_min", SENSORS_MAXI_AS_VID3, SENSORS_MAXI_AS_VID3,
1502                             SENSORS_MODE_RW, MAXI_SYSCTL_VID3, VALUE(1), 4 },
1503    { SENSORS_MAXI_AS_VID4_MIN, "vid4_min", SENSORS_MAXI_AS_VID4, SENSORS_MAXI_AS_VID4,
1504                             SENSORS_MODE_RW, MAXI_SYSCTL_VID4, VALUE(1), 4 },
1505    { SENSORS_MAXI_AS_VID1_MAX, "vid1_max", SENSORS_MAXI_AS_VID1, SENSORS_MAXI_AS_VID1,
1506                             SENSORS_MODE_RW, MAXI_SYSCTL_VID1, VALUE(2), 4 },
1507    { SENSORS_MAXI_AS_VID2_MAX, "vid2_max", SENSORS_MAXI_AS_VID2, SENSORS_MAXI_AS_VID2,
1508                             SENSORS_MODE_RW, MAXI_SYSCTL_VID2, VALUE(2), 4 },
1509    { SENSORS_MAXI_AS_VID3_MAX, "vid3_max", SENSORS_MAXI_AS_VID3, SENSORS_MAXI_AS_VID3,
1510                             SENSORS_MODE_RW, MAXI_SYSCTL_VID3, VALUE(2), 4 },
1511    { SENSORS_MAXI_AS_VID4_MAX, "vid4_max", SENSORS_MAXI_AS_VID4, SENSORS_MAXI_CG_VID4,
1512                             SENSORS_MODE_RW, MAXI_SYSCTL_VID4, VALUE(2), 4 },
1513    { SENSORS_MAXI_AS_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
1514                           SENSORS_MODE_R, MAXI_SYSCTL_ALARMS, VALUE(1), 0 },
1515    { 0 }
1516  };
1517
1518sensors_chip_features sensors_chip_features_list[] =
1519{
1520 { SENSORS_LM78_PREFIX, lm78_features },
1521 { SENSORS_LM78J_PREFIX, lm78j_features },
1522 { SENSORS_LM79_PREFIX, lm79_features },
1523 { SENSORS_LM75_PREFIX, lm75_features },
1524 { SENSORS_GL518R00_PREFIX, gl518r00_features },
1525 { SENSORS_GL518R80_PREFIX, gl518r80_features },
1526 { SENSORS_LM80_PREFIX, lm80_features },
1527 { SENSORS_W83781D_PREFIX, w83781d_features },
1528 { SENSORS_W83782D_PREFIX, w83782d_features },
1529 { SENSORS_W83783S_PREFIX, w83783s_features },
1530 { SENSORS_ADM9240_PREFIX, adm9240_features },
1531 { SENSORS_DS1780_PREFIX, ds1780_features },
1532 { SENSORS_ADM1021_PREFIX, adm1021_features },
1533 { SENSORS_MAX1617_PREFIX, max1617_features },
1534 { SENSORS_MAX1617A_PREFIX, max1617a_features },
1535 { SENSORS_SIS5595_PREFIX, sis5595_features },
1536 { SENSORS_MAXI_CG_PREFIX, maxi_cg_features },
1537 { SENSORS_MAXI_CO_PREFIX, maxi_co_features },
1538 { SENSORS_MAXI_AS_PREFIX, maxi_as_features },
1539 { 0 }
1540};
1541
Note: See TracBrowser for help on using the browser.