mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-01 09:16:38 +07:00
51c2a4871c
The adt7310/adt7320 is the SPI version of the adt7410/adt7420. The register map layout is a bit different, i.e. the register addresses differ between the two variants, but the bit layouts of the individual registers are identical. So both chip variants can easily be supported by the same driver. The issue of non matching register address layouts is solved by a simple look-up table which translates the I2C addresses to the SPI addresses. The patch moves the bulk of the adt7410 driver to a common module that will be shared by the adt7410 and adt7310 drivers. This common module implements the driver logic and uses a set of virtual functions to perform IO access. The adt7410 and adt7310 driver modules provide proper implementations of these IO accessor functions for I2C respective SPI. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Reviewed-by: Hartmut Knaack <knaack.h@gmx.de> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
74 lines
3.1 KiB
Plaintext
74 lines
3.1 KiB
Plaintext
Kernel driver adt7410
|
|
=====================
|
|
|
|
Supported chips:
|
|
* Analog Devices ADT7410
|
|
Prefix: 'adt7410'
|
|
Addresses scanned: None
|
|
Datasheet: Publicly available at the Analog Devices website
|
|
http://www.analog.com/static/imported-files/data_sheets/ADT7410.pdf
|
|
* Analog Devices ADT7420
|
|
Prefix: 'adt7420'
|
|
Addresses scanned: None
|
|
Datasheet: Publicly available at the Analog Devices website
|
|
http://www.analog.com/static/imported-files/data_sheets/ADT7420.pdf
|
|
* Analog Devices ADT7310
|
|
Prefix: 'adt7310'
|
|
Addresses scanned: None
|
|
Datasheet: Publicly available at the Analog Devices website
|
|
http://www.analog.com/static/imported-files/data_sheets/ADT7310.pdf
|
|
* Analog Devices ADT7320
|
|
Prefix: 'adt7320'
|
|
Addresses scanned: None
|
|
Datasheet: Publicly available at the Analog Devices website
|
|
http://www.analog.com/static/imported-files/data_sheets/ADT7320.pdf
|
|
|
|
Author: Hartmut Knaack <knaack.h@gmx.de>
|
|
|
|
Description
|
|
-----------
|
|
|
|
The ADT7310/ADT7410 is a temperature sensor with rated temperature range of
|
|
-55°C to +150°C. It has a high accuracy of +/-0.5°C and can be operated at a
|
|
resolution of 13 bits (0.0625°C) or 16 bits (0.0078°C). The sensor provides an
|
|
INT pin to indicate that a minimum or maximum temperature set point has been
|
|
exceeded, as well as a critical temperature (CT) pin to indicate that the
|
|
critical temperature set point has been exceeded. Both pins can be set up with a
|
|
common hysteresis of 0°C - 15°C and a fault queue, ranging from 1 to 4 events.
|
|
Both pins can individually set to be active-low or active-high, while the whole
|
|
device can either run in comparator mode or interrupt mode. The ADT7410 supports
|
|
continuous temperature sampling, as well as sampling one temperature value per
|
|
second or even just get one sample on demand for power saving. Besides, it can
|
|
completely power down its ADC, if power management is required.
|
|
|
|
The ADT7320/ADT7420 is register compatible, the only differences being the
|
|
package, a slightly narrower operating temperature range (-40°C to +150°C), and
|
|
a better accuracy (0.25°C instead of 0.50°C.)
|
|
|
|
The difference between the ADT7310/ADT7320 and ADT7410/ADT7420 is the control
|
|
interface, the ADT7310 and ADT7320 use SPI while the ADT7410 and ADT7420 use
|
|
I2C.
|
|
|
|
Configuration Notes
|
|
-------------------
|
|
|
|
Since the device uses one hysteresis value, which is an offset to minimum,
|
|
maximum and critical temperature, it can only be set for temp#_max_hyst.
|
|
However, temp#_min_hyst and temp#_crit_hyst show their corresponding
|
|
hysteresis.
|
|
The device is set to 16 bit resolution and comparator mode.
|
|
|
|
sysfs-Interface
|
|
---------------
|
|
|
|
temp#_input - temperature input
|
|
temp#_min - temperature minimum setpoint
|
|
temp#_max - temperature maximum setpoint
|
|
temp#_crit - critical temperature setpoint
|
|
temp#_min_hyst - hysteresis for temperature minimum (read-only)
|
|
temp#_max_hyst - hysteresis for temperature maximum (read/write)
|
|
temp#_crit_hyst - hysteresis for critical temperature (read-only)
|
|
temp#_min_alarm - temperature minimum alarm flag
|
|
temp#_max_alarm - temperature maximum alarm flag
|
|
temp#_crit_alarm - critical temperature alarm flag
|