Changeset 5264
- Timestamp:
- 05/25/08 12:07:25 (6 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
lm-sensors/branches/lm-sensors-3.0.0/CHANGES
r5261 r5264 5 5 sensors-detect: Add Intel SCH (bus) support 6 6 Add SMSC EMC6D103 support 7 Improve MAX6657, MAX6658, MAX6659 detection 7 8 8 9 3.0.2 (2008-05-18) lm-sensors/branches/lm-sensors-3.0.0/prog/detect/sensors-detect
r5262 r5264 1095 1095 driver => "lm90", 1096 1096 i2c_addrs => [0x4c], 1097 i2c_detect => sub { lm90_detect(4,@_); },1097 i2c_detect => sub { max6657_detect(@_); }, 1098 1098 }, 1099 1099 { … … 1101 1101 driver => "lm90", 1102 1102 i2c_addrs => [0x4d..0x4e], # 0x4c is handled above 1103 i2c_detect => sub { lm90_detect(4,@_); },1103 i2c_detect => sub { max6657_detect(@_); }, 1104 1104 }, 1105 1105 { … … 3959 3959 3960 3960 # $_[0]: Chip to detect 3961 # (0 = LM90, 1 =LM89/LM99, 2=LM86, 3=ADM1032, 4=MAX6657/MAX6658/MAX6659,3961 # (0 = LM90, 1 = LM89/LM99, 2 = LM86, 3 = ADM1032, 3962 3962 # 5 = ADT7461, 6 = MAX6648/MAX6692, 7 = MAX6680/MAX6681, 3963 # 8 = W83L771W/G ), 9 = TI TMP4013963 # 8 = W83L771W/G, 9 = TI TMP401) 3964 3964 # $_[1]: A reference to the file descriptor to access this chip. 3965 3965 # $_[2]: Address 3966 # Returns: undef if not detected, 4, 6 or 8 if detected. 3967 # The Maxim chips MAX6657, MAX6658 and MAX6659 have a low confidence 3968 # value (4) because they don't have a die revision register. 3966 # Returns: undef if not detected, 6 or 8 if detected. 3969 3967 # Registers used: 3970 3968 # 0x03: Configuration … … 4006 4004 return if $rate > 0x0a; 4007 4005 return if $mid != 0x41; # Analog Devices 4008 return 8 if ($cid & 0xf0) == 0x40; # ADM1032 4009 } 4010 if ($chip == 4) { 4011 return if ($conf & 0x1f) != ($mid & 0x0f); # No low nibble, 4012 # returns previous low nibble 4013 return if $rate > 0x09; 4014 return if $mid != 0x4d; # Maxim 4015 return if $cid != 0x4d; # No register, returns previous value 4016 return 4; 4006 return 6 if ($cid & 0xf0) == 0x40; # ADM1032 4017 4007 } 4018 4008 if ($chip == 5) { … … 4034 4024 return if $mid != 0x4d; # Maxim 4035 4025 return if $cid != 0x01; # MAX6680/MAX6681 4036 return 6;4026 return 8; 4037 4027 } 4038 4028 if ($chip == 8) { … … 4048 4038 return if $mid != 0x55; # Texas Instruments 4049 4039 return if $cid != 0x11; # TMP401 4050 return 6;4040 return 8; 4051 4041 } 4052 4042 return; 4043 } 4044 4045 # $_[0]: A reference to the file descriptor to access this chip. 4046 # $_[1]: Address 4047 # Returns: undef if not detected, 5 if detected. 4048 # Registers used: 4049 # 0x03: Configuration (no low nibble) 4050 # 0x04: Conversion rate 4051 # 0xfe: Manufacturer ID 4052 # 0xff: no register 4053 sub max6657_detect 4054 { 4055 my ($file, $addr) = @_; 4056 my $mid = i2c_smbus_read_byte_data($file, 0xfe); 4057 my $cid = i2c_smbus_read_byte_data($file, 0xff); 4058 my $conf = i2c_smbus_read_byte_data($file, 0x03); 4059 4060 return if $mid != 0x4d; # Maxim 4061 return if ($conf & 0x1f) != 0x0d; # No low nibble, 4062 # returns previous low nibble 4063 return if $cid != 0x4d; # No register, returns previous value 4064 4065 my $rate = i2c_smbus_read_byte_data($file, 0x04); 4066 return if $rate > 0x09; 4067 4068 $cid = i2c_smbus_read_byte_data($file, 0xff); 4069 $conf = i2c_smbus_read_byte_data($file, 0x03); 4070 return if ($conf & 0x0f) != $rate; # No low nibble, 4071 # returns previous low nibble 4072 return if $cid != $rate; # No register, returns previous value 4073 4074 return 5; 4053 4075 } 4054 4076
