Hi Jean, On Fri, Sep 10, 2010 at 04:23:21AM -0400, Jean Delvare wrote: > Hi Guenter, > > On Wed, 8 Sep 2010 13:03:57 -0700, Guenter Roeck wrote: > > This patch adds support for max6695/96 to sensors-detect. > > --- > > v2: > > Fix and improve max6680/81 vs. max6695/96 detection code > > Remove chip==7 code from lm90_detect > > > > --- > > Index: prog/detect/sensors-detect > > =================================================================== > > --- prog/detect/sensors-detect (revision 5857) > > +++ prog/detect/sensors-detect (working copy) > > @@ -921,8 +921,13 @@ > > name => "Maxim MAX6680/MAX6681", > > driver => "lm90", > > i2c_addrs => [0x18..0x1a, 0x29..0x2b, 0x4c..0x4e], > > - i2c_detect => sub { lm90_detect(@_, 7); }, > > + i2c_detect => sub { max6680_95_detect(@_, 0); }, > > }, { > > + name => "Maxim MAX6695/MAX6696", > > + driver => "lm90", > > + i2c_addrs => [0x18..0x1a, 0x29..0x2b, 0x4c..0x4e], > > + i2c_detect => sub { max6680_95_detect(@_, 1); }, > > + }, { > > name => "Winbond W83L771W/G", > > driver => "to-be-written", > > i2c_addrs => [0x4c], > > @@ -4051,10 +4056,47 @@ > > return $confidence; > > } > > > > +# Chip to detect: 0 = MAX6680/81, 1 = MAX6695/96 > > +# Registers used: > > +# 0x03: Configuration > > +# 0x04: Conversion rate > > +# 0x12: Status2 > > +# 0x16: Overtemperature 2 > > +# 0xfe: Manufacturer ID > > +# 0xff: Chip ID / die revision > > +sub max6680_95_detect > > +{ > > + my ($file, $addr, $chip) = @_; > > + my $cid = i2c_smbus_read_byte_data($file, 0xff); > > + my $conf = i2c_smbus_read_byte_data($file, 0x03); > > + my $mid = i2c_smbus_read_byte_data($file, 0xfe, NO_CACHE); > > + my $emerg = i2c_smbus_read_byte_data($file, 0x16, NO_CACHE); > > + my $rate = i2c_smbus_read_byte_data($file, 0x04, NO_CACHE); > > + my $emerg2 = i2c_smbus_read_byte_data($file, 0x16, NO_CACHE); > > + > > + # Check common conditions > > + return if $rate > 0x07; > > + return if $mid != 0x4d; # Not Maxim > > + return if $cid != 0x01; # None of the chips we are looking for > > + > > + if ($chip == 0) { > > + return if ($conf & 0x03) != 0; > > + return 8 if $emerg != $emerg2; # MAX6680/MAX6681 > > + } > > + if ($chip == 1) { > > + my $status2 = i2c_smbus_read_byte_data($file, 0x12); > > + > > + return if ($conf & 0x10) != 0; > > + return if ($status2 & 0x01) != 0; > > + return 8 if $emerg == $emerg2; # MAX6695/MAX6696 > > + } > > + return; > > +} > > + > > # Chip to detect: 0 = LM90, 1 = LM89/LM99, 2 = LM86, 3 = ADM1032, > > # 4 = MAX6654, 5 = ADT7461, > > # 6 = MAX6646/MAX6647/MAX6648/MAX6649/MAX6692, > > -# 7 = MAX6680/MAX6681, 8 = W83L771W/G, 9 = TMP401, 10 = TMP411, > > +# 8 = W83L771W/G, 9 = TMP401, 10 = TMP411, > > # 11 = W83L771AWG/ASG, 12 = MAX6690 > > # Registers used: > > # 0x03: Configuration > > @@ -4115,12 +4157,6 @@ > > return if $mid != 0x4d; # Maxim > > return 8 if $cid == 0x59; # MAX6648/MAX6692 > > } > > - if ($chip == 7) { > > - return if ($conf & 0x03) != 0; > > - return if $rate > 0x07; > > - return if $mid != 0x4d; # Maxim > > - return 8 if $cid == 0x01; # MAX6680/MAX6681 > > - } > > if ($chip == 8) { > > return if ($conf & 0x2a) != 0; > > return if $rate > 0x09; > > Looks good, please commit! > I don't have a svn account, as least not to my knowledge. Guess it is time to create one for me. Thanks, Guenter _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors