Commit f63f6cce authored by Guenter Roeck's avatar Guenter Roeck
Browse files

hwmon: (lm90) Add explicit support for ADM1020



ADM1020 is compatible with ADM1021 but has a separate chip revision and
a limited I2C address range.

Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent b1526b38
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -51,6 +51,14 @@ Supported chips:

	       http://www.national.com/mpf/LM/LM86.html

  * Analog Devices ADM1020

    Prefix: 'adm1020'

    Addresses scanned: I2C 0x4c - 0x4e

    Datasheet: Publicly available at the Analog Devices website

  * Analog Devices ADM1021

    Prefix: 'adm1021'
@@ -457,7 +465,7 @@ features:
LM84:
  * 8 bit sensor resolution

ADM1021, GL523SM, MAX1617, NE1617, NE1617A, THMC10:
ADM1020, ADM1021, GL523SM, MAX1617, NE1617, NE1617A, THMC10:
  * 8 bit sensor resolution
  * Low temperature limits

+2 −2
Original line number Diff line number Diff line
@@ -1360,8 +1360,8 @@ config SENSORS_LM90
	depends on I2C
	help
	  If you say yes here you get support for National Semiconductor LM84,
	  LM90, LM86, LM89 and LM99, Analog Devices ADM2021, ADM1021A, ADM1023,
	  ADM1032, ADT7461, ADT7461A, ADT7481, ADT7482, and ADT7483A,
	  LM90, LM86, LM89 and LM99, Analog Devices ADM1020, ADM2021, ADM1021A,
	  ADM1023, ADM1032, ADT7461, ADT7461A, ADT7481, ADT7482, and ADT7483A,
	  Maxim MAX1617, MAX6642, MAX6646, MAX6647, MAX6648, MAX6649, MAX6654,
	  MAX6657, MAX6658, MAX6659, MAX6680, MAX6681, MAX6692, MAX6695,
	  MAX6696,
+9 −1
Original line number Diff line number Diff line
@@ -228,6 +228,7 @@ enum chips { adm1023, adm1032, adt7461, adt7461a, adt7481,
 */

static const struct i2c_device_id lm90_id[] = {
	{ "adm1020", max1617 },
	{ "adm1021", max1617 },
	{ "adm1023", adm1023 },
	{ "adm1032", adm1032 },
@@ -1831,7 +1832,8 @@ static const char *lm90_detect_analog(struct i2c_client *client, bool common_add
		    (config1 & 0x0b) == 0x08 && convrate <= 0x0a)
			name = "adt7421";
		break;
	case 0x30 ... 0x3e:	/* ADM1021A, ADM1023 */
	case 0x30 ... 0x38:	/* ADM1021A, ADM1023 */
	case 0x3a ... 0x3e:
		/*
		 * ADM1021A and compatible chips will be mis-detected as
		 * ADM1023. Chips labeled 'ADM1021A' and 'ADM1023' were both
@@ -1849,6 +1851,12 @@ static const char *lm90_detect_analog(struct i2c_client *client, bool common_add
		    !(status & 0x03) && !(config1 & 0x3f) && !(convrate & 0xf8))
			name = "adm1023";
		break;
	case 0x39:		/* ADM1020 (undocumented) */
		if (man_id2 == 0x00 && chip_id2 == 0x00 &&
		    (address == 0x4c || address == 0x4d || address == 0x4e) &&
		    !(status & 0x03) && !(config1 & 0x3f) && !(convrate & 0xf8))
			name = "adm1020";
		break;
	case 0x3f:		/* NCT210 */
		if (man_id2 == 0x00 && chip_id2 == 0x00 && common_address &&
		    !(status & 0x03) && !(config1 & 0x3f) && !(convrate & 0xf8))