Kernel driver `thmc50.o' ===================== Status: Complete and some-what tested Supported chips: * Analog Devices ADM1022 Prefix: `adm1022' Addresses scanned: I2C 0x2D - 0x2F (inclusive) Datasheet: Publicly available at the Analog Devices website * Texas Instruments THMC50 Prefix: `thmc50' Addresses scanned: I2C 0x2D - 0x2F (inclusive) Datasheet: Publicly available at the Texas Instruments' website Authors: Frodo Looijaard and Philip Edelbrock 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 Celcius, 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 celcius. 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.