Commit f63f6cce authored by Guenter Roeck's avatar Guenter Roeck

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
......@@ -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
......
......@@ -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,
......
......@@ -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))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment