aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/f71882fg.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2011-07-03 07:32:53 -0400
committerJean Delvare <khali@endymion.delvare>2011-07-03 07:32:53 -0400
commit5da556e33fc53179a5bec10b5698e262cf68e26d (patch)
treec1b0fb657a1a876ee223621940f0db358dbe046b /drivers/hwmon/f71882fg.c
parent7958e3b45dd03bf4bc35b3ec97b8a9a4d6c616a5 (diff)
hwmon: (f71882fg) Add support for the F71869A
The F71869A is almost the same as the F71869F/E, except that it has the normal number of temp and pwm zones for a F71882FG derived chip, rather then the limited number of the F71869F/E. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Tested-by: Max Baldwin <archerseven@gmail.com> Acked-by: Guenter Roeck <guenter.roeck@ericsson.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'drivers/hwmon/f71882fg.c')
-rw-r--r--drivers/hwmon/f71882fg.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/hwmon/f71882fg.c b/drivers/hwmon/f71882fg.c
index f8ef19673391..2d96ed2bf8ed 100644
--- a/drivers/hwmon/f71882fg.c
+++ b/drivers/hwmon/f71882fg.c
@@ -52,6 +52,7 @@
52#define SIO_F71858_ID 0x0507 /* Chipset ID */ 52#define SIO_F71858_ID 0x0507 /* Chipset ID */
53#define SIO_F71862_ID 0x0601 /* Chipset ID */ 53#define SIO_F71862_ID 0x0601 /* Chipset ID */
54#define SIO_F71869_ID 0x0814 /* Chipset ID */ 54#define SIO_F71869_ID 0x0814 /* Chipset ID */
55#define SIO_F71869A_ID 0x1007 /* Chipset ID */
55#define SIO_F71882_ID 0x0541 /* Chipset ID */ 56#define SIO_F71882_ID 0x0541 /* Chipset ID */
56#define SIO_F71889_ID 0x0723 /* Chipset ID */ 57#define SIO_F71889_ID 0x0723 /* Chipset ID */
57#define SIO_F71889E_ID 0x0909 /* Chipset ID */ 58#define SIO_F71889E_ID 0x0909 /* Chipset ID */
@@ -108,8 +109,8 @@ static unsigned short force_id;
108module_param(force_id, ushort, 0); 109module_param(force_id, ushort, 0);
109MODULE_PARM_DESC(force_id, "Override the detected device ID"); 110MODULE_PARM_DESC(force_id, "Override the detected device ID");
110 111
111enum chips { f71808e, f71808a, f71858fg, f71862fg, f71869, f71882fg, f71889fg, 112enum chips { f71808e, f71808a, f71858fg, f71862fg, f71869, f71869a, f71882fg,
112 f71889ed, f71889a, f8000, f81865f }; 113 f71889fg, f71889ed, f71889a, f8000, f81865f };
113 114
114static const char *f71882fg_names[] = { 115static const char *f71882fg_names[] = {
115 "f71808e", 116 "f71808e",
@@ -117,6 +118,7 @@ static const char *f71882fg_names[] = {
117 "f71858fg", 118 "f71858fg",
118 "f71862fg", 119 "f71862fg",
119 "f71869", /* Both f71869f and f71869e, reg. compatible and same id */ 120 "f71869", /* Both f71869f and f71869e, reg. compatible and same id */
121 "f71869a",
120 "f71882fg", 122 "f71882fg",
121 "f71889fg", /* f81801u too, same id */ 123 "f71889fg", /* f81801u too, same id */
122 "f71889ed", 124 "f71889ed",
@@ -131,6 +133,7 @@ static const char f71882fg_has_in[][F71882FG_MAX_INS] = {
131 [f71858fg] = { 1, 1, 1, 0, 0, 0, 0, 0, 0 }, 133 [f71858fg] = { 1, 1, 1, 0, 0, 0, 0, 0, 0 },
132 [f71862fg] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 }, 134 [f71862fg] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 },
133 [f71869] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 }, 135 [f71869] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 },
136 [f71869a] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 },
134 [f71882fg] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 }, 137 [f71882fg] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 },
135 [f71889fg] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 }, 138 [f71889fg] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 },
136 [f71889ed] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 }, 139 [f71889ed] = { 1, 1, 1, 1, 1, 1, 1, 1, 1 },
@@ -145,6 +148,7 @@ static const char f71882fg_has_in1_alarm[] = {
145 [f71858fg] = 0, 148 [f71858fg] = 0,
146 [f71862fg] = 0, 149 [f71862fg] = 0,
147 [f71869] = 0, 150 [f71869] = 0,
151 [f71869a] = 0,
148 [f71882fg] = 1, 152 [f71882fg] = 1,
149 [f71889fg] = 1, 153 [f71889fg] = 1,
150 [f71889ed] = 1, 154 [f71889ed] = 1,
@@ -159,6 +163,7 @@ static const char f71882fg_fan_has_beep[] = {
159 [f71858fg] = 0, 163 [f71858fg] = 0,
160 [f71862fg] = 1, 164 [f71862fg] = 1,
161 [f71869] = 1, 165 [f71869] = 1,
166 [f71869a] = 1,
162 [f71882fg] = 1, 167 [f71882fg] = 1,
163 [f71889fg] = 1, 168 [f71889fg] = 1,
164 [f71889ed] = 1, 169 [f71889ed] = 1,
@@ -173,6 +178,7 @@ static const char f71882fg_nr_fans[] = {
173 [f71858fg] = 3, 178 [f71858fg] = 3,
174 [f71862fg] = 3, 179 [f71862fg] = 3,
175 [f71869] = 3, 180 [f71869] = 3,
181 [f71869a] = 3,
176 [f71882fg] = 4, 182 [f71882fg] = 4,
177 [f71889fg] = 3, 183 [f71889fg] = 3,
178 [f71889ed] = 3, 184 [f71889ed] = 3,
@@ -187,6 +193,7 @@ static const char f71882fg_temp_has_beep[] = {
187 [f71858fg] = 0, 193 [f71858fg] = 0,
188 [f71862fg] = 1, 194 [f71862fg] = 1,
189 [f71869] = 1, 195 [f71869] = 1,
196 [f71869a] = 1,
190 [f71882fg] = 1, 197 [f71882fg] = 1,
191 [f71889fg] = 1, 198 [f71889fg] = 1,
192 [f71889ed] = 1, 199 [f71889ed] = 1,
@@ -201,6 +208,7 @@ static const char f71882fg_nr_temps[] = {
201 [f71858fg] = 3, 208 [f71858fg] = 3,
202 [f71862fg] = 3, 209 [f71862fg] = 3,
203 [f71869] = 3, 210 [f71869] = 3,
211 [f71869a] = 3,
204 [f71882fg] = 3, 212 [f71882fg] = 3,
205 [f71889fg] = 3, 213 [f71889fg] = 3,
206 [f71889ed] = 3, 214 [f71889ed] = 3,
@@ -2243,6 +2251,7 @@ static int __devinit f71882fg_probe(struct platform_device *pdev)
2243 case f71808e: 2251 case f71808e:
2244 case f71808a: 2252 case f71808a:
2245 case f71869: 2253 case f71869:
2254 case f71869a:
2246 /* These always have signed auto point temps */ 2255 /* These always have signed auto point temps */
2247 data->auto_point_temp_signed = 1; 2256 data->auto_point_temp_signed = 1;
2248 /* Fall through to select correct fan/pwm reg bank! */ 2257 /* Fall through to select correct fan/pwm reg bank! */
@@ -2305,6 +2314,7 @@ static int __devinit f71882fg_probe(struct platform_device *pdev)
2305 case f71808e: 2314 case f71808e:
2306 case f71808a: 2315 case f71808a:
2307 case f71869: 2316 case f71869:
2317 case f71869a:
2308 case f71889fg: 2318 case f71889fg:
2309 case f71889ed: 2319 case f71889ed:
2310 case f71889a: 2320 case f71889a:
@@ -2528,6 +2538,9 @@ static int __init f71882fg_find(int sioaddr, unsigned short *address,
2528 case SIO_F71869_ID: 2538 case SIO_F71869_ID:
2529 sio_data->type = f71869; 2539 sio_data->type = f71869;
2530 break; 2540 break;
2541 case SIO_F71869A_ID:
2542 sio_data->type = f71869a;
2543 break;
2531 case SIO_F71882_ID: 2544 case SIO_F71882_ID:
2532 sio_data->type = f71882fg; 2545 sio_data->type = f71882fg;
2533 break; 2546 break;