[lm-sensors] PATCH i2c: adm9240 driver doc

Rudolf Marek r.marek at sh.cvut.cz
Thu Jun 2 23:15:50 CEST 2005


Hi Grant,

> How's this one?  I make your changes and can add to it later 
> if/when alarms_mask accessor goes into driver.
Ok

Please fix what I found this time. I hope it is all because it is too late here :)
Rest looks ok to me. Next time please send it to greg and CC to lm-sensors.

Thanks

regards

Rudolf


> Thanks,
> --Grant.
> 
> 
> Signed-off-by: Grant Coady <gcoady at gmail.com>
> 
> ---
>  adm9240 |  177 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 177 insertions(+)
> 
> diff -X dontdiff -Nrup linux-2.6.12-rc5-mm2/Documentation/i2c/chips/adm9240 linux-2.6.12-rc5-mm2a/Documentation/i2c/chips/adm9240
> --- linux-2.6.12-rc5-mm2/Documentation/i2c/chips/adm9240	1970-01-01 10:00:00.000000000 +1000
> +++ linux-2.6.12-rc5-mm2a/Documentation/i2c/chips/adm9240	2005-06-03 06:47:36.000000000 +1000
> @@ -0,0 +1,177 @@
> +Kernel driver adm9240
> +=====================
> +
> +Supported chips:
> +  * Analog Devices ADM9240
> +    Prefix 'adm9240'

Should be Prefix: 'adm9240'

