diff options
| author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 15:20:36 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 15:20:36 -0700 | 
| commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
| tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /Documentation/i2c/chips | |
Linux-2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'Documentation/i2c/chips')
| -rw-r--r-- | Documentation/i2c/chips/smsc47b397.txt | 146 | 
1 files changed, 146 insertions, 0 deletions
| diff --git a/Documentation/i2c/chips/smsc47b397.txt b/Documentation/i2c/chips/smsc47b397.txt new file mode 100644 index 000000000000..389edae7f8df --- /dev/null +++ b/Documentation/i2c/chips/smsc47b397.txt @@ -0,0 +1,146 @@ +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 | 
