ADM1020 is compatible with ADM1021 but has a separate chip revision and a limited I2C address range. Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx> --- Documentation/hwmon/lm90.rst | 10 +++++++++- drivers/hwmon/Kconfig | 4 ++-- drivers/hwmon/lm90.c | 10 +++++++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Documentation/hwmon/lm90.rst b/Documentation/hwmon/lm90.rst index c3ce54f61f44..b2ca10f37218 100644 --- a/Documentation/hwmon/lm90.rst +++ b/Documentation/hwmon/lm90.rst @@ -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 diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig index 32c605eaec7e..494539e4be3d 100644 --- a/drivers/hwmon/Kconfig +++ b/drivers/hwmon/Kconfig @@ -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, diff --git a/drivers/hwmon/lm90.c b/drivers/hwmon/lm90.c index 6d1e7052e3ed..de51d205b63f 100644 --- a/drivers/hwmon/lm90.c +++ b/drivers/hwmon/lm90.c @@ -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 }, @@ -1829,7 +1830,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 @@ -1847,6 +1849,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)) -- 2.35.1