(Phil) Added a driver for the Analog Devices ADM1021. The ADM1021 is

basically an expanded LM75.  It can have an external temp probe (in
addition to the internal one), customizable conversion rate (in # of times
per second, depending on power consumption requirements), and
actually has a device-id register for easier/more-certain detecting!

The only strange property is the low-limit.  The low-limit doesn't act
as a Hystersis value like the LM75.  I.e., if the temp falls below it,
it triggers an alarm instead of clearing it.  Strange, ey?  This makes
using the chip for a thermostat control (like for a fan) much harder.
But it *could* be used to turn on a heater to prevent your computer from
freezing. :')

Here's what my output looks like (without a remote sensor. temp's
are the same format as the LM75 [high-limit, low-limit, value]):

[root@penn adm1021-i2c-0-18]# ls -l
total 0
-r--r--r--   1 root     root            0 Jan  9 23:42 die_code
-rw-r--r--   1 root     root            0 Jan  9 23:42 remote_temp
-r--r--r--   1 root     root            0 Jan  9 23:42 status
-rw-r--r--   1 root     root            0 Jan  9 23:42 temp
[root@penn adm1021-i2c-0-18]# cat *
3
60 20 0
76
60 20 24


PS- all temp values in the ADM1021 (limits and readings) are signed
(2's comp) bytes.  So, all readings go from -128 to 127 C (actually,
the docs say it can only reliable sense down to -65), and only
in whole degree increments.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@153 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Philip Edelbrock committed 1999-01-10 08:03:43 +00:00
1 parent 687f8e5fff
commit 899ca67043
6 files changed
+934 -2

No files matched your search

+6
View File
@@ -88,6 +88,7 @@ extern void sensors_deregister_entry(int id);
#define I2C_DRIVERID_EEPROM 1005
#define I2C_DRIVERID_W83781D 1006
#define I2C_DRIVERID_LM80 1007
#define I2C_DRIVERID_ADM1021 1008
/* Sysctl IDs */
#ifdef DEV_HWMON
@@ -168,6 +169,11 @@ struct sensors_chips_data {
#define LM75_SYSCTL_TEMP 1200 /* Degrees Celcius * 10 */
#define ADM1021_SYSCTL_TEMP 1200
#define ADM1021_SYSCTL_REMOTE_TEMP 1201
#define ADM1021_SYSCTL_DIE_CODE 1202
#define ADM1021_SYSCTL_STATUS 1203
#define GL518_SYSCTL_VDD 1000 /* Volts * 100 */
#define GL518_SYSCTL_VIN1 1001
#define GL518_SYSCTL_VIN2 1002