]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - Documentation/hwmon/smsc47b397
[DCCP]: Use skb_set_owner_w in dccp_transmit_skb when skb->sk is NULL
[mirror_ubuntu-artful-kernel.git] / Documentation / hwmon / smsc47b397
CommitLineData
7f15b664
RM
1Kernel driver smsc47b397
2========================
3
4Supported chips:
5 * SMSC LPC47B397-NC
6 Prefix: 'smsc47b397'
7 Addresses scanned: none, address read from Super I/O config space
8 Datasheet: In this file
9
10Authors: Mark M. Hoffman <mhoffman@lightlink.com>
11 Utilitek Systems, Inc.
12
1da177e4
LT
13November 23, 2004
14
15The following specification describes the SMSC LPC47B397-NC sensor chip
7f15b664 16(for which there is no public datasheet available). This document was
1da177e4
LT
17provided by Craig Kelly (In-Store Broadcast Network) and edited/corrected
18by Mark M. Hoffman <mhoffman@lightlink.com>.
19
20* * * * *
21
22Methods for detecting the HP SIO and reading the thermal data on a dc7100.
23
24The thermal information on the dc7100 is contained in the SIO Hardware Monitor
7f15b664
RM
25(HWM). The information is accessed through an index/data pair. The index/data
26pair is located at the HWM Base Address + 0 and the HWM Base Address + 1. The
1da177e4 27HWM Base address can be obtained from Logical Device 8, registers 0x60 (MSB)
7f15b664 28and 0x61 (LSB). Currently we are using 0x480 for the HWM Base Address and
1da177e4
LT
290x480 and 0x481 for the index/data pair.
30
31Reading temperature information.
32The temperature information is located in the following registers:
33Temp1 0x25 (Currently, this reflects the CPU temp on all systems).
34Temp2 0x26
35Temp3 0x27
36Temp4 0x80
37
38Programming Example
39The following is an example of how to read the HWM temperature registers:
40MOV DX,480H
41MOV AX,25H
42OUT DX,AL
43MOV DX,481H
44IN AL,DX
45
46AL contains the data in hex, the temperature in Celsius is the decimal
47equivalent.
48
49Ex: If AL contains 0x2A, the temperature is 42 degrees C.
50
51Reading tach information.
52The fan speed information is located in the following registers:
53 LSB MSB
54Tach1 0x28 0x29 (Currently, this reflects the CPU
55 fan speed on all systems).
56Tach2 0x2A 0x2B
57Tach3 0x2C 0x2D
58Tach4 0x2E 0x2F
59
60Important!!!
61Reading the tach LSB locks the tach MSB.
62The LSB Must be read first.
63
64How to convert the tach reading to RPM.
7f15b664 65The tach reading (TCount) is given by: (Tach MSB * 256) + (Tach LSB)
1da177e4
LT
66The SIO counts the number of 90kHz (11.111us) pulses per revolution.
67RPM = 60/(TCount * 11.111us)
68
69Example:
70Reg 0x28 = 0x9B
71Reg 0x29 = 0x08
72
73TCount = 0x89B = 2203
74
75RPM = 60 / (2203 * 11.11111 E-6) = 2451 RPM
76
77Obtaining the SIO version.
78
79CONFIGURATION SEQUENCE
80To program the configuration registers, the following sequence must be followed:
811. Enter Configuration Mode
822. Configure the Configuration Registers
833. Exit Configuration Mode.
84
85Enter Configuration Mode
86To place the chip into the Configuration State The config key (0x55) is written
2bf34a1c 87to the CONFIG PORT (0x2E).
1da177e4
LT
88
89Configuration Mode
90In configuration mode, the INDEX PORT is located at the CONFIG PORT address and
91the DATA PORT is at INDEX PORT address + 1.
92
2bf34a1c 93The desired configuration registers are accessed in two steps:
1da177e4
LT
94a. Write the index of the Logical Device Number Configuration Register
95 (i.e., 0x07) to the INDEX PORT and then write the number of the
96 desired logical device to the DATA PORT.
97
98b. Write the address of the desired configuration register within the
99 logical device to the INDEX PORT and then write or read the config-
2bf34a1c 100 uration register through the DATA PORT.
1da177e4
LT
101
102Note: If accessing the Global Configuration Registers, step (a) is not required.
103
104Exit Configuration Mode
105To exit the Configuration State the write 0xAA to the CONFIG PORT (0x2E).
106The chip returns to the RUN State. (This is important).
107
108Programming Example
109The following is an example of how to read the SIO Device ID located at 0x20
110
2bf34a1c 111; ENTER CONFIGURATION MODE
1da177e4
LT
112MOV DX,02EH
113MOV AX,055H
114OUT DX,AL
2bf34a1c 115; GLOBAL CONFIGURATION REGISTER
1da177e4
LT
116MOV DX,02EH
117MOV AL,20H
2bf34a1c 118OUT DX,AL
1da177e4
LT
119; READ THE DATA
120MOV DX,02FH
121IN AL,DX
2bf34a1c 122; EXIT CONFIGURATION MODE
1da177e4
LT
123MOV DX,02EH
124MOV AX,0AAH
125OUT DX,AL
126
127The registers of interest for identifying the SIO on the dc7100 are Device ID
128(0x20) and Device Rev (0x21).
129
130The Device ID will read 0X6F
131The Device Rev currently reads 0x01
132
133Obtaining the HWM Base Address.
134The following is an example of how to read the HWM Base Address located in
135Logical Device 8.
136
2bf34a1c 137; ENTER CONFIGURATION MODE
1da177e4
LT
138MOV DX,02EH
139MOV AX,055H
140OUT DX,AL
2bf34a1c
RM
141; CONFIGURE REGISTER CRE0,
142; LOGICAL DEVICE 8
1da177e4
LT
143MOV DX,02EH
144MOV AL,07H
145OUT DX,AL ;Point to LD# Config Reg
146MOV DX,02FH
147MOV AL, 08H
148OUT DX,AL;Point to Logical Device 8
149;
2bf34a1c 150MOV DX,02EH
1da177e4
LT
151MOV AL,60H
152OUT DX,AL ; Point to HWM Base Addr MSB
153MOV DX,02FH
154IN AL,DX ; Get MSB of HWM Base Addr
2bf34a1c 155; EXIT CONFIGURATION MODE
1da177e4
LT
156MOV DX,02EH
157MOV AX,0AAH
158OUT DX,AL