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

Revision 95, 26.6 KB (checked in by frodo, 15 years ago)

More library files

This brings the archive into synch with my harddisk...

Everything in the lib directory should compile without problems (yes, even
without warnings even if WARN=1). It is not well-tested, though, and there
are some minor functions which must still be added. It is now almost
usable.

  • 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  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 "access.h"
22#include "src/sensors.h"
23
24/* For each chip, a list of features;
25   For each feature, the number, its name, the logical mapping (for example,
26   fan1_div belongs to fan1), the compute mapping, an access field, the
27   SYSCTL id of the /proc field, the value location of the /proc field,
28   and the magnitude.
29   The access field  indicates whether resources are readable and writable.
30   Sometimes, a resource is neither; in this case, it is just a catch-all
31   category, for mappings.
32   The value location is the byte-offset where this value can be found in
33   the sysctl buffer.
34   The magnitude is the 10-power through which the read value must be
35   divided. */
36
37
38#define VALUE(x) (x-1) * sizeof(long)
39
40static sensors_chip_feature lm78_features[] =
41  { 
42    { SENSORS_LM78_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
43                        SENSORS_R, LM78_SYSCTL_IN0, VALUE(3), 2 },
44    { SENSORS_LM78_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
45                        SENSORS_R, LM78_SYSCTL_IN1, VALUE(3), 2 },
46    { SENSORS_LM78_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
47                        SENSORS_R, LM78_SYSCTL_IN2, VALUE(3), 2 },
48    { SENSORS_LM78_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
49                        SENSORS_R, LM78_SYSCTL_IN3, VALUE(3), 2 },
50    { SENSORS_LM78_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
51                        SENSORS_R, LM78_SYSCTL_IN4, VALUE(3), 2 },
52    { SENSORS_LM78_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
53                        SENSORS_R, LM78_SYSCTL_IN5, VALUE(3), 2 },
54    { SENSORS_LM78_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
55                        SENSORS_R, LM78_SYSCTL_IN6, VALUE(3), 2 },
56    { SENSORS_LM78_IN0_MIN, "in0_min", SENSORS_LM78_IN0, SENSORS_LM78_IN0,
57                            SENSORS_RW, LM78_SYSCTL_IN0, VALUE(1), 2 },
58    { SENSORS_LM78_IN1_MIN, "in1_min", SENSORS_LM78_IN1, SENSORS_LM78_IN1,
59                            SENSORS_RW, LM78_SYSCTL_IN1, VALUE(1), 2 },
60    { SENSORS_LM78_IN2_MIN, "in2_min", SENSORS_LM78_IN2, SENSORS_LM78_IN2,
61                            SENSORS_RW, LM78_SYSCTL_IN2, VALUE(1), 2 },
62    { SENSORS_LM78_IN3_MIN, "in3_min", SENSORS_LM78_IN3, SENSORS_LM78_IN3,
63                            SENSORS_RW, LM78_SYSCTL_IN3, VALUE(1), 2 },
64    { SENSORS_LM78_IN4_MIN, "in4_min", SENSORS_LM78_IN4, SENSORS_LM78_IN4,
65                            SENSORS_RW, LM78_SYSCTL_IN4, VALUE(1), 2 },
66    { SENSORS_LM78_IN5_MIN, "in5_min", SENSORS_LM78_IN5, SENSORS_LM78_IN5,
67                            SENSORS_RW, LM78_SYSCTL_IN5, VALUE(1), 2 },
68    { SENSORS_LM78_IN6_MIN, "in6_min", SENSORS_LM78_IN6, SENSORS_LM78_IN6,
69                            SENSORS_RW, LM78_SYSCTL_IN6, VALUE(1), 2 },
70    { SENSORS_LM78_IN0_MAX, "in0_max", SENSORS_LM78_IN0, SENSORS_LM78_IN0,
71                            SENSORS_RW, LM78_SYSCTL_IN0, VALUE(2), 2 },
72    { SENSORS_LM78_IN1_MAX, "in1_max", SENSORS_LM78_IN1, SENSORS_LM78_IN1,
73                            SENSORS_RW, LM78_SYSCTL_IN1, VALUE(2), 2 },
74    { SENSORS_LM78_IN2_MAX, "in2_max", SENSORS_LM78_IN2, SENSORS_LM78_IN2,
75                            SENSORS_RW, LM78_SYSCTL_IN2, VALUE(2), 2 },
76    { SENSORS_LM78_IN3_MAX, "in3_max", SENSORS_LM78_IN3, SENSORS_LM78_IN3,
77                            SENSORS_RW, LM78_SYSCTL_IN3, VALUE(2), 2 },
78    { SENSORS_LM78_IN4_MAX, "in4_max", SENSORS_LM78_IN4, SENSORS_LM78_IN4,
79                            SENSORS_RW, LM78_SYSCTL_IN4, VALUE(2), 2 },
80    { SENSORS_LM78_IN5_MAX, "in5_max", SENSORS_LM78_IN5, SENSORS_LM78_IN5,
81                            SENSORS_RW, LM78_SYSCTL_IN5, VALUE(2), 2 },
82    { SENSORS_LM78_IN6_MAX, "in6_max", SENSORS_LM78_IN6, SENSORS_LM78_IN6,
83                            SENSORS_RW, LM78_SYSCTL_IN6, VALUE(2), 2 },
84    { SENSORS_LM78_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
85                         SENSORS_R, LM78_SYSCTL_FAN1, VALUE(2), 0 },
86    { SENSORS_LM78_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
87                         SENSORS_R, LM78_SYSCTL_FAN2, VALUE(2), 0 },
88    { SENSORS_LM78_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
89                         SENSORS_R, LM78_SYSCTL_FAN3, VALUE(2), 0 },
90    { SENSORS_LM78_FAN1_MIN, "fan1_min", SENSORS_LM78_FAN1, SENSORS_NO_MAPPING,
91                             SENSORS_RW, LM78_SYSCTL_FAN1, VALUE(1), 0 },
92    { SENSORS_LM78_FAN2_MIN, "fan2_min", SENSORS_LM78_FAN2, SENSORS_NO_MAPPING,
93                             SENSORS_RW, LM78_SYSCTL_FAN2, VALUE(1), 0 },
94    { SENSORS_LM78_FAN3_MIN, "fan3_min", SENSORS_LM78_FAN3, SENSORS_NO_MAPPING,
95                             SENSORS_RW, LM78_SYSCTL_FAN3, VALUE(1), 0 },
96    { SENSORS_LM78_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
97                         SENSORS_R, LM78_SYSCTL_TEMP, VALUE(3), 1 },
98    { SENSORS_LM78_TEMP_HYST, "temp_hyst", SENSORS_LM78_TEMP,
99                              SENSORS_LM78_TEMP, SENSORS_RW, LM78_SYSCTL_TEMP,
100                              VALUE(2), 1 },
101    { SENSORS_LM78_TEMP_OVER, "temp_over", SENSORS_LM78_TEMP,
102                              SENSORS_LM78_TEMP, SENSORS_RW, LM78_SYSCTL_TEMP,
103                              VALUE(1), 1 },
104    { SENSORS_LM78_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
105                        SENSORS_R, LM78_SYSCTL_VID, VALUE(1), 2 },
106    { SENSORS_LM78_FAN1_DIV, "fan1_div", SENSORS_LM78_FAN1, SENSORS_NO_MAPPING,
107                             SENSORS_RW, LM78_SYSCTL_FAN_DIV, VALUE(1), 0 },
108    { SENSORS_LM78_FAN2_DIV, "fan2_div", SENSORS_LM78_FAN2, SENSORS_NO_MAPPING,
109                             SENSORS_RW, LM78_SYSCTL_FAN_DIV, VALUE(2), 0 },
110    { SENSORS_LM78_FAN3_DIV, "fan3_div", SENSORS_LM78_FAN3, SENSORS_NO_MAPPING,
111                              SENSORS_R, LM78_SYSCTL_FAN_DIV, VALUE(3), 0 },
112    { SENSORS_LM78_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
113                           SENSORS_R, LM78_SYSCTL_ALARMS, VALUE(1), 0 },
114    { 0 }
115  };
116
117static sensors_chip_feature lm78j_features[] =
118  { 
119    { SENSORS_LM78J_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
120                         SENSORS_R, LM78_SYSCTL_IN0, VALUE(3), 2 },
121    { SENSORS_LM78J_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
122                         SENSORS_R, LM78_SYSCTL_IN1, VALUE(3), 2 },
123    { SENSORS_LM78J_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
124                         SENSORS_R, LM78_SYSCTL_IN2, VALUE(3), 2 },
125    { SENSORS_LM78J_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
126                         SENSORS_R, LM78_SYSCTL_IN3, VALUE(3), 2 },
127    { SENSORS_LM78J_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
128                         SENSORS_R, LM78_SYSCTL_IN4, VALUE(3), 2 },
129    { SENSORS_LM78J_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
130                         SENSORS_R, LM78_SYSCTL_IN5, VALUE(3), 2 },
131    { SENSORS_LM78J_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
132                         SENSORS_R, LM78_SYSCTL_IN6, VALUE(3), 2 },
133    { SENSORS_LM78J_IN0_MIN, "in0_min", SENSORS_LM78J_IN0, SENSORS_LM78J_IN0,
134                             SENSORS_RW, LM78_SYSCTL_IN0, VALUE(1), 2 },
135    { SENSORS_LM78J_IN1_MIN, "in1_min", SENSORS_LM78J_IN1, SENSORS_LM78J_IN1,
136                             SENSORS_RW, LM78_SYSCTL_IN1, VALUE(1), 2 },
137    { SENSORS_LM78J_IN2_MIN, "in2_min", SENSORS_LM78J_IN2, SENSORS_LM78J_IN2,
138                             SENSORS_RW, LM78_SYSCTL_IN2, VALUE(1), 2 },
139    { SENSORS_LM78J_IN3_MIN, "in3_min", SENSORS_LM78J_IN3, SENSORS_LM78J_IN3,
140                             SENSORS_RW, LM78_SYSCTL_IN3, VALUE(1), 2 },
141    { SENSORS_LM78J_IN4_MIN, "in4_min", SENSORS_LM78J_IN4, SENSORS_LM78J_IN4,
142                             SENSORS_RW, LM78_SYSCTL_IN4, VALUE(1), 2 },
143    { SENSORS_LM78J_IN5_MIN, "in5_min", SENSORS_LM78J_IN5, SENSORS_LM78J_IN5,
144                             SENSORS_RW, LM78_SYSCTL_IN5, VALUE(1), 2 },
145    { SENSORS_LM78J_IN6_MIN, "in6_min", SENSORS_LM78J_IN6, SENSORS_LM78J_IN6,
146                             SENSORS_RW, LM78_SYSCTL_IN6, VALUE(1), 2 },
147    { SENSORS_LM78J_IN0_MAX, "in0_max", SENSORS_LM78J_IN0, SENSORS_LM78J_IN0,
148                             SENSORS_RW, LM78_SYSCTL_IN0, VALUE(2), 2 },
149    { SENSORS_LM78J_IN1_MAX, "in1_max", SENSORS_LM78J_IN1, SENSORS_LM78J_IN1,
150                             SENSORS_RW, LM78_SYSCTL_IN1, VALUE(2), 2 },
151    { SENSORS_LM78J_IN2_MAX, "in2_max", SENSORS_LM78J_IN2, SENSORS_LM78J_IN2,
152                             SENSORS_RW, LM78_SYSCTL_IN2, VALUE(2), 2 },
153    { SENSORS_LM78J_IN3_MAX, "in3_max", SENSORS_LM78J_IN3, SENSORS_LM78J_IN3,
154                             SENSORS_RW, LM78_SYSCTL_IN3, VALUE(2), 2 },
155    { SENSORS_LM78J_IN4_MAX, "in4_max", SENSORS_LM78J_IN4, SENSORS_LM78J_IN4,
156                             SENSORS_RW, LM78_SYSCTL_IN4, VALUE(2), 2 },
157    { SENSORS_LM78J_IN5_MAX, "in5_max", SENSORS_LM78J_IN5, SENSORS_LM78J_IN5,
158                             SENSORS_RW, LM78_SYSCTL_IN5, VALUE(2), 2 },
159    { SENSORS_LM78J_IN6_MAX, "in6_max", SENSORS_LM78J_IN6, SENSORS_LM78J_IN6,
160                             SENSORS_RW, LM78_SYSCTL_IN6, VALUE(2), 2 },
161    { SENSORS_LM78J_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
162                          SENSORS_R, LM78_SYSCTL_FAN1, VALUE(2), 0 },
163    { SENSORS_LM78J_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
164                          SENSORS_R, LM78_SYSCTL_FAN2, VALUE(2), 0 },
165    { SENSORS_LM78J_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
166                          SENSORS_R, LM78_SYSCTL_FAN3, VALUE(2), 0 },
167    { SENSORS_LM78J_FAN1_MIN, "fan1_min", SENSORS_LM78J_FAN1,
168                              SENSORS_NO_MAPPING, SENSORS_RW, LM78_SYSCTL_FAN1,
169                              VALUE(1), 0 },
170    { SENSORS_LM78J_FAN2_MIN, "fan2_min", SENSORS_LM78J_FAN2,
171                              SENSORS_NO_MAPPING, SENSORS_RW, LM78_SYSCTL_FAN2,
172                              VALUE(1), 0 },
173    { SENSORS_LM78J_FAN3_MIN, "fan3_min", SENSORS_LM78J_FAN3,
174                              SENSORS_NO_MAPPING, SENSORS_RW, LM78_SYSCTL_FAN3,
175                              VALUE(1), 0 },
176    { SENSORS_LM78J_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
177                          SENSORS_R, LM78_SYSCTL_TEMP, VALUE(3), 1 },
178    { SENSORS_LM78J_TEMP_HYST, "temp_hyst", SENSORS_LM78J_TEMP,
179                               SENSORS_LM78J_TEMP, SENSORS_RW, LM78_SYSCTL_TEMP,
180                               VALUE(2), 1 },
181    { SENSORS_LM78J_TEMP_OVER, "temp_over", SENSORS_LM78J_TEMP,
182                               SENSORS_LM78J_TEMP, SENSORS_RW, LM78_SYSCTL_TEMP,
183                               VALUE(1), 1 },
184    { SENSORS_LM78J_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
185                         SENSORS_R, LM78_SYSCTL_VID, VALUE(1), 2 },
186    { SENSORS_LM78J_FAN1_DIV, "fan1_div", SENSORS_LM78J_FAN1,
187                              SENSORS_NO_MAPPING, SENSORS_RW, 
188                              LM78_SYSCTL_FAN_DIV, VALUE(1), 0 },
189    { SENSORS_LM78J_FAN2_DIV, "fan2_div", SENSORS_LM78J_FAN2,
190                              SENSORS_NO_MAPPING, SENSORS_RW,
191                              LM78_SYSCTL_FAN_DIV, VALUE(2), 0 },
192    { SENSORS_LM78J_FAN3_DIV, "fan3_div", SENSORS_LM78J_FAN3,
193                              SENSORS_NO_MAPPING, SENSORS_R,
194                              LM78_SYSCTL_FAN_DIV, VALUE(3), 0 },
195    { SENSORS_LM78J_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
196                            SENSORS_R, LM78_SYSCTL_ALARMS, VALUE(1), 0 },
197    { 0 }
198  };
199
200static sensors_chip_feature lm79_features[] =
201  { 
202    { SENSORS_LM79_IN0, "in0", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
203                        SENSORS_R, LM78_SYSCTL_IN0, VALUE(3), 2 },
204    { SENSORS_LM79_IN1, "in1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
205                        SENSORS_R, LM78_SYSCTL_IN1, VALUE(3), 2 },
206    { SENSORS_LM79_IN2, "in2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
207                        SENSORS_R, LM78_SYSCTL_IN2, VALUE(3), 2 },
208    { SENSORS_LM79_IN3, "in3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
209                        SENSORS_R, LM78_SYSCTL_IN3, VALUE(3), 2 },
210    { SENSORS_LM79_IN4, "in4", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
211                        SENSORS_R, LM78_SYSCTL_IN4, VALUE(3), 2 },
212    { SENSORS_LM79_IN5, "in5", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
213                        SENSORS_R, LM78_SYSCTL_IN5, VALUE(3), 2 },
214    { SENSORS_LM79_IN6, "in6", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
215                        SENSORS_R, LM78_SYSCTL_IN6, VALUE(3), 2 },
216    { SENSORS_LM79_IN0_MIN, "in0_min", SENSORS_LM79_IN0, SENSORS_LM79_IN0,
217                            SENSORS_RW, LM78_SYSCTL_IN0, VALUE(1), 2 },
218    { SENSORS_LM79_IN1_MIN, "in1_min", SENSORS_LM79_IN1, SENSORS_LM79_IN1,
219                            SENSORS_RW, LM78_SYSCTL_IN1, VALUE(1), 2 },
220    { SENSORS_LM79_IN2_MIN, "in2_min", SENSORS_LM79_IN2, SENSORS_LM79_IN2,
221                            SENSORS_RW, LM78_SYSCTL_IN2, VALUE(1), 2 },
222    { SENSORS_LM79_IN3_MIN, "in3_min", SENSORS_LM79_IN3, SENSORS_LM79_IN3,
223                            SENSORS_RW, LM78_SYSCTL_IN3, VALUE(1), 2 },
224    { SENSORS_LM79_IN4_MIN, "in4_min", SENSORS_LM79_IN4, SENSORS_LM79_IN4,
225                            SENSORS_RW, LM78_SYSCTL_IN4, VALUE(1), 2 },
226    { SENSORS_LM79_IN5_MIN, "in5_min", SENSORS_LM79_IN5, SENSORS_LM79_IN5,
227                            SENSORS_RW, LM78_SYSCTL_IN5, VALUE(1), 2 },
228    { SENSORS_LM79_IN6_MIN, "in6_min", SENSORS_LM79_IN6, SENSORS_LM79_IN6,
229                            SENSORS_RW, LM78_SYSCTL_IN6, VALUE(1), 2 },
230    { SENSORS_LM79_IN0_MAX, "in0_max", SENSORS_LM79_IN0, SENSORS_LM79_IN0,
231                            SENSORS_RW, LM78_SYSCTL_IN0, VALUE(2), 2 },
232    { SENSORS_LM79_IN1_MAX, "in1_max", SENSORS_LM79_IN1, SENSORS_LM79_IN1,
233                            SENSORS_RW, LM78_SYSCTL_IN1, VALUE(2), 2 },
234    { SENSORS_LM79_IN2_MAX, "in2_max", SENSORS_LM79_IN2, SENSORS_LM79_IN2,
235                            SENSORS_RW, LM78_SYSCTL_IN2, VALUE(2), 2 },
236    { SENSORS_LM79_IN3_MAX, "in3_max", SENSORS_LM79_IN3, SENSORS_LM79_IN3,
237                            SENSORS_RW, LM78_SYSCTL_IN3, VALUE(2), 2 },
238    { SENSORS_LM79_IN4_MAX, "in4_max", SENSORS_LM79_IN4, SENSORS_LM79_IN4,
239                            SENSORS_RW, LM78_SYSCTL_IN4, VALUE(2), 2 },
240    { SENSORS_LM79_IN5_MAX, "in5_max", SENSORS_LM79_IN5, SENSORS_LM79_IN5,
241                            SENSORS_RW, LM78_SYSCTL_IN5, VALUE(2), 2 },
242    { SENSORS_LM79_IN6_MAX, "in6_max", SENSORS_LM79_IN6, SENSORS_LM79_IN6,
243                            SENSORS_RW, LM78_SYSCTL_IN6, VALUE(2), 2 },
244    { SENSORS_LM79_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
245                         SENSORS_R, LM78_SYSCTL_FAN1, VALUE(2), 0 },
246    { SENSORS_LM79_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
247                         SENSORS_R, LM78_SYSCTL_FAN2, VALUE(2), 0 },
248    { SENSORS_LM79_FAN3, "fan3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
249                         SENSORS_R, LM78_SYSCTL_FAN3, VALUE(2), 0 },
250    { SENSORS_LM79_FAN1_MIN, "fan1_min", SENSORS_LM79_FAN1, SENSORS_NO_MAPPING,
251                             SENSORS_RW, LM78_SYSCTL_FAN1, VALUE(1), 0 },
252    { SENSORS_LM79_FAN2_MIN, "fan2_min", SENSORS_LM79_FAN2, SENSORS_NO_MAPPING,
253                             SENSORS_RW, LM78_SYSCTL_FAN2, VALUE(1), 0 },
254    { SENSORS_LM79_FAN3_MIN, "fan3_min", SENSORS_LM79_FAN3, SENSORS_NO_MAPPING,
255                             SENSORS_RW, LM78_SYSCTL_FAN3, VALUE(1), 0 },
256    { SENSORS_LM79_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
257                         SENSORS_R, LM78_SYSCTL_TEMP, VALUE(3), 1 },
258    { SENSORS_LM79_TEMP_HYST, "temp_hyst", SENSORS_LM79_TEMP,
259                              SENSORS_LM79_TEMP, SENSORS_RW, LM78_SYSCTL_TEMP,
260                              VALUE(2), 1 },
261    { SENSORS_LM79_TEMP_OVER, "temp_over", SENSORS_LM79_TEMP,
262                              SENSORS_LM79_TEMP, SENSORS_RW, LM78_SYSCTL_TEMP,
263                              VALUE(1), 1 },
264    { SENSORS_LM79_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
265                        SENSORS_R, LM78_SYSCTL_VID, VALUE(1), 2 },
266    { SENSORS_LM79_FAN1_DIV, "fan1_div", SENSORS_LM79_FAN1, SENSORS_NO_MAPPING,
267                             SENSORS_RW, LM78_SYSCTL_FAN_DIV, VALUE(1), 0 },
268    { SENSORS_LM79_FAN2_DIV, "fan2_div", SENSORS_LM79_FAN2, SENSORS_NO_MAPPING,
269                             SENSORS_RW, LM78_SYSCTL_FAN_DIV, VALUE(2), 0 },
270    { SENSORS_LM79_FAN3_DIV, "fan3_div", SENSORS_LM79_FAN3, SENSORS_NO_MAPPING,
271                              SENSORS_R, LM78_SYSCTL_FAN_DIV, VALUE(3), 0 },
272    { SENSORS_LM79_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
273                           SENSORS_R, LM78_SYSCTL_ALARMS, VALUE(1), 0 },
274    { 0 }
275  };
276
277
278static sensors_chip_feature lm75_features[] =
279  {
280    { SENSORS_LM75_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
281                         SENSORS_R, LM75_SYSCTL_TEMP, VALUE(3), 1 },
282    { SENSORS_LM75_TEMP_HYST, "temp_hyst", SENSORS_LM75_TEMP,
283                              SENSORS_LM75_TEMP, SENSORS_RW, LM75_SYSCTL_TEMP,
284                              VALUE(2), 1 },
285    { SENSORS_LM75_TEMP_OVER, "temp_over", SENSORS_LM75_TEMP,
286                              SENSORS_LM75_TEMP, SENSORS_RW, LM75_SYSCTL_TEMP,
287                              VALUE(1), 1 },
288    { 0 }
289  };
290
291static sensors_chip_feature gl518r00_features[] =
292  {
293    { SENSORS_GL518R00_VDD, "vdd", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
294                            SENSORS_NO_RW, GL518_SYSCTL_VDD, VALUE(3), 2 },
295    { SENSORS_GL518R00_VIN1, "vin1", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
296                             SENSORS_NO_RW, GL518_SYSCTL_VIN1, VALUE(3), 2 },
297    { SENSORS_GL518R00_VIN2, "vin2", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
298                             SENSORS_NO_RW, GL518_SYSCTL_VIN2, VALUE(3), 2 },
299    { SENSORS_GL518R00_VIN3, "vin3", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
300                             SENSORS_R, GL518_SYSCTL_VIN3, VALUE(3), 2 },
301    { SENSORS_GL518R00_VDD_MIN, "vdd_min", SENSORS_GL518R00_VDD,
302                                SENSORS_GL518R00_VDD, SENSORS_RW,
303                                GL518_SYSCTL_VDD, VALUE(1), 2 },
304    { SENSORS_GL518R00_VIN1_MIN, "vin1_min", SENSORS_GL518R00_VIN1, 
305                                 SENSORS_GL518R00_VIN1, SENSORS_RW,
306                                 GL518_SYSCTL_VIN1, VALUE(1), 2 },
307    { SENSORS_GL518R00_VIN2_MIN, "vin2_min", SENSORS_GL518R00_VIN2, 
308                                 SENSORS_GL518R00_VIN2, SENSORS_RW,
309                                 GL518_SYSCTL_VIN2, VALUE(1), 2 },
310    { SENSORS_GL518R00_VIN3_MIN, "vin3_min", SENSORS_GL518R00_VIN3, 
311                                 SENSORS_GL518R00_VIN3, SENSORS_RW,
312                                 GL518_SYSCTL_VIN3, VALUE(1), 2 },
313    { SENSORS_GL518R00_VDD_MAX, "vdd_max", SENSORS_GL518R00_VDD,
314                                SENSORS_GL518R00_VDD, SENSORS_RW,
315                                GL518_SYSCTL_VDD, VALUE(2), 2 },
316    { SENSORS_GL518R00_VIN1_MAX, "vin1_max", SENSORS_GL518R00_VIN1, 
317                                 SENSORS_GL518R00_VIN1, SENSORS_RW,
318                                 GL518_SYSCTL_VIN1, VALUE(2), 2 },
319    { SENSORS_GL518R00_VIN2_MAX, "vin2_max", SENSORS_GL518R00_VIN2, 
320                                 SENSORS_GL518R00_VIN2, SENSORS_RW,
321                                 GL518_SYSCTL_VIN2, VALUE(2), 2 },
322    { SENSORS_GL518R00_VIN3_MAX, "vin3_max", SENSORS_GL518R00_VIN3, 
323                                 SENSORS_GL518R00_VIN3, SENSORS_RW,
324                                 GL518_SYSCTL_VIN3, VALUE(2), 2 },
325    { SENSORS_GL518R00_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
326                             SENSORS_R, GL518_SYSCTL_FAN1, VALUE(2), 0 },
327    { SENSORS_GL518R00_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
328                             SENSORS_R, GL518_SYSCTL_FAN2, VALUE(2), 0 },
329    { SENSORS_GL518R00_FAN1_MIN, "fan1_min", SENSORS_GL518R00_FAN1, 
330                                 SENSORS_GL518R00_FAN1, SENSORS_RW,
331                                 GL518_SYSCTL_FAN1, VALUE(1), 0 },
332    { SENSORS_GL518R00_FAN2_MIN, "fan2_min", SENSORS_GL518R00_FAN2, 
333                                 SENSORS_GL518R00_FAN2, SENSORS_RW,
334                                 GL518_SYSCTL_FAN2, VALUE(1), 0 },
335    { SENSORS_GL518R00_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
336                             SENSORS_R, GL518_SYSCTL_TEMP, VALUE(3), 1 },
337    { SENSORS_GL518R00_TEMP_HYST, "temp_hyst", SENSORS_GL518R00_TEMP, 
338                                  SENSORS_GL518R00_TEMP, SENSORS_RW,
339                                  GL518_SYSCTL_TEMP, VALUE(2), 1 },
340    { SENSORS_GL518R00_TEMP_OVER, "temp_over", SENSORS_GL518R00_TEMP, 
341                                  SENSORS_GL518R00_TEMP, SENSORS_RW,
342                                  GL518_SYSCTL_VDD, VALUE(1), 1 },
343    { SENSORS_GL518R00_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
344                            SENSORS_R, GL518_SYSCTL_VID, VALUE(1), 0 },
345    { SENSORS_GL518R00_FAN1_DIV, "fan1_div", SENSORS_GL518R00_FAN1, 
346                                 SENSORS_NO_MAPPING, SENSORS_RW,
347                                 GL518_SYSCTL_FAN_DIV, VALUE(1), 0 },
348    { SENSORS_GL518R00_FAN2_DIV, "fan2_div", SENSORS_GL518R00_FAN2, 
349                                 SENSORS_NO_MAPPING, SENSORS_RW,
350                                 GL518_SYSCTL_FAN_DIV, VALUE(2), 0 },
351    { SENSORS_GL518R00_ALARMS, "alarms", SENSORS_NO_MAPPING,
352                               SENSORS_NO_MAPPING, SENSORS_R,
353                               GL518_SYSCTL_FAN_DIV, VALUE(3), 0 },
354    { 0 }
355  };
356
357
358static sensors_chip_feature gl518r80_features[] =
359  {
360    { SENSORS_GL518R80_VDD, "vdd", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
361                            SENSORS_NO_RW, GL518_SYSCTL_VDD, VALUE(3), 2 },
362    { SENSORS_GL518R80_VIN1, "vin1", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
363                             SENSORS_NO_RW, GL518_SYSCTL_VIN1, VALUE(3), 2 },
364    { SENSORS_GL518R80_VIN2, "vin2", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
365                             SENSORS_NO_RW, GL518_SYSCTL_VIN2, VALUE(3), 2 },
366    { SENSORS_GL518R80_VIN3, "vin3", SENSORS_NO_MAPPING,SENSORS_NO_MAPPING,
367                             SENSORS_R, GL518_SYSCTL_VIN3, VALUE(3), 2 },
368    { SENSORS_GL518R80_VDD_MIN, "vdd_min", SENSORS_GL518R80_VDD,
369                                SENSORS_GL518R80_VDD, SENSORS_RW,
370                                GL518_SYSCTL_VDD, VALUE(1), 2 },
371    { SENSORS_GL518R80_VIN1_MIN, "vin1_min", SENSORS_GL518R80_VIN1, 
372                                 SENSORS_GL518R80_VIN1, SENSORS_RW,
373                                 GL518_SYSCTL_VIN1, VALUE(1), 2 },
374    { SENSORS_GL518R80_VIN2_MIN, "vin2_min", SENSORS_GL518R80_VIN2, 
375                                 SENSORS_GL518R80_VIN2, SENSORS_RW,
376                                 GL518_SYSCTL_VIN2, VALUE(1), 2 },
377    { SENSORS_GL518R80_VIN3_MIN, "vin3_min", SENSORS_GL518R80_VIN3, 
378                                 SENSORS_GL518R80_VIN3, SENSORS_RW,
379                                 GL518_SYSCTL_VIN3, VALUE(1), 2 },
380    { SENSORS_GL518R80_VDD_MAX, "vdd_max", SENSORS_GL518R80_VDD,
381                                SENSORS_GL518R80_VDD, SENSORS_RW,
382                                GL518_SYSCTL_VDD, VALUE(2), 2 },
383    { SENSORS_GL518R80_VIN1_MAX, "vin1_max", SENSORS_GL518R80_VIN1, 
384                                 SENSORS_GL518R80_VIN1, SENSORS_RW,
385                                 GL518_SYSCTL_VIN1, VALUE(2), 2 },
386    { SENSORS_GL518R80_VIN2_MAX, "vin2_max", SENSORS_GL518R80_VIN2, 
387                                 SENSORS_GL518R80_VIN2, SENSORS_RW,
388                                 GL518_SYSCTL_VIN2, VALUE(2), 2 },
389    { SENSORS_GL518R80_VIN3_MAX, "vin3_max", SENSORS_GL518R80_VIN3, 
390                                 SENSORS_GL518R80_VIN3, SENSORS_RW,
391                                 GL518_SYSCTL_VIN3, VALUE(2), 2 },
392    { SENSORS_GL518R80_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
393                             SENSORS_R, GL518_SYSCTL_FAN1, VALUE(2), 0 },
394    { SENSORS_GL518R80_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
395                             SENSORS_R, GL518_SYSCTL_FAN2, VALUE(2), 0 },
396    { SENSORS_GL518R80_FAN1_MIN, "fan1_min", SENSORS_GL518R80_FAN1, 
397                                 SENSORS_GL518R80_FAN1, SENSORS_RW,
398                                 GL518_SYSCTL_FAN1, VALUE(1), 0 },
399    { SENSORS_GL518R80_FAN2_MIN, "fan2_min", SENSORS_GL518R80_FAN2, 
400                                 SENSORS_GL518R80_FAN2, SENSORS_RW,
401                                 GL518_SYSCTL_FAN2, VALUE(1), 0 },
402    { SENSORS_GL518R80_TEMP, "temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
403                             SENSORS_R, GL518_SYSCTL_TEMP, VALUE(3), 1 },
404    { SENSORS_GL518R80_TEMP_HYST, "temp_hyst", SENSORS_GL518R80_TEMP, 
405                                  SENSORS_GL518R80_TEMP, SENSORS_RW,
406                                  GL518_SYSCTL_TEMP, VALUE(2), 1 },
407    { SENSORS_GL518R80_TEMP_OVER, "temp_over", SENSORS_GL518R80_TEMP, 
408                                  SENSORS_GL518R80_TEMP, SENSORS_RW,
409                                  GL518_SYSCTL_VDD, VALUE(1), 1 },
410    { SENSORS_GL518R80_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
411                            SENSORS_R, GL518_SYSCTL_VID, VALUE(1), 0 },
412    { SENSORS_GL518R80_FAN1_DIV, "fan1_div", SENSORS_GL518R80_FAN1, 
413                                 SENSORS_NO_MAPPING, SENSORS_RW,
414                                 GL518_SYSCTL_FAN_DIV, VALUE(1), 0 },
415    { SENSORS_GL518R80_FAN2_DIV, "fan2_div", SENSORS_GL518R80_FAN2, 
416                                 SENSORS_NO_MAPPING, SENSORS_RW,
417                                 GL518_SYSCTL_FAN_DIV, VALUE(2), 0 },
418    { SENSORS_GL518R80_ALARMS, "alarms", SENSORS_NO_MAPPING,
419                               SENSORS_NO_MAPPING, SENSORS_R,
420                               GL518_SYSCTL_FAN_DIV, VALUE(3), 0 },
421    { 0 }
422  };
423
424
425sensors_chip_features sensors_chip_features_list[] =
426{
427 { SENSORS_LM78_PREFIX, lm78_features },
428 { SENSORS_LM78J_PREFIX, lm78j_features },
429 { SENSORS_LM79_PREFIX, lm79_features },
430 { SENSORS_LM75_PREFIX, lm75_features },
431 { SENSORS_GL518R00_PREFIX, gl518r00_features },
432 { SENSORS_GL518R80_PREFIX, gl518r80_features },
433 { 0 }
434};
435
Note: See TracBrowser for help on using the browser.