[lm-sensors] [PATCH v2] sensors-detect: Add code to detect LM95245
Guenter Roeck
guenter.roeck at ericsson.com
Sun Jul 10 18:28:24 CEST 2011
v2: Fixed per review feedback. Tested code with LM95231 and LM95245.
---
Index: prog/detect/sensors-detect
===================================================================
--- prog/detect/sensors-detect (revision 5983)
+++ prog/detect/sensors-detect (working copy)
@@ -1008,6 +1008,11 @@
i2c_addrs => [0x2b, 0x19, 0x2a],
i2c_detect => sub { lm95231_detect(@_, 1); },
}, {
+ name => "National Semiconductor LM95245",
+ driver => "lm95245",
+ i2c_addrs => [0x18, 0x19, 0x29, 0x4c, 0x4d],
+ i2c_detect => sub { lm95231_detect(@_, 2); },
+ }, {
name => "National Semiconductor LM63",
driver => "lm63",
i2c_addrs => [0x4c],
@@ -4540,12 +4545,14 @@
return 5;
}
-# Chip to detect: 0 = LM95231, 1 = LM95241
+# Chip to detect: 0 = LM95231, 1 = LM95241, 2 = LM95245
# Registers used:
# 0x02: Status (3 unused bits)
# 0x03: Configuration (3 unused bits)
-# 0x06: Remote diode filter control (6 unused bits)
-# 0x30: Remote diode model type select (6 unused bits)
+# 0x06: Remote diode filter control (6 unused bits, LM95231 and LM95241)
+# 0x30: Remote diode model type select (6 unused bits, LM95231 and LM95241)
+# 0x30: Local Temperature LSB (5 unused bits, LM95245)
+# 0x33: Status register 2 (6 unused bits, LM95245)
# 0xfe: Manufacturer ID
# 0xff: Revision ID
sub lm95231_detect
@@ -4555,13 +4562,21 @@
my $cid = i2c_smbus_read_byte_data($file, 0xff);
return if $mid != 0x01; # National Semiconductor
- return if $chip == 0 && $cid != 0xa1; # LM95231
- return if $chip == 1 && $cid != 0xa4; # LM95241
- return if i2c_smbus_read_byte_data($file, 0x02) & 0x70;
- return if i2c_smbus_read_byte_data($file, 0x03) & 0x89;
- return if i2c_smbus_read_byte_data($file, 0x06) & 0xfa;
- return if i2c_smbus_read_byte_data($file, 0x30) & 0xfa;
+ if ($chip == 0 || $chip == 1) {
+ return if $chip == 0 && $cid != 0xa1; # LM95231
+ return if $chip == 1 && $cid != 0xa4; # LM95241
+ return if i2c_smbus_read_byte_data($file, 0x02) & 0x70;
+ return if i2c_smbus_read_byte_data($file, 0x03) & 0x89;
+ return if i2c_smbus_read_byte_data($file, 0x06) & 0xfa;
+ return if i2c_smbus_read_byte_data($file, 0x30) & 0xfa;
+ } elsif ($chip == 2) {
+ return if $cid != 0xb3; # LM95245
+ return if i2c_smbus_read_byte_data($file, 0x02) & 0x68;
+ return if i2c_smbus_read_byte_data($file, 0x03) & 0xa1;
+ return if i2c_smbus_read_byte_data($file, 0x30) & 0x1a;
+ return if i2c_smbus_read_byte_data($file, 0x33) & 0x3f;
+ }
return 6;
}
Index: CHANGES
===================================================================
--- CHANGES (revision 5983)
+++ CHANGES (working copy)
@@ -17,6 +17,7 @@
Add detection of ITE IT8772E
Don't advertise the ipmisensors driver
Add detection of SA56004
+ Add detection of LM95245
3.3.0 (2011-03-28)
Makefile: Check for bison and flex
More information about the lm-sensors
mailing list