aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2009-06-15 12:39:50 -0400
committerJean Delvare <khali@linux-fr.org>2009-06-15 12:39:50 -0400
commitc1e48dce05ff06266cdfd0cba55fc5367cd499a5 (patch)
treec46ba5f97e6079bc9c897b50a40e640f88951386
parentcd4e96c5dd4a72bdc54ea9981e02465708c204d3 (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/w83627ehf11
-rw-r--r--drivers/hwmon/w83627ehf.c10
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
30This driver implements support for the Winbond W83627EHF, W83627EHG, 34This driver implements support for the Winbond W83627EHF, W83627EHG,
31W83627DHG and W83667HG super I/O chips. We will refer to them collectively 35W83627DHG, W83627DHG-P and W83667HG super I/O chips. We will refer to them
32as Winbond chips. 36collectively as Winbond chips.
33 37
34The chips implement three temperature sensors, five fan rotation 38The chips implement three temperature sensors, five fan rotation
35speed sensors, ten analog voltage sensors (only nine for the 627DHG), one 39speed sensors, ten analog voltage sensors (only nine for the 627DHG), one
@@ -135,3 +139,6 @@ done in the driver for all register addresses.
135The DHG also supports PECI, where the DHG queries Intel CPU temperatures, and 139The DHG also supports PECI, where the DHG queries Intel CPU temperatures, and
136the ICH8 southbridge gets that data via PECI from the DHG, so that the 140the ICH8 southbridge gets that data via PECI from the DHG, so that the
137southbridge drives the fans. And the DHG supports SST, a one-wire serial bus. 141southbridge drives the fans. And the DHG supports SST, a one-wire serial bus.
142
143The 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
56enum kinds { w83627ehf, w83627dhg, w83667hg }; 57enum 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] */
59static const char * w83627ehf_device_names[] = { 60static 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;