diff options
author | Jean Delvare <khali@linux-fr.org> | 2009-06-15 12:39:50 -0400 |
---|---|---|
committer | Jean Delvare <khali@linux-fr.org> | 2009-06-15 12:39:50 -0400 |
commit | c1e48dce05ff06266cdfd0cba55fc5367cd499a5 (patch) | |
tree | c46ba5f97e6079bc9c897b50a40e640f88951386 | |
parent | cd4e96c5dd4a72bdc54ea9981e02465708c204d3 (diff) |
hwmon: (w83627ehf) Add W83627DHG-P support
Add support for the new incarnation of the Winbond/Nuvoton W83627DHG
chip known as W83627DHG-P. It is basically the same as the original
W83627DHG with an additional automatic can speed control mode (not
supported by the driver yet.)
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Tested-by: Madhu <madhu.chinakonda@gmail.com>
-rw-r--r-- | Documentation/hwmon/w83627ehf | 11 | ||||
-rw-r--r-- | drivers/hwmon/w83627ehf.c | 10 |
2 files changed, 18 insertions, 3 deletions
diff --git a/Documentation/hwmon/w83627ehf b/Documentation/hwmon/w83627ehf index b6eb59384bb3..02b74899edaf 100644 --- a/Documentation/hwmon/w83627ehf +++ b/Documentation/hwmon/w83627ehf | |||
@@ -12,6 +12,10 @@ Supported chips: | |||
12 | Addresses scanned: ISA address retrieved from Super I/O registers | 12 | Addresses scanned: ISA address retrieved from Super I/O registers |
13 | Datasheet: | 13 | Datasheet: |
14 | http://www.nuvoton.com.tw/NR/rdonlyres/7885623D-A487-4CF9-A47F-30C5F73D6FE6/0/W83627DHG.pdf | 14 | http://www.nuvoton.com.tw/NR/rdonlyres/7885623D-A487-4CF9-A47F-30C5F73D6FE6/0/W83627DHG.pdf |
15 | * Winbond W83627DHG-P | ||
16 | Prefix: 'w83627dhg' | ||
17 | Addresses scanned: ISA address retrieved from Super I/O registers | ||
18 | Datasheet: not available | ||
15 | * Winbond W83667HG | 19 | * Winbond W83667HG |
16 | Prefix: 'w83667hg' | 20 | Prefix: 'w83667hg' |
17 | Addresses scanned: ISA address retrieved from Super I/O registers | 21 | Addresses scanned: ISA address retrieved from Super I/O registers |
@@ -28,8 +32,8 @@ Description | |||
28 | ----------- | 32 | ----------- |
29 | 33 | ||
30 | This driver implements support for the Winbond W83627EHF, W83627EHG, | 34 | This driver implements support for the Winbond W83627EHF, W83627EHG, |
31 | W83627DHG and W83667HG super I/O chips. We will refer to them collectively | 35 | W83627DHG, W83627DHG-P and W83667HG super I/O chips. We will refer to them |
32 | as Winbond chips. | 36 | collectively as Winbond chips. |
33 | 37 | ||
34 | The chips implement three temperature sensors, five fan rotation | 38 | The chips implement three temperature sensors, five fan rotation |
35 | speed sensors, ten analog voltage sensors (only nine for the 627DHG), one | 39 | speed sensors, ten analog voltage sensors (only nine for the 627DHG), one |
@@ -135,3 +139,6 @@ done in the driver for all register addresses. | |||
135 | The DHG also supports PECI, where the DHG queries Intel CPU temperatures, and | 139 | The DHG also supports PECI, where the DHG queries Intel CPU temperatures, and |
136 | the ICH8 southbridge gets that data via PECI from the DHG, so that the | 140 | the ICH8 southbridge gets that data via PECI from the DHG, so that the |
137 | southbridge drives the fans. And the DHG supports SST, a one-wire serial bus. | 141 | southbridge drives the fans. And the DHG supports SST, a one-wire serial bus. |
142 | |||
143 | The DHG-P has an additional automatic fan speed control mode named Smart Fan | ||
144 | (TM) III+. This mode is not yet supported by the driver. | ||
diff --git a/drivers/hwmon/w83627ehf.c b/drivers/hwmon/w83627ehf.c index e64b42058b21..0e9746913d2b 100644 --- a/drivers/hwmon/w83627ehf.c +++ b/drivers/hwmon/w83627ehf.c | |||
@@ -36,6 +36,7 @@ | |||
36 | w83627ehf 10 5 4 3 0x8850 0x88 0x5ca3 | 36 | w83627ehf 10 5 4 3 0x8850 0x88 0x5ca3 |
37 | 0x8860 0xa1 | 37 | 0x8860 0xa1 |
38 | w83627dhg 9 5 4 3 0xa020 0xc1 0x5ca3 | 38 | w83627dhg 9 5 4 3 0xa020 0xc1 0x5ca3 |
39 | w83627dhg-p 9 5 4 3 0xb070 0xc1 0x5ca3 | ||
39 | w83667hg 9 5 3 3 0xa510 0xc1 0x5ca3 | 40 | w83667hg 9 5 3 3 0xa510 0xc1 0x5ca3 |
40 | */ | 41 | */ |
41 | 42 | ||
@@ -53,12 +54,13 @@ | |||
53 | #include <asm/io.h> | 54 | #include <asm/io.h> |
54 | #include "lm75.h" | 55 | #include "lm75.h" |
55 | 56 | ||
56 | enum kinds { w83627ehf, w83627dhg, w83667hg }; | 57 | enum kinds { w83627ehf, w83627dhg, w83627dhg_p, w83667hg }; |
57 | 58 | ||
58 | /* used to set data->name = w83627ehf_device_names[data->sio_kind] */ | 59 | /* used to set data->name = w83627ehf_device_names[data->sio_kind] */ |
59 | static const char * w83627ehf_device_names[] = { | 60 | static const char * w83627ehf_device_names[] = { |
60 | "w83627ehf", | 61 | "w83627ehf", |
61 | "w83627dhg", | 62 | "w83627dhg", |
63 | "w83627dhg", | ||
62 | "w83667hg", | 64 | "w83667hg", |
63 | }; | 65 | }; |
64 | 66 | ||
@@ -86,6 +88,7 @@ MODULE_PARM_DESC(force_id, "Override the detected device ID"); | |||
86 | #define SIO_W83627EHF_ID 0x8850 | 88 | #define SIO_W83627EHF_ID 0x8850 |
87 | #define SIO_W83627EHG_ID 0x8860 | 89 | #define SIO_W83627EHG_ID 0x8860 |
88 | #define SIO_W83627DHG_ID 0xa020 | 90 | #define SIO_W83627DHG_ID 0xa020 |
91 | #define SIO_W83627DHG_P_ID 0xb070 | ||
89 | #define SIO_W83667HG_ID 0xa510 | 92 | #define SIO_W83667HG_ID 0xa510 |
90 | #define SIO_ID_MASK 0xFFF0 | 93 | #define SIO_ID_MASK 0xFFF0 |
91 | 94 | ||
@@ -1517,6 +1520,7 @@ static int __init w83627ehf_find(int sioaddr, unsigned short *addr, | |||
1517 | static const char __initdata sio_name_W83627EHF[] = "W83627EHF"; | 1520 | static const char __initdata sio_name_W83627EHF[] = "W83627EHF"; |
1518 | static const char __initdata sio_name_W83627EHG[] = "W83627EHG"; | 1521 | static const char __initdata sio_name_W83627EHG[] = "W83627EHG"; |
1519 | static const char __initdata sio_name_W83627DHG[] = "W83627DHG"; | 1522 | static const char __initdata sio_name_W83627DHG[] = "W83627DHG"; |
1523 | static const char __initdata sio_name_W83627DHG_P[] = "W83627DHG-P"; | ||
1520 | static const char __initdata sio_name_W83667HG[] = "W83667HG"; | 1524 | static const char __initdata sio_name_W83667HG[] = "W83667HG"; |
1521 | 1525 | ||
1522 | u16 val; | 1526 | u16 val; |
@@ -1542,6 +1546,10 @@ static int __init w83627ehf_find(int sioaddr, unsigned short *addr, | |||
1542 | sio_data->kind = w83627dhg; | 1546 | sio_data->kind = w83627dhg; |
1543 | sio_name = sio_name_W83627DHG; | 1547 | sio_name = sio_name_W83627DHG; |
1544 | break; | 1548 | break; |
1549 | case SIO_W83627DHG_P_ID: | ||
1550 | sio_data->kind = w83627dhg_p; | ||
1551 | sio_name = sio_name_W83627DHG_P; | ||
1552 | break; | ||
1545 | case SIO_W83667HG_ID: | 1553 | case SIO_W83667HG_ID: |
1546 | sio_data->kind = w83667hg; | 1554 | sio_data->kind = w83667hg; |
1547 | sio_name = sio_name_W83667HG; | 1555 | sio_name = sio_name_W83667HG; |