[lm-sensors] [PATCH v2] sensors-detect: Add code to detect LM95245

Jean Delvare khali at linux-fr.org
Sun Jul 10 20:26:10 CEST 2011


On Sun, 10 Jul 2011 09:28:24 -0700, Guenter Roeck wrote:
> v2: Fixed per review feedback. Tested code with LM95231 and LM95245.
> 
> ---
> 
> Index: prog/detect/sensors-detect
> ===================================================================
> --- prog/detect/sensors-detect	(revision 5983)
> +++ prog/detect/sensors-detect	(working copy)
> @@ -1008,6 +1008,11 @@
>  		i2c_addrs => [0x2b, 0x19, 0x2a],
>  		i2c_detect => sub { lm95231_detect(@_, 1); },
>  	}, {
> +		name => "National Semiconductor LM95245",
> +		driver => "lm95245",
> +		i2c_addrs => [0x18, 0x19, 0x29, 0x4c, 0x4d],
> +		i2c_detect => sub { lm95231_detect(@_, 2); },
> +	}, {
>  		name => "National Semiconductor LM63",
>  		driver => "lm63",
>  		i2c_addrs => [0x4c],
> @@ -4540,12 +4545,14 @@
>  	return 5;
>  }
>  
> -# Chip to detect: 0 = LM95231, 1 = LM95241
> +# Chip to detect: 0 = LM95231, 1 = LM95241, 2 = LM95245
>  # Registers used:
>  #   0x02: Status (3 unused bits)
>  #   0x03: Configuration (3 unused bits)
> -#   0x06: Remote diode filter control (6 unused bits)
> -#   0x30: Remote diode model type select (6 unused bits)
> +#   0x06: Remote diode filter control (6 unused bits, LM95231 and LM95241)
> +#   0x30: Remote diode model type select (6 unused bits, LM95231 and LM95241)
> +#   0x30: Local Temperature LSB (5 unused bits, LM95245)
> +#   0x33: Status register 2 (6 unused bits, LM95245)
>  #   0xfe: Manufacturer ID
>  #   0xff: Revision ID
>  sub lm95231_detect
> @@ -4555,13 +4562,21 @@
>  	my $cid = i2c_smbus_read_byte_data($file, 0xff);
>  
>  	return if $mid != 0x01;				# National Semiconductor
> -	return if $chip == 0 && $cid != 0xa1;		# LM95231
> -	return if $chip == 1 && $cid != 0xa4;		# LM95241
>  
> -	return if i2c_smbus_read_byte_data($file, 0x02) & 0x70;
> -	return if i2c_smbus_read_byte_data($file, 0x03) & 0x89;
> -	return if i2c_smbus_read_byte_data($file, 0x06) & 0xfa;
> -	return if i2c_smbus_read_byte_data($file, 0x30) & 0xfa;
> +	if ($chip == 0 || $chip == 1) {
> +		return if $chip == 0 && $cid != 0xa1;	# LM95231
> +		return if $chip == 1 && $cid != 0xa4;	# LM95241
> +		return if i2c_smbus_read_byte_data($file, 0x02) & 0x70;
> +		return if i2c_smbus_read_byte_data($file, 0x03) & 0x89;
> +		return if i2c_smbus_read_byte_data($file, 0x06) & 0xfa;
> +		return if i2c_smbus_read_byte_data($file, 0x30) & 0xfa;
> +	} elsif ($chip == 2) {
> +		return if $cid != 0xb3;			# LM95245
> +		return if i2c_smbus_read_byte_data($file, 0x02) & 0x68;
> +		return if i2c_smbus_read_byte_data($file, 0x03) & 0xa1;
> +		return if i2c_smbus_read_byte_data($file, 0x30) & 0x1a;

Rather "& 0x1f", no?

> +		return if i2c_smbus_read_byte_data($file, 0x33) & 0x3f;
> +	}
>  
>  	return 6;
>  }
> Index: CHANGES
> ===================================================================
> --- CHANGES	(revision 5983)
> +++ CHANGES	(working copy)
> @@ -17,6 +17,7 @@
>                    Add detection of ITE IT8772E
>                    Don't advertise the ipmisensors driver
>                    Add detection of SA56004
> +                  Add detection of LM95245
>  
>  3.3.0 (2011-03-28)
>    Makefile: Check for bison and flex

Other that this, the patch looks good, feel free to apply after fixing.

-- 
Jean Delvare




More information about the lm-sensors mailing list