Re: [PATCH v2] sensors-detect: Add support for max6695/96

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux