Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.13 158 lines 4.4 kB view raw
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 13November 23, 2004 14 15The following specification describes the SMSC LPC47B397-NC sensor chip 16(for which there is no public datasheet available). This document was 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 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 27HWM Base address can be obtained from Logical Device 8, registers 0x60 (MSB) 28and 0x61 (LSB). Currently we are using 0x480 for the HWM Base Address and 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. 65The tach reading (TCount) is given by: (Tach MSB * 256) + (Tach LSB) 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 87to the CONFIG PORT (0x2E). 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 93The desired configuration registers are accessed in two steps: 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- 100 uration register through the DATA PORT. 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 111; ENTER CONFIGURATION MODE 112MOV DX,02EH 113MOV AX,055H 114OUT DX,AL 115; GLOBAL CONFIGURATION REGISTER 116MOV DX,02EH 117MOV AL,20H 118OUT DX,AL 119; READ THE DATA 120MOV DX,02FH 121IN AL,DX 122; EXIT CONFIGURATION MODE 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 137; ENTER CONFIGURATION MODE 138MOV DX,02EH 139MOV AX,055H 140OUT DX,AL 141; CONFIGURE REGISTER CRE0, 142; LOGICAL DEVICE 8 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; 150MOV DX,02EH 151MOV AL,60H 152OUT DX,AL ; Point to HWM Base Addr MSB 153MOV DX,02FH 154IN AL,DX ; Get MSB of HWM Base Addr 155; EXIT CONFIGURATION MODE 156MOV DX,02EH 157MOV AX,0AAH 158OUT DX,AL