November 23, 2004

The following specification describes the SMSC LPC47B397-NC sensor chip
(for which there is no public datasheet available).  This document was
provided by Craig Kelly (In-Store Broadcast Network) and edited/corrected
by Mark M. Hoffman <mhoffman@lightlink.com>.

* * * * *

Methods for detecting the HP SIO and reading the thermal data on a dc7100.

The thermal information on the dc7100 is contained in the SIO Hardware Monitor
(HWM).  The information is accessed through an index/data pair.  The index/data
pair is located at the HWM Base Address + 0 and the HWM Base Address + 1.  The
HWM Base address can be obtained from Logical Device 8, registers 0x60 (MSB)
and 0x61 (LSB).  Currently we are using 0x480 for the HWM Base Address and
0x480 and 0x481 for the index/data pair.

Reading temperature information.
The temperature information is located in the following registers:
Temp1		0x25	(Currently, this reflects the CPU temp on all systems).
Temp2		0x26
Temp3		0x27
Temp4		0x80

Programming Example
The following is an example of how to read the HWM temperature registers:
MOV	DX,480H
MOV	AX,25H
OUT	DX,AL
MOV	DX,481H
IN	AL,DX

AL contains the data in hex, the temperature in Celsius is the decimal
equivalent.

Ex: If AL contains 0x2A, the temperature is 42 degrees C.

Reading tach information.
The fan speed information is located in the following registers:
		LSB	MSB
Tach1		0x28	0x29	(Currently, this reflects the CPU
				fan speed on all systems).
Tach2		0x2A	0x2B
Tach3		0x2C	0x2D
Tach4		0x2E	0x2F

Important!!!
Reading the tach LSB locks the tach MSB.
The LSB Must be read first.

How to convert the tach reading to RPM.
The tach reading (TCount) is given by:  (Tach MSB * 256) + (Tach LSB)
The SIO counts the number of 90kHz (11.111us) pulses per revolution.
RPM = 60/(TCount * 11.111us)

Example:
Reg 0x28 = 0x9B
Reg 0x29 = 0x08

TCount = 0x89B = 2203

RPM = 60 / (2203 * 11.11111 E-6) = 2451 RPM

Obtaining the SIO version.

CONFIGURATION SEQUENCE
To program the configuration registers, the following sequence must be followed:
1. Enter Configuration Mode
2. Configure the Configuration Registers
3. Exit Configuration Mode.

Enter Configuration Mode
To place the chip into the Configuration State The config key (0x55) is written
to the CONFIG PORT (0x2E). 

Configuration Mode
In configuration mode, the INDEX PORT is located at the CONFIG PORT address and
the DATA PORT is at INDEX PORT address + 1.

The desired configuration registers are accessed in two steps: 
a.	Write the index of the Logical Device Number Configuration Register
	(i.e., 0x07) to the INDEX PORT and then write the number of the
	desired logical device to the DATA PORT.

b.	Write the address of the desired configuration register within the
	logical device to the INDEX PORT and then write or read the config-
	uration register through the DATA PORT.  

Note: If accessing the Global Configuration Registers, step (a) is not required.

Exit Configuration Mode
To exit the Configuration State the write 0xAA to the CONFIG PORT (0x2E).
The chip returns to the RUN State.  (This is important).

Programming Example
The following is an example of how to read the SIO Device ID located at 0x20

; ENTER CONFIGURATION MODE   
MOV	DX,02EH
MOV	AX,055H
OUT	DX,AL
; GLOBAL CONFIGURATION  REGISTER 
MOV	DX,02EH
MOV	AL,20H
OUT	DX,AL 
; READ THE DATA
MOV	DX,02FH
IN	AL,DX
; EXIT CONFIGURATION MODE     
MOV	DX,02EH
MOV	AX,0AAH
OUT	DX,AL

The registers of interest for identifying the SIO on the dc7100 are Device ID
(0x20) and Device Rev  (0x21).

The Device ID will read 0X6F
The Device Rev currently reads 0x01

Obtaining the HWM Base Address.
The following is an example of how to read the HWM Base Address located in
Logical Device 8.

; ENTER CONFIGURATION MODE   
MOV	DX,02EH
MOV	AX,055H
OUT	DX,AL
; CONFIGURE REGISTER CRE0,   
; LOGICAL DEVICE 8           
MOV	DX,02EH
MOV	AL,07H
OUT	DX,AL ;Point to LD# Config Reg
MOV	DX,02FH
MOV	AL, 08H
OUT	DX,AL;Point to Logical Device 8
;
MOV	DX,02EH 
MOV	AL,60H
OUT	DX,AL	; Point to HWM Base Addr MSB
MOV	DX,02FH
IN	AL,DX	; Get MSB of HWM Base Addr
; EXIT CONFIGURATION MODE     
MOV	DX,02EH
MOV	AX,0AAH
OUT	DX,AL
