[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