[PATCH] sensors-detect: Add TMP42x chip detection

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

 



On Tue, 14 Jul 2009 19:11:32 +0200, Andre Prendel wrote:
> Below you can find an updated patch with the comment for addresses not
> probed. Further I've adjusted the address range for TMP422 and
> TMP423. TMP422 only supports 0x4c-0x4f and TMP423 0x4c, 0x4d.
> ---

Ah, yeah, good catch. BTW this could be used to improve detection
reliability in the tmp421 driver.

> 
> Index: sensors/prog/detect/sensors-detect
> ===================================================================
> --- sensors.orig/prog/detect/sensors-detect	2009-07-10 22:15:41.000000000 +0200
> +++ sensors/prog/detect/sensors-detect	2009-07-14 18:34:05.000000000 +0200
> @@ -908,6 +908,21 @@
>  		i2c_addrs => [0x4c..0x4e],
>  		i2c_detect => sub { lm90_detect(@_, 10); },
>  	}, {
> +		name => "Texas Instruments TMP421",
> +		driver => "tmp421",
> +		i2c_addrs => [0x2a, 0x4c..0x4f], # 0x1c-0x1f not probed.
> +		i2c_detect => sub { tmp42x_detect(@_, 0); },
> +	}, {
> +		name => "Texas Instruments TMP422",
> +		driver => "tmp421",
> +		i2c_addrs => [0x4c..0x4f],
> +		i2c_detect => sub { tmp42x_detect(@_, 1); },
> +	}, {
> +		name => "Texas Instruments TMP423",
> +		driver => "tmp421",
> +		i2c_addrs => [0x4c, 0x4d],
> +		i2c_detect => sub { tmp42x_detect(@_, 2); },
> +	}, {
>  		name => "National Semiconductor LM95231",
>  		driver => "to-be-written",
>  		i2c_addrs => [0x2b, 0x19, 0x2a],
> @@ -3907,6 +3922,25 @@
>  }
>  
>  # Registers used:

Please add a reminder about the values of $chip, as other detect
functions do.

> +#   0xfe: Manufactorer ID
> +#   0xff: Device ID
> +sub tmp42x_detect()
> +{
> +	my ($file, $addr, $chip) = @_;
> +
> +	my $mid = i2c_smbus_read_byte_data($file, 0xfe);
> +	my $cid = i2c_smbus_read_byte_data($file, 0xff);
> +
> +	return if ($mid != 0x55);
> +
> +	return 6 if ($chip == 0 && $cid == 0x21); # TMP421
> +	return 6 if ($chip == 1 && $cid == 0x22); # TMP422
> +	return 6 if ($chip == 2 && $cid == 0x23); # TMP423
> +
> +	return;
> +}
> +
> +# Registers used:
>  #   0x03: Configuration (no low nibble, returns the previous low nibble)
>  #   0x04: Conversion rate
>  #   0xfe: Manufacturer ID

Other than that, looks good, please apply.

-- 
Jean Delvare



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

  Powered by Linux