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: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
Guenter Roeck 2022-01-06 15:07:48 -08:00
parent b1526b38e3
commit f63f6cce28
3 changed files with 20 additions and 4 deletions

View File

@ -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

View File

@ -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,

View File

@ -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))