xref: /OK3568_Linux_fs/kernel/Documentation/hwmon/w83627hf.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunKernel driver w83627hf
2*4882a593Smuzhiyun======================
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunSupported chips:
5*4882a593Smuzhiyun  * Winbond W83627HF (ISA accesses ONLY)
6*4882a593Smuzhiyun    Prefix: 'w83627hf'
7*4882a593Smuzhiyun    Addresses scanned: ISA address retrieved from Super I/O registers
8*4882a593Smuzhiyun  * Winbond W83627THF
9*4882a593Smuzhiyun    Prefix: 'w83627thf'
10*4882a593Smuzhiyun    Addresses scanned: ISA address retrieved from Super I/O registers
11*4882a593Smuzhiyun  * Winbond W83697HF
12*4882a593Smuzhiyun    Prefix: 'w83697hf'
13*4882a593Smuzhiyun    Addresses scanned: ISA address retrieved from Super I/O registers
14*4882a593Smuzhiyun  * Winbond W83637HF
15*4882a593Smuzhiyun    Prefix: 'w83637hf'
16*4882a593Smuzhiyun    Addresses scanned: ISA address retrieved from Super I/O registers
17*4882a593Smuzhiyun  * Winbond W83687THF
18*4882a593Smuzhiyun    Prefix: 'w83687thf'
19*4882a593Smuzhiyun    Addresses scanned: ISA address retrieved from Super I/O registers
20*4882a593Smuzhiyun    Datasheet: Provided by Winbond on request(http://www.winbond.com/hq/enu)
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunAuthors:
23*4882a593Smuzhiyun	Frodo Looijaard <frodol@dds.nl>,
24*4882a593Smuzhiyun	Philip Edelbrock <phil@netroedge.com>,
25*4882a593Smuzhiyun	Mark Studebaker <mdsxyz123@yahoo.com>,
26*4882a593Smuzhiyun	Bernhard C. Schrenk <clemy@clemy.org>
27*4882a593Smuzhiyun
28*4882a593SmuzhiyunModule Parameters
29*4882a593Smuzhiyun-----------------
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun* force_i2c: int
32*4882a593Smuzhiyun  Initialize the I2C address of the sensors
33*4882a593Smuzhiyun* init: int
34*4882a593Smuzhiyun  (default is 1)
35*4882a593Smuzhiyun  Use 'init=0' to bypass initializing the chip.
36*4882a593Smuzhiyun  Try this if your computer crashes when you load the module.
37*4882a593Smuzhiyun
38*4882a593SmuzhiyunDescription
39*4882a593Smuzhiyun-----------
40*4882a593Smuzhiyun
41*4882a593SmuzhiyunThis driver implements support for ISA accesses *only* for
42*4882a593Smuzhiyunthe Winbond W83627HF, W83627THF, W83697HF and W83637HF Super I/O chips.
43*4882a593SmuzhiyunWe will refer to them collectively as Winbond chips.
44*4882a593Smuzhiyun
45*4882a593SmuzhiyunThis driver supports ISA accesses, which should be more reliable
46*4882a593Smuzhiyunthan i2c accesses. Also, for Tyan boards which contain both a
47*4882a593SmuzhiyunSuper I/O chip and a second i2c-only Winbond chip (often a W83782D),
48*4882a593Smuzhiyunusing this driver will avoid i2c address conflicts and complex
49*4882a593Smuzhiyuninitialization that were required in the w83781d driver.
50*4882a593Smuzhiyun
51*4882a593SmuzhiyunIf you really want i2c accesses for these Super I/O chips,
52*4882a593Smuzhiyunuse the w83781d driver. However this is not the preferred method
53*4882a593Smuzhiyunnow that this ISA driver has been developed.
54*4882a593Smuzhiyun
55*4882a593SmuzhiyunThe `w83627_HF_` uses pins 110-106 as VID0-VID4. The `w83627_THF_` uses the
56*4882a593Smuzhiyunsame pins as GPIO[0:4]. Technically, the `w83627_THF_` does not support a
57*4882a593SmuzhiyunVID reading. However the two chips have the identical 128 pin package. So,
58*4882a593Smuzhiyunit is possible or even likely for a w83627thf to have the VID signals routed
59*4882a593Smuzhiyunto these pins despite their not being labeled for that purpose. Therefore,
60*4882a593Smuzhiyunthe w83627thf driver interprets these as VID. If the VID on your board
61*4882a593Smuzhiyundoesn't work, first see doc/vid in the lm_sensors package[1]. If that still
62*4882a593Smuzhiyundoesn't help, you may just ignore the bogus VID reading with no harm done.
63*4882a593Smuzhiyun
64*4882a593SmuzhiyunFor further information on this driver see the w83781d driver documentation.
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun[1] http://www.lm-sensors.org/browser/lm-sensors/trunk/doc/vid
67*4882a593Smuzhiyun
68*4882a593SmuzhiyunForcing the address
69*4882a593Smuzhiyun-------------------
70*4882a593Smuzhiyun
71*4882a593SmuzhiyunThe driver used to have a module parameter named force_addr, which could
72*4882a593Smuzhiyunbe used to force the base I/O address of the hardware monitoring block.
73*4882a593SmuzhiyunThis was meant as a workaround for mainboards with a broken BIOS. This
74*4882a593Smuzhiyunmodule parameter is gone for technical reasons. If you need this feature,
75*4882a593Smuzhiyunyou can obtain the same result by using the isaset tool (part of
76*4882a593Smuzhiyunlm-sensors) before loading the driver:
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun# Enter the Super I/O config space::
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun	isaset -y -f 0x2e 0x87
81*4882a593Smuzhiyun	isaset -y -f 0x2e 0x87
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun# Select the hwmon logical device::
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun	isaset -y 0x2e 0x2f 0x07 0x0b
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun# Set the base I/O address (to 0x290 in this example)::
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun	isaset -y 0x2e 0x2f 0x60 0x02
90*4882a593Smuzhiyun	isaset -y 0x2e 0x2f 0x61 0x90
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun# Exit the Super-I/O config space::
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun	isaset -y -f 0x2e 0xaa
95*4882a593Smuzhiyun
96*4882a593SmuzhiyunThe above sequence assumes a Super-I/O config space at 0x2e/0x2f, but
97*4882a593Smuzhiyun0x4e/0x4f is also possible.
98*4882a593Smuzhiyun
99*4882a593SmuzhiyunVoltage pin mapping
100*4882a593Smuzhiyun-------------------
101*4882a593Smuzhiyun
102*4882a593SmuzhiyunHere is a summary of the voltage pin mapping for the W83627THF. This
103*4882a593Smuzhiyuncan be useful to convert data provided by board manufacturers into
104*4882a593Smuzhiyunworking libsensors configuration statements:
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun- W83627THF
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun
110*4882a593Smuzhiyun  ======== =============== =============== ===============
111*4882a593Smuzhiyun  Pin	   Name		   Register	   Sysfs attribute
112*4882a593Smuzhiyun  ======== =============== =============== ===============
113*4882a593Smuzhiyun    100	   CPUVCORE	   20h		   in0
114*4882a593Smuzhiyun     99	   VIN0		   21h		   in1
115*4882a593Smuzhiyun     98	   VIN1		   22h		   in2
116*4882a593Smuzhiyun     97	   VIN2		   24h		   in4
117*4882a593Smuzhiyun    114	   AVCC		   23h		   in3
118*4882a593Smuzhiyun     61	   5VSB		   50h (bank 5)	   in7
119*4882a593Smuzhiyun     74	   VBAT		   51h (bank 5)	   in8
120*4882a593Smuzhiyun  ======== =============== =============== ===============
121*4882a593Smuzhiyun
122*4882a593SmuzhiyunFor other supported devices, you'll have to take the hard path and
123*4882a593Smuzhiyunlook up the information in the datasheet yourself (and then add it
124*4882a593Smuzhiyunto this document please.)
125