> +    Addresses scanned: I2C 0x2c - 0x2f
> +    Datasheet: Publicly available at the Analog Devices website
> +    http://www.analog.com/UploadedFiles/Data_Sheets/79857778ADM9240_0.pdf
> +
> +  * Dallas Semiconductor DS1780
> +    Prefix 'ds1780'
same here
> +    Addresses scanned: I2C 0x2c - 0x2f
> +    Datasheet: Publicly available at the Dallas Semiconductor (Maxim) website
> +    http://pdfserv.maxim-ic.com/en/ds/DS1780.pdf
> +
> +  * National Semiconductor LM81
> +    Prefix 'lm81'
same here
> +    Addresses scanned: I2C 0x2c - 0x2f
> +    Datasheet: Publicly available at the National Semiconductor website
> +    http://www.national.com/ds.cgi/LM/LM81.pdf
> +
> +Authors:
> +    Frodo Looijaard <frodol at dds.nl>,
> +    Philip Edelbrock <phil at netroedge.com>,
> +    Michiel Rook <michiel at grendelproject.nl>,
> +    Grant Coady <gcoady at gmail.com> with guidance 
> +        from Jean Delvare <khali at linux-fr.org>
> +
> +Interface
> +---------
> +The I2C addresses listed above assume BIOS has not changed the 
> +chip MSB 5-bit address. Each chip reports a unique manufacturer 
> +identification code as well as the chip revision/stepping level.
> +
> +Description
> +-----------
> +[From ADM9240] The ADM9240 is a complete system hardware monitor for 
> +microprocessor-based systems, providing measurement and limit comparison 
> +of up to four power supplies and two processor core voltages, plus 
> +temperature, two fan speeds and chassis intrusion. Measured values can 
> +be read out via an I2C-compatible serial System Management Bus, and values 
> +for limit comparisons can be programmed in over the same serial bus. The 
> +high speed successive approximation ADC allows frequent sampling of all 
> +analog channels to ensure a fast interrupt response to any out-of-limit 
> +measurement.
> +
> +The ADM9240, DS1780 and LM81 are register compatible, the following 
> +details are common to the three chips. Chip differences are described 
> +after this section.
> +
> +
> +Measurements
> +------------
> +The measurement cycle
> +
> +The adm9240 driver will take a measurement reading no faster than once 
> +each two seconds. User-space may read sysfs interface faster than the 
> +measurement update rate and will receive cached data from the most 
> +recent measurement. 
> +
> +ADM9240 has a very fast 320us temperature and voltage measurement cycle 
> +with independent fan speed measurement cycles counting alternating rising 
> +edges of the fan tacho inputs.
> +
> +DS1780 measurement cycle is about once per second including fan speed.
> +
> +LM81 measurement cycle is about once per 400ms including fan speed.
> +The LM81 12-bit extended temperature measurement mode is not supported.
> +
> +Temperature
> +-----------
> +On chip temperature is reported as degrees Celsius as 9-bit signed data 
> +with resolution of 0.5 degrees Celsius. High and low temperature limits 
> +are 8-bit signed data with resolution of one degree Celsius. The driver 
> +sets temperature interrupt to default mode so that an alarm is asserted 
> +once the temperature exceeds the high limit, and is cleared when the 
> +temperature falls below the temp1_max_hyst value.
> +
> +Fan Speed
> +---------
> +Two fan tacho inputs are provided, the ADM9240 gates an internal 22.5kHz 
> +clock via a divider to an 8-bit counter. Fan speed (rpm) is calculated by:
> +
> +rpm = (22500 * 60) / (count * divider)
> +
> +Automatic fan clock divider
> +
> +  * User sets 0 to fan_min limit
> +    - low speed alarm is disabled
> +    - fan clock divider not changed
> +    - auto fan clock adjuster enabled for valid fan speed reading
> +
> +  * User sets fan_min limit too low
> +    - low speed alarm is enabled
> +    - fan clock divider set to max
> +    - fan_min set to register value 254 which corresponds
> +      to 664 rpm on adm9240
> +    - low speed alarm will be asserted if fan speed is
> +      less than minimum measurable speed
> +    - auto fan clock adjuster disabled
> +
> +  * User sets reasonable fan speed
> +    - low speed alarm is enabled
> +    - fan clock divider set to suit fan_min
> +    - auto fan clock adjuster enabled: adjusts fan_min
> +
> +  * User sets unreasonably high low fan speed limit
> +    - resolution of the low speed limit may be reduced
> +    - alarm will be asserted
> +    - auto fan clock adjuster enabled: adjusts fan_min
> +
> +    * fan speed may be displayed as zero until the auto fan clock divider
> +      adjuster brings fan speed clock divider back into chip measurement
> +      range, this will occur within a few measurement cycles.
> +
> +Analog Output
> +-------------
> +An analog output provides a 0 to 1.25 volt signal intended for an external 
> +fan speed amplifier circuit. The analog output is set to maximum value on 
> +power up or reset. This doesn't do much on the test Intel SE440BX-2.
> +
> +Voltage Monitor
> +
> +Voltage (IN) measurement is internally scaled:
> +
> +    nr  label       nominal     maximum   resolution
> +                      mV          mV         mV
> +    0   +2.5V        2500        3320       13.0
> +    1   Vccp1        2700        3600       14.1 
> +    2   +3.3V        3300        4380       17.2
> +    3     +5V        5000        6640       26.0
> +    4    +12V       12000       15940       62.5
> +    5   Vccp2        2700        3600       14.1
> +
> +The reading is an unsigned 8-bit value, nominal voltage measurement is 
> +represented by a reading of 192, being 3/4 of the measurement range.
> +
> +An alarm is asserted for any voltage going below or above the set limits.
> +
> +The driver reports and accepts voltage limits scaled to the above table.
> +
> +VID Monitor
> +-----------
> +The chip has five inputs to read the 5-bit VID and reports the mV value 
> +based on detected CPU type.
> +
> +Chassis Intrusion
> +-----------------
> +An alarm is asserted when the CI pin goes active high. The ADM9240 
> +Datasheet has an example of an external temperature sensor driving 
> +this pin. On an Intel SE440BX-2 the Chassis Intrusion header is 
> +connected to a normally open switch.
> +
> +The ADM9240 provides an internal open drain on this line, and may output 
> +a 20 ms active low pulse to reset an external Chassis Intrusion latch.
> +
> +Clear the CI latch by writing value 1 to the sysfs chassis_clear file.
> +
> +Alarm flags reported as 16-bit word
> +
> +    bit     label               comment
> +    ---     -------------       --------------------------
> +     0      +2.5 V_Error        high or low limit exceeded
> +     1      VCCP_Error          high or low limit exceeded
> +     2      +3.3 V_Error        high or low limit exceeded
> +     3      +5 V_Error          high or low limit exceeded
> +     4      Temp_Error          temperature error
> +     6      FAN1_Error          fan low limit exceeded
> +     7      FAN2_Error          fan low limit exceeded
> +     8      +12 V_Error         high or low limit exceeded
> +     9      VCCP2_Error         high or low limit exceeded
> +    12      Chassis_Error       CI pin went high
> +
> +Remaining bits are reserved and thus undefined. It is important to note 
> +that alarm bits may be cleared on read, user-space may latch alarms and 
> +provide the end-user with a method to clear alarm memory.
> 
> _______________________________________________
> lm-sensors mailing list
> lm-sensors at lm-sensors.org
> http://lists.lm-sensors.org/mailman/listinfo/lm-sensors




More information about the lm-sensors mailing list