This patch adds support for various EMC temperature sensors to sensors-detect. -- Index: prog/detect/sensors-detect =================================================================== --- prog/detect/sensors-detect (revision 5909) +++ prog/detect/sensors-detect (working copy) @@ -1195,16 +1195,36 @@ i2c_addrs => [0x2f], i2c_detect => sub { fintek_detect(@_, 7); }, }, { + name => "SMSC EMC1002", + driver => "to-be-written", + i2c_addrs => [0x3c, 0x3d, 0x4c, 0x4d], + i2c_detect => sub { emc1403_detect(@_, 4); }, + }, { name => "SMSC EMC1023", driver => "to-be-written", # emc1023 i2c_addrs => [0x48, 0x49, 0x4c, 0x4d], i2c_detect => sub { emc1023_detect(@_, 0); }, }, { + name => "SMSC EMC1033", + driver => "to-be-written", + i2c_addrs => [0x3c, 0x3d, 0x4c, 0x4d], + i2c_detect => sub { emc1403_detect(@_, 5); }, + }, { name => "SMSC EMC1043", driver => "to-be-written", # emc1023 i2c_addrs => [0x48, 0x49, 0x4c, 0x4d], i2c_detect => sub { emc1023_detect(@_, 1); }, }, { + name => "SMSC EMC1046", + driver => "to-be-written", + i2c_addrs => [0x4c, 0x4d], + i2c_detect => sub { emc1403_detect(@_, 6); }, + }, { + name => "SMSC EMC1047", + driver => "to-be-written", + i2c_addrs => [0x10, 0x18], + i2c_detect => sub { emc1403_detect(@_, 7); }, + }, { name => "SMSC EMC1053", driver => "to-be-written", # emc1023 i2c_addrs => [0x48, 0x49, 0x4c, 0x4d], @@ -1215,6 +1235,26 @@ i2c_addrs => [0x48, 0x49, 0x4c, 0x4d], i2c_detect => sub { emc1023_detect(@_, 3); }, }, { + name => "SMSC EMC1072", + driver => "to-be-written", + i2c_addrs => [0x1c, 0x3c, 0x4c, 0x5c, 0x6c, 0x7c], + i2c_detect => sub { emc1403_detect(@_, 8); }, + }, { + name => "SMSC EMC1073", + driver => "to-be-written", + i2c_addrs => [0x1c, 0x3c, 0x4c, 0x5c, 0x6c, 0x7c], + i2c_detect => sub { emc1403_detect(@_, 9); }, + }, { + name => "SMSC EMC1074", + driver => "to-be-written", + i2c_addrs => [0x1c, 0x3c, 0x4c, 0x5c, 0x6c, 0x7c], + i2c_detect => sub { emc1403_detect(@_, 10); }, + }, { + name => "SMSC EMC1402", + driver => "to-be-written", + i2c_addrs => [0x18, 0x19, 0x4c, 0x4d], + i2c_detect => sub { emc1403_detect(@_, 11); }, + }, { name => "SMSC EMC1403", driver => "emc1403", i2c_addrs => [0x18, 0x2a, 0x4c, 0x4d], @@ -1230,6 +1270,11 @@ i2c_addrs => [0x18, 0x2a, 0x4c, 0x4d], i2c_detect => sub { emc1403_detect(@_, 3); }, }, { + name => "SMSC EMC1424", + driver => "to-be-written", + i2c_addrs => [0x4c], + i2c_detect => sub { emc1403_detect(@_, 12); }, + }, { name => "ST STTS424", driver => "jc42", i2c_addrs => [0x18..0x1f], @@ -5434,7 +5479,11 @@ return 7; } -# Chip to detect: 0 = EMC1403, 1 = EMC1404, 2 = EMC2103, 3 = EMC1423 +# Chip to detect: 0 = EMC1403, 1 = EMC1404, 2 = EMC2103, 3 = EMC1423, +# 4 = EMC1033, 5 = EMC1073, 6 = EMC1074, 7 = EMC1046, 8 = EMC1047, +# 9 = EMC1402, 10 = EMC1072, 11 = EMC1424, 12 = EMC1002 +# 4 = EMC1002, 5 = EMC1033, 6 = EMC1046, 7 = EMC1047, 8 = EMC1072, +# 9 = EMC1073, 10 = EMC1074, 11 = EMC1402, 12 = EMC1424 # Registers used: # 0xfd: Device ID register # 0xfe: Vendor ID register @@ -5448,18 +5497,45 @@ return unless $man_id == 0x5d; # SMSC - if ($chip == 0) { + if ($chip == 0) { # EMC1403 return unless $dev_id == 0x21; return unless $rev == 0x01; - } elsif ($chip == 1) { + } elsif ($chip == 1) { # EMC1404 return unless $dev_id == 0x25; return unless $rev == 0x01; - } elsif ($chip == 2) { + } elsif ($chip == 2) { # EMC2103 return unless ($dev_id == 0x24) || ($dev_id == 0x26); return unless $rev == 0x01; - } elsif ($chip == 3) { + } elsif ($chip == 3) { # EMC1423 return unless $dev_id == 0x23; return unless $rev == 0x01; + } elsif ($chip == 4) { # EMC1002 + return unless ($dev_id == 0x02) || ($dev_id == 0x03); + return unless $rev == 0x01; + } elsif ($chip == 5) { # EMC1033 + return unless ($dev_id == 0x0a) || ($dev_id == 0x0b); + return unless $rev == 0x01; + } elsif ($chip == 6) { # EMC1046 + return unless $dev_id == 0x1a; + return unless $rev == 0x01; + } elsif ($chip == 7) { # EMC1047 + return unless $dev_id == 0x1c; + return unless $rev == 0x01; + } elsif ($chip == 8) { # EMC1072 + return unless $dev_id == 0x20; + return unless $rev == 0x03; + } elsif ($chip == 9) { # EMC1073 + return unless $dev_id == 0x21; + return unless $rev == 0x03; + } elsif ($chip == 10) { # EMC1074 + return unless $dev_id == 0x25; + return unless $rev == 0x03; + } elsif ($chip == 11) { # EMC1402 + return unless $dev_id == 0x20; + return unless $rev == 0x01; + } elsif ($chip == 12) { # EMC1424 + return unless $dev_id == 0x27; + return unless $rev == 0x01; } return 6; _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors