hwmon: (pmbus/ltc2978) add support for LTC7132
authorFelix Nieuwenhuizen <Felix.Nieuwenhuizen@etas.com>
Thu, 27 Oct 2022 14:51:35 +0000 (16:51 +0200)
committerGuenter Roeck <linux@roeck-us.net>
Mon, 5 Dec 2022 00:45:02 +0000 (16:45 -0800)
Add support for LTC7132.
The relevant registers in the LTC7132 are identical to the LTC7880.
So it's just a matter of adding the chip id.

Signed-off-by: Felix Nieuwenhuizen <Felix.Nieuwenhuizen@etas.com>
Link: https://lore.kernel.org/r/20221027145135.31802-1-Felix.Nieuwenhuizen@etas.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/pmbus/ltc2978.c

index 6d25927..79f480b 100644 (file)
@@ -23,7 +23,7 @@ enum chips {
        /* Managers */
        ltc2972, ltc2974, ltc2975, ltc2977, ltc2978, ltc2979, ltc2980,
        /* Controllers */
-       ltc3880, ltc3882, ltc3883, ltc3884, ltc3886, ltc3887, ltc3889, ltc7880,
+       ltc3880, ltc3882, ltc3883, ltc3884, ltc3886, ltc3887, ltc3889, ltc7132, ltc7880,
        /* Modules */
        ltm2987, ltm4664, ltm4675, ltm4676, ltm4677, ltm4678, ltm4680, ltm4686,
        ltm4700,
@@ -45,15 +45,14 @@ enum chips {
 #define LTC2974_MFR_IOUT_PEAK          0xd7
 #define LTC2974_MFR_IOUT_MIN           0xd8
 
-/* LTC3880, LTC3882, LTC3883, LTC3887, LTM4675, and LTM4676 */
+/* LTC3880, LTC3882, LTC3883, LTC3887, LTM4675, LTM4676, LTC7132 */
 #define LTC3880_MFR_IOUT_PEAK          0xd7
 #define LTC3880_MFR_CLEAR_PEAKS                0xe3
 #define LTC3880_MFR_TEMPERATURE2_PEAK  0xf4
 
-/* LTC3883, LTC3884, LTC3886, LTC3889 and LTC7880 only */
+/* LTC3883, LTC3884, LTC3886, LTC3889, LTC7132, LTC7880 */
 #define LTC3883_MFR_IIN_PEAK           0xe1
 
-
 /* LTC2975 only */
 #define LTC2975_MFR_IIN_PEAK           0xc4
 #define LTC2975_MFR_IIN_MIN            0xc5
@@ -79,10 +78,11 @@ enum chips {
 #define LTC3884_ID                     0x4C00
 #define LTC3886_ID                     0x4600
 #define LTC3887_ID                     0x4700
-#define LTM2987_ID_A                   0x8010  /* A/B for two die IDs */
-#define LTM2987_ID_B                   0x8020
 #define LTC3889_ID                     0x4900
+#define LTC7132_ID                     0x4CE0
 #define LTC7880_ID                     0x49E0
+#define LTM2987_ID_A                   0x8010  /* A/B for two die IDs */
+#define LTM2987_ID_B                   0x8020
 #define LTM4664_ID                     0x4120
 #define LTM4675_ID                     0x47a0
 #define LTM4676_ID_REV1                        0x4400
@@ -547,6 +547,7 @@ static const struct i2c_device_id ltc2978_id[] = {
        {"ltc3886", ltc3886},
        {"ltc3887", ltc3887},
        {"ltc3889", ltc3889},
+       {"ltc7132", ltc7132},
        {"ltc7880", ltc7880},
        {"ltm2987", ltm2987},
        {"ltm4664", ltm4664},
@@ -651,6 +652,8 @@ static int ltc2978_get_id(struct i2c_client *client)
                return ltc3887;
        else if (chip_id == LTC3889_ID)
                return ltc3889;
+       else if (chip_id == LTC7132_ID)
+               return ltc7132;
        else if (chip_id == LTC7880_ID)
                return ltc7880;
        else if (chip_id == LTM2987_ID_A || chip_id == LTM2987_ID_B)
@@ -831,6 +834,7 @@ static int ltc2978_probe(struct i2c_client *client)
        case ltc3884:
        case ltc3886:
        case ltc3889:
+       case ltc7132:
        case ltc7880:
        case ltm4664:
        case ltm4678:
@@ -902,6 +906,7 @@ static const struct of_device_id ltc2978_of_match[] = {
        { .compatible = "lltc,ltc3886" },
        { .compatible = "lltc,ltc3887" },
        { .compatible = "lltc,ltc3889" },
+       { .compatible = "lltc,ltc7132" },
        { .compatible = "lltc,ltc7880" },
        { .compatible = "lltc,ltm2987" },
        { .compatible = "lltc,ltm4664" },