|
37 | 37 | #define SIO_F71869A_ID 0x1007 /* F71869A chipset ID */
|
38 | 38 | #define SIO_F71882_ID 0x0541 /* F71882 chipset ID */
|
39 | 39 | #define SIO_F71889_ID 0x0909 /* F71889 chipset ID */
|
| 40 | +#define SIO_F71889A_ID 0x1005 /* F71889A chipset ID */ |
40 | 41 | #define SIO_F81866_ID 0x1010 /* F81866 chipset ID */
|
41 | 42 |
|
42 |
| -enum chips { f71869, f71869a, f71882fg, f71889f, f81866 }; |
| 43 | +enum chips { f71869, f71869a, f71882fg, f71889a, f71889f, f81866 }; |
43 | 44 |
|
44 | 45 | static const char * const f7188x_names[] = {
|
45 | 46 | "f71869",
|
46 | 47 | "f71869a",
|
47 | 48 | "f71882fg",
|
| 49 | + "f71889a", |
48 | 50 | "f71889f",
|
49 | 51 | "f81866",
|
50 | 52 | };
|
@@ -187,6 +189,17 @@ static struct f7188x_gpio_bank f71882_gpio_bank[] = {
|
187 | 189 | F7188X_GPIO_BANK(40, 4, 0xB0),
|
188 | 190 | };
|
189 | 191 |
|
| 192 | +static struct f7188x_gpio_bank f71889a_gpio_bank[] = { |
| 193 | + F7188X_GPIO_BANK(0, 7, 0xF0), |
| 194 | + F7188X_GPIO_BANK(10, 7, 0xE0), |
| 195 | + F7188X_GPIO_BANK(20, 8, 0xD0), |
| 196 | + F7188X_GPIO_BANK(30, 8, 0xC0), |
| 197 | + F7188X_GPIO_BANK(40, 8, 0xB0), |
| 198 | + F7188X_GPIO_BANK(50, 5, 0xA0), |
| 199 | + F7188X_GPIO_BANK(60, 8, 0x90), |
| 200 | + F7188X_GPIO_BANK(70, 8, 0x80), |
| 201 | +}; |
| 202 | + |
190 | 203 | static struct f7188x_gpio_bank f71889_gpio_bank[] = {
|
191 | 204 | F7188X_GPIO_BANK(0, 7, 0xF0),
|
192 | 205 | F7188X_GPIO_BANK(10, 7, 0xE0),
|
@@ -382,6 +395,9 @@ static int f7188x_gpio_probe(struct platform_device *pdev)
|
382 | 395 | data->nr_bank = ARRAY_SIZE(f71882_gpio_bank);
|
383 | 396 | data->bank = f71882_gpio_bank;
|
384 | 397 | break;
|
| 398 | + case f71889a: |
| 399 | + data->nr_bank = ARRAY_SIZE(f71889a_gpio_bank); |
| 400 | + data->bank = f71889a_gpio_bank; |
385 | 401 | case f71889f:
|
386 | 402 | data->nr_bank = ARRAY_SIZE(f71889_gpio_bank);
|
387 | 403 | data->bank = f71889_gpio_bank;
|
@@ -443,6 +459,9 @@ static int __init f7188x_find(int addr, struct f7188x_sio *sio)
|
443 | 459 | case SIO_F71882_ID:
|
444 | 460 | sio->type = f71882fg;
|
445 | 461 | break;
|
| 462 | + case SIO_F71889A_ID: |
| 463 | + sio->type = f71889a; |
| 464 | + break; |
446 | 465 | case SIO_F71889_ID:
|
447 | 466 | sio->type = f71889f;
|
448 | 467 | break;
|
@@ -538,6 +557,6 @@ static void __exit f7188x_gpio_exit(void)
|
538 | 557 | }
|
539 | 558 | module_exit(f7188x_gpio_exit);
|
540 | 559 |
|
541 |
| -MODULE_DESCRIPTION("GPIO driver for Super-I/O chips F71869, F71869A, F71882FG, F71889F and F81866"); |
| 560 | +MODULE_DESCRIPTION("GPIO driver for Super-I/O chips F71869, F71869A, F71882FG, F71889A, F71889F and F81866"); |
542 | 561 | MODULE_AUTHOR("Simon Guinot <simon.guinot@sequanux.org>");
|
543 | 562 | MODULE_LICENSE("GPL");
|
0 commit comments