diff --git a/drivers/hwmon/pmbus/ltc2978.c b/drivers/hwmon/pmbus/ltc2978.c index c3b71668a47f..cc84ef514b8d 100644 --- a/drivers/hwmon/pmbus/ltc2978.c +++ b/drivers/hwmon/pmbus/ltc2978.c @@ -56,23 +56,18 @@ enum chips { ltc2974, ltc2975, ltc2977, ltc2978, ltc3880, ltc3882, ltc3883, #define LTC2975_MFR_PIN_PEAK 0xc6 #define LTC2975_MFR_PIN_MIN 0xc7 -#define LTC2974_ID_REV1 0x0212 -#define LTC2974_ID_REV2 0x0213 -#define LTC2975_ID 0x0223 +#define LTC2978_ID_MASK 0xfff0 + +#define LTC2974_ID 0x0210 +#define LTC2975_ID 0x0220 #define LTC2977_ID 0x0130 -#define LTC2978_ID_REV1 0x0121 -#define LTC2978_ID_REV2 0x0122 -#define LTC2978A_ID 0x0124 -#define LTC3880_ID 0x4000 -#define LTC3880_ID_MASK 0xff00 +#define LTC2978_ID 0x0120 +#define LTC3880_ID 0x4020 #define LTC3883_ID 0x4300 -#define LTC3883_ID_MASK 0xff00 #define LTC3887_ID 0x4700 -#define LTC3887_ID_MASK 0xff00 -#define LTM4676_ID 0x4400 -#define LTM4676_ID_2 0x4480 +#define LTM4676_ID_REV1 0x4400 +#define LTM4676_ID_REV2 0x4480 #define LTM4676A_ID 0x47e0 -#define LTM4676_ID_MASK 0xfff0 #define LTC2974_NUM_PAGES 4 #define LTC2978_NUM_PAGES 8 @@ -463,24 +458,24 @@ static int ltc2978_get_id(struct i2c_client *client) return -ENODEV; } - if (chip_id == LTC2974_ID_REV1 || chip_id == LTC2974_ID_REV2) + chip_id &= LTC2978_ID_MASK; + + if (chip_id == LTC2974_ID) return ltc2974; else if (chip_id == LTC2975_ID) return ltc2975; else if (chip_id == LTC2977_ID) return ltc2977; - else if (chip_id == LTC2978_ID_REV1 || chip_id == LTC2978_ID_REV2 || - chip_id == LTC2978A_ID) + else if (chip_id == LTC2978_ID) return ltc2978; - else if ((chip_id & LTC3880_ID_MASK) == LTC3880_ID) + else if (chip_id == LTC3880_ID) return ltc3880; - else if ((chip_id & LTC3883_ID_MASK) == LTC3883_ID) + else if (chip_id == LTC3883_ID) return ltc3883; - else if ((chip_id & LTC3887_ID_MASK) == LTC3887_ID) + else if (chip_id == LTC3887_ID) return ltc3887; - else if ((chip_id & LTM4676_ID_MASK) == LTM4676_ID || - (chip_id & LTM4676_ID_MASK) == LTM4676_ID_2 || - (chip_id & LTM4676_ID_MASK) == LTM4676A_ID) + else if (chip_id == LTM4676_ID_REV1 || chip_id == LTM4676_ID_REV2 || + chip_id == LTM4676A_ID) return ltm4676; dev_err(&client->dev, "Unsupported chip ID 0x%x\n", chip_id);