Kernel driver `thmc50.o'
=====================

Status: Complete and some-what tested

Supported chips: 
  * Analog Devices ADM1022
    Prefix: 'adm1022'
    Addresses scanned: I2C 0x2D - 0x2F
    Datasheet: Publicly available at the Analog Devices website
  * Texas Instruments THMC50
    Prefix: 'thmc50'
    Addresses scanned: I2C 0x2D - 0x2F
    Datasheet: Publicly available at the Texas Instruments' website

Authors: Frodo Looijaard <frodol@dds.nl> and 
         Philip Edelbrock <phil@netroedge.com>


Module Parameters
-----------------

* force: short array (min = 1, max = 48)
  List of adapter,address pairs to boldly assume to be present
* force_thmc50: short array (min = 1, max = 48)
  List of adapter,address pairs which are unquestionably assumed to contain
  a `thmc50' chip
* ignore: short array (min = 1, max = 48)
  List of adapter,address pairs not to scan
* ignore_range: short array (min = 1, max = 48)
  List of adapter,start-addr,end-addr triples not to scan
* probe: short array (min = 1, max = 48)
  List of adapter,address pairs to scan additionally
* probe_range: short array (min = 1, max = 48)
  List of adapter,start-addr,end-addr triples to scan additionally


Description
-----------

The THMC50 implements: an internal temperature sensor, support for an
external diode-type temperature sensor (compatible w/ the diode sensor inside
many processors), and a controllable fan/analog_out DAC. For the temperature
sensors, limits can be set through the appropriate Overtemperature Shutdown 
register and Hysteresis register. Each value can be set and read to half-degree 
accuracy.  An alarm is issued (usually to a connected LM78) when the 
temperature gets higher then the Overtemperature Shutdown value; it stays on 
until the temperature falls below the Hysteresis value. All temperatures are in 
degrees Celsius, and are guaranteed within a range of -55 to +125 degrees.

The THMC50 only updates its values each 1.5 seconds; reading it more often
will do no harm, but will return 'old' values.

The THMC50 is usually used in combination with LM78-like chips, to measure
the temperature of the processor(s).


Driver Features
---------------

These are the files which are provided by the driver (ro=read-only, 
rw=read and writeable):

temp1 (internal) -- 	Three fields: [temp-os,rw] [temp-hyst,rw] [temp,ro]
temp2 (remote)   -- 	Three fields: [temp-os,rw] [temp-hyst,rw] [temp,ro]

temp-os, temp-hyst, and temp are whole degree integers representing degrees
Celsius.

analog_out --	One field: [output-value,rw]

output-value is a number from 0 to 255 representing the voltage output
provided by the DAC from 0 to 2.5, respectively.  Note: the max *current*
supplied is actually quite low.  Some type of current amplification is needed
in order to control a fan or other current demanding device (see the
datasheet for more info).

die_code --	One field: [die-code,ro]

die-code is an integer representation of the die_code byte register. 
According to the docs, the high nibble is the die version, and the lower
nibble is the stepping.  (Don't ask me why or what this means! ;')

inter --	One field: [interrupts,rw]

interrupts is an integer representation of the interrupts byte.  See the data
sheet for what bits mean what.

inter_mask -- 	One field: [inter-mask,rw]

inter-mask is an integer repressentation of the interrupt mask which is a
determination of which conditions can cause the /INT pin on the chip to
become asserted.



