hwmon: (pmbus/ltc2978) add support for more parts.
authorMike Jones <michael-a1.jones@analog.com>
Thu, 6 Feb 2020 23:44:13 +0000 (16:44 -0700)
committerGuenter Roeck <linux@roeck-us.net>
Mon, 9 Mar 2020 03:35:46 +0000 (20:35 -0700)
LTC2972, LTC2979, LTC3884, LTC3889, LTC7880, LTM4664, LTM4677,
LTM4678, LTM4680, LTM4700.

Signed-off-by: Mike Jones <michael-a1.jones@analog.com>
Link: https://lore.kernel.org/r/1581032654-4330-1-git-send-email-michael-a1.jones@analog.com
[groeck: Fixed checkpatch issues (long lines, whitespace)]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Documentation/hwmon/ltc2978.rst
drivers/hwmon/pmbus/Kconfig
drivers/hwmon/pmbus/ltc2978.c

index 42fd841..bc5270e 100644 (file)
@@ -3,6 +3,14 @@ Kernel driver ltc2978
 
 Supported chips:
 
+  * Linear Technology LTC2972
+
+    Prefix: 'ltc2972'
+
+    Addresses scanned: -
+
+    Datasheet: https://www.analog.com/en/products/ltc2972.html
+
   * Linear Technology LTC2974
 
     Prefix: 'ltc2974'
@@ -37,6 +45,14 @@ Supported chips:
 
               https://www.analog.com/en/products/ltc2978a
 
+  * Linear Technology LTC2979
+
+    Prefix: 'ltc2979'
+
+    Addresses scanned: -
+
+    Datasheet: https://www.analog.com/en/products/ltc2979
+
   * Linear Technology LTC2980
 
     Prefix: 'ltc2980'
@@ -69,6 +85,14 @@ Supported chips:
 
     Datasheet: https://www.analog.com/en/products/ltc3883
 
+  * Linear Technology LTC3884
+
+    Prefix: 'ltc3884'
+
+    Addresses scanned: -
+
+    Datasheet: https://www.analog.com/en/products/ltc3884
+
   * Linear Technology LTC3886
 
     Prefix: 'ltc3886'
@@ -85,6 +109,22 @@ Supported chips:
 
     Datasheet: https://www.analog.com/en/products/ltc3887
 
+  * Linear Technology LTC3889
+
+    Prefix: 'ltc3889'
+
+    Addresses scanned: -
+
+    Datasheet: https://www.analog.com/en/products/ltc3889
+
+  * Linear Technology LTC7880
+
+    Prefix: 'ltc7880'
+
+    Addresses scanned: -
+
+    Datasheet: https://www.analog.com/en/products/ltc7880
+
   * Linear Technology LTM2987
 
     Prefix: 'ltm2987'
@@ -93,7 +133,15 @@ Supported chips:
 
     Datasheet: https://www.analog.com/en/products/ltm2987
 
-  * Linear Technology LTM4675
+  * Linear Technology LTM4644
+
+    Prefix: 'ltm4644'
+
+    Addresses scanned: -
+
+    Datasheet: https://www.analog.com/en/products/ltm4644
+
+   * Linear Technology LTM4675
 
     Prefix: 'ltm4675'
 
@@ -109,6 +157,30 @@ Supported chips:
 
     Datasheet: https://www.analog.com/en/products/ltm4676
 
+  * Linear Technology LTM4677
+
+    Prefix: 'ltm4677'
+
+    Addresses scanned: -
+
+    Datasheet: https://www.analog.com/en/products/ltm4677
+
+  * Linear Technology LTM4678
+
+    Prefix: 'ltm4678'
+
+    Addresses scanned: -
+
+    Datasheet: https://www.analog.com/en/products/ltm4678
+
+  * Analog Devices LTM4680
+
+    Prefix: 'ltm4680'
+
+    Addresses scanned: -
+
+    Datasheet: http://www.analog.com/ltm4680
+
   * Analog Devices LTM4686
 
     Prefix: 'ltm4686'
@@ -117,6 +189,15 @@ Supported chips:
 
     Datasheet: http://www.analog.com/ltm4686
 
+  * Analog Devices LTM4700
+
+    Prefix: 'ltm4700'
+
+    Addresses scanned: -
+
+    Datasheet: http://www.analog.com/ltm4700
+
+
 
 Author: Guenter Roeck <linux@roeck-us.net>
 
@@ -166,13 +247,13 @@ in1_min                   Minimum input voltage.
 
 in1_max                        Maximum input voltage.
 
-                       LTC2974, LTC2975, LTC2977, LTC2980, LTC2978, and
-                       LTM2987 only.
+                       LTC2974, LTC2975, LTC2977, LTC2980, LTC2978,
+                       LTC2979 and LTM2987 only.
 
 in1_lcrit              Critical minimum input voltage.
 
-                       LTC2974, LTC2975, LTC2977, LTC2980, LTC2978, and
-                       LTM2987 only.
+                       LTC2972, LTC2974, LTC2975, LTC2977, LTC2980, LTC2978,
+                       LTC2979 and LTM2987 only.
 
 in1_crit               Critical maximum input voltage.
 
@@ -180,29 +261,34 @@ in1_min_alarm             Input voltage low alarm.
 
 in1_max_alarm          Input voltage high alarm.
 
-                       LTC2974, LTC2975, LTC2977, LTC2980, LTC2978, and
-                       LTM2987 only.
+                       LTC2972, LTC2974, LTC2975, LTC2977, LTC2980, LTC2978,
+                       LTC2979 and LTM2987 only.
+
 in1_lcrit_alarm                Input voltage critical low alarm.
 
-                       LTC2974, LTC2975, LTC2977, LTC2980, LTC2978, and
-                       LTM2987 only.
+                       LTC2972, LTC2974, LTC2975, LTC2977, LTC2980, LTC2978,
+                       LTC2979 and LTM2987 only.
+
 in1_crit_alarm         Input voltage critical high alarm.
 
 in1_lowest             Lowest input voltage.
 
-                       LTC2974, LTC2975, LTC2977, LTC2980, LTC2978, and
-                       LTM2987 only.
+                       LTC2972, LTC2974, LTC2975, LTC2977, LTC2980, LTC2978,
+                       and LTM2987 only.
+
 in1_highest            Highest input voltage.
 
 in1_reset_history      Reset input voltage history.
 
 in[N]_label            "vout[1-8]".
 
+                       - LTC2972: N=2-3
                        - LTC2974, LTC2975: N=2-5
-                       - LTC2977, LTC2980, LTM2987: N=2-9
+                       - LTC2977, LTC2979, LTC2980, LTM2987: N=2-9
                        - LTC2978: N=2-9
-                       - LTC3880, LTC3882, LTC23886 LTC3887, LTM4675, LTM4676:
-                         N=2-3
+                       - LTC3880, LTC3882, LTC3884, LTC23886 LTC3887, LTC3889,
+                         LTC7880, LTM4644, LTM4675, LTM4676, LTM4677, LTM4678,
+                         LTM4680, LTM4700: N=2-3
                        - LTC3883: N=2
 
 in[N]_input            Measured output voltage.
@@ -225,8 +311,7 @@ in[N]_crit_alarm    Output voltage critical high alarm.
 
 in[N]_lowest           Lowest output voltage.
 
-
-                       LTC2974, LTC2975,and LTC2978 only.
+                       LTC2972, LTC2974, LTC2975,and LTC2978 only.
 
 in[N]_highest          Highest output voltage.
 
@@ -234,20 +319,24 @@ in[N]_reset_history       Reset output voltage history.
 
 temp[N]_input          Measured temperature.
 
+                       - On LTC2972, temp[1-2] report external temperatures,
+                         and temp 3 reports the chip temperature.
                        - On LTC2974 and LTC2975, temp[1-4] report external
                          temperatures, and temp5 reports the chip temperature.
-                       - On LTC2977, LTC2980, LTC2978, and LTM2987, only one
-                         temperature measurement is supported and reports
-                         the chip temperature.
-                       - On LTC3880, LTC3882, LTC3887, LTM4675, and LTM4676,
-                         temp1 and temp2 report external temperatures, and
-                         temp3 reports the chip temperature.
+                       - On LTC2977, LTC2979, LTC2980, LTC2978, and LTM2987,
+                         only one temperature measurement is supported and
+                         reports the chip temperature.
+                       - On LTC3880, LTC3882, LTC3886, LTC3887, LTC3889,
+                         LTM4664, LTM4675, LTM4676, LTM4677, LTM4678, LTM4680,
+                         and LTM4700, temp1 and temp2 report external
+                         temperatures, and temp3 reports the chip temperature.
                        - On LTC3883, temp1 reports an external temperature,
                          and temp2 reports the chip temperature.
 
 temp[N]_min            Mimimum temperature.
 
-                       LTC2974, LCT2977, LTM2980, LTC2978, and LTM2987 only.
+                       LTC2972, LTC2974, LCT2977, LTM2980, LTC2978,
+                       LTC2979, and LTM2987 only.
 
 temp[N]_max            Maximum temperature.
 
@@ -257,8 +346,8 @@ temp[N]_crit                Critical high temperature.
 
 temp[N]_min_alarm      Temperature low alarm.
 
-                       LTC2974, LTC2975, LTC2977, LTM2980, LTC2978, and
-                       LTM2987 only.
+                       LTC2972, LTC2974, LTC2975, LTC2977, LTM2980, LTC2978,
+                       LTC2979, and LTM2987 only.
 
 temp[N]_max_alarm      Temperature high alarm.
 
@@ -269,8 +358,8 @@ temp[N]_crit_alarm  Temperature critical high alarm.
 
 temp[N]_lowest         Lowest measured temperature.
 
-                       - LTC2974, LTC2975, LTC2977, LTM2980, LTC2978, and
-                         LTM2987 only.
+                       - LTC2972, LTC2974, LTC2975, LTC2977, LTM2980, LTC2978,
+                         LTC2979, and LTM2987 only.
                        - Not supported for chip temperature sensor on LTC2974
                          and LTC2975.
 
@@ -290,19 +379,22 @@ power1_input              Measured input power.
 
 power[N]_label         "pout[1-4]".
 
+                       - LTC2972: N=1-2
                        - LTC2974, LTC2975: N=1-4
-                       - LTC2977, LTC2980, LTM2987: Not supported
+                       - LTC2977, LTC2979, LTC2980, LTM2987: Not supported
                        - LTC2978: Not supported
-                       - LTC3880, LTC3882, LTC3886, LTC3887, LTM4675, LTM4676:
-                         N=1-2
+                       - LTC3880, LTC3882, LTC3884, LTC3886, LTC3887, LTC3889,
+                         LTM4664, LTM4675, LTM4676, LTM4677, LTM4678, LTM4680,
+                         LTM4700: N=1-2
                        - LTC3883: N=2
 
 power[N]_input         Measured output power.
 
 curr1_label            "iin".
 
-                       LTC3880, LTC3883, LTC3886, LTC3887, LTM4675,
-                       and LTM4676 only.
+                       LTC3880, LTC3883, LTC3884, LTC3886, LTC3887, LTC3889,
+                       LTM4644, LTM4675, LTM4676, LTM4677, LTM4678, LTM4680,
+                       and LTM4700 only.
 
 curr1_input            Measured input current.
 
@@ -320,11 +412,13 @@ curr1_reset_history       Reset input current history.
 
 curr[N]_label          "iout[1-4]".
 
+                       - LTC2972: N-1-2
                        - LTC2974, LTC2975: N=1-4
-                       - LTC2977, LTC2980, LTM2987: not supported
+                       - LTC2977, LTC2979, LTC2980, LTM2987: not supported
                        - LTC2978: not supported
-                       - LTC3880, LTC3882, LTC3886, LTC3887, LTM4675, LTM4676:
-                         N=2-3
+                       - LTC3880, LTC3882, LTC3884, LTC3886, LTC3887, LTC3889,
+                         LTM4664, LTM4675, LTM4676, LTM4677, LTM4678, LTM4680,
+                         LTM4700: N=2-3
                        - LTC3883: N=2
 
 curr[N]_input          Measured output current.
@@ -335,7 +429,7 @@ curr[N]_crit                Critical high output current.
 
 curr[N]_lcrit          Critical low output current.
 
-                       LTC2974 and LTC2975 only.
+                       LTC2972, LTC2974 and LTC2975 only.
 
 curr[N]_max_alarm      Output current high alarm.
 
@@ -343,11 +437,11 @@ curr[N]_crit_alarm        Output current critical high alarm.
 
 curr[N]_lcrit_alarm    Output current critical low alarm.
 
-                       LTC2974 and LTC2975 only.
+                       LTC2972, LTC2974 and LTC2975 only.
 
 curr[N]_lowest         Lowest output current.
 
-                       LTC2974 and LTC2975 only.
+                       LTC2972, LTC2974 and LTC2975 only.
 
 curr[N]_highest                Highest output current.
 
index a9ea062..21b9160 100644 (file)
@@ -113,8 +113,8 @@ config SENSORS_LTC2978
        tristate "Linear Technologies LTC2978 and compatibles"
        help
          If you say yes here you get hardware monitoring support for Linear
-         Technology LTC2974, LTC2975, LTC2977, LTC2978, LTC2980, LTC3880,
-         LTC3883, LTC3886, LTC3887, LTCM2987, LTM4675, and LTM4676.
+         Technology LTC2972, LTC2974, LTC2975, LTC2977, LTC2978, LTC2979,
+         LTC2980, and LTM2987.
 
          This driver can also be built as a module. If so, the module will
          be called ltc2978.
@@ -123,9 +123,10 @@ config SENSORS_LTC2978_REGULATOR
        bool "Regulator support for LTC2978 and compatibles"
        depends on SENSORS_LTC2978 && REGULATOR
        help
-         If you say yes here you get regulator support for Linear
-         Technology LTC2974, LTC2977, LTC2978, LTC3880, LTC3883, LTM4676
-         and LTM4686.
+         If you say yes here you get regulator support for Linear Technology
+         LTC3880, LTC3883, LTC3884, LTC3886, LTC3887, LTC3889, LTC7880, 
+         LTM4644, LTM4675, LTM4676, LTM4677, LTM4678, LTM4680, LTM4686, 
+         and LTM4700.
 
 config SENSORS_LTC3815
        tristate "Linear Technologies LTC3815"
index a91ed01..2da6692 100644 (file)
 #include <linux/regulator/driver.h>
 #include "pmbus.h"
 
-enum chips { ltc2974, ltc2975, ltc2977, ltc2978, ltc2980, ltc3880, ltc3882,
-       ltc3883, ltc3886, ltc3887, ltm2987, ltm4675, ltm4676, ltm4686 };
+enum chips {
+       /* Managers */
+       ltc2972, ltc2974, ltc2975, ltc2977, ltc2978, ltc2979, ltc2980,
+       /* Controllers */
+       ltc3880, ltc3882, ltc3883, ltc3884, ltc3886, ltc3887, ltc3889, ltc7880,
+       /* Modules */
+       ltm2987, ltm4664, ltm4675, ltm4676, ltm4677, ltm4678, ltm4680, ltm4686,
+       ltm4700,
+};
 
 /* Common for all chips */
 #define LTC2978_MFR_VOUT_PEAK          0xdd
@@ -43,9 +50,10 @@ enum chips { ltc2974, ltc2975, ltc2977, ltc2978, ltc2980, ltc3880, ltc3882,
 #define LTC3880_MFR_CLEAR_PEAKS                0xe3
 #define LTC3880_MFR_TEMPERATURE2_PEAK  0xf4
 
-/* LTC3883 and LTC3886 only */
+/* LTC3883, LTC3884, LTC3886, LTC3889 and LTC7880 only */
 #define LTC3883_MFR_IIN_PEAK           0xe1
 
+
 /* LTC2975 only */
 #define LTC2975_MFR_IIN_PEAK           0xc4
 #define LTC2975_MFR_IIN_MIN            0xc5
@@ -54,27 +62,41 @@ enum chips { ltc2974, ltc2975, ltc2977, ltc2978, ltc2980, ltc3880, ltc3882,
 
 #define LTC2978_ID_MASK                        0xfff0
 
+#define LTC2972_ID                     0x0310
 #define LTC2974_ID                     0x0210
 #define LTC2975_ID                     0x0220
 #define LTC2977_ID                     0x0130
 #define LTC2978_ID_REV1                        0x0110  /* Early revision */
 #define LTC2978_ID_REV2                        0x0120
+#define LTC2979_ID_A                   0x8060
+#define LTC2979_ID_B                   0x8070
 #define LTC2980_ID_A                   0x8030  /* A/B for two die IDs */
 #define LTC2980_ID_B                   0x8040
 #define LTC3880_ID                     0x4020
 #define LTC3882_ID                     0x4200
 #define LTC3882_ID_D1                  0x4240  /* Dash 1 */
 #define LTC3883_ID                     0x4300
+#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 LTC7880_ID                     0x49E0
+#define LTM4664_ID                     0x4120
 #define LTM4675_ID                     0x47a0
 #define LTM4676_ID_REV1                        0x4400
 #define LTM4676_ID_REV2                        0x4480
 #define LTM4676A_ID                    0x47e0
+#define LTM4677_ID_REV1                        0x47B0
+#define LTM4677_ID_REV2                        0x47D0
+#define LTM4678_ID_REV1                        0x4100
+#define LTM4678_ID_REV2                        0x4110
+#define LTM4680_ID                     0x4140
 #define LTM4686_ID                     0x4770
+#define LTM4700_ID                     0x4130
 
+#define LTC2972_NUM_PAGES              2
 #define LTC2974_NUM_PAGES              4
 #define LTC2978_NUM_PAGES              8
 #define LTC3880_NUM_PAGES              2
@@ -492,20 +514,30 @@ static int ltc2978_write_word_data(struct i2c_client *client, int page,
 }
 
 static const struct i2c_device_id ltc2978_id[] = {
+       {"ltc2972", ltc2972},
        {"ltc2974", ltc2974},
        {"ltc2975", ltc2975},
        {"ltc2977", ltc2977},
        {"ltc2978", ltc2978},
+       {"ltc2979", ltc2979},
        {"ltc2980", ltc2980},
        {"ltc3880", ltc3880},
        {"ltc3882", ltc3882},
        {"ltc3883", ltc3883},
+       {"ltc3884", ltc3884},
        {"ltc3886", ltc3886},
        {"ltc3887", ltc3887},
+       {"ltc3889", ltc3889},
+       {"ltc7880", ltc7880},
        {"ltm2987", ltm2987},
+       {"ltm4664", ltm4664},
        {"ltm4675", ltm4675},
        {"ltm4676", ltm4676},
+       {"ltm4677", ltm4677},
+       {"ltm4678", ltm4678},
+       {"ltm4680", ltm4680},
        {"ltm4686", ltm4686},
+       {"ltm4700", ltm4700},
        {}
 };
 MODULE_DEVICE_TABLE(i2c, ltc2978_id);
@@ -555,7 +587,9 @@ static int ltc2978_get_id(struct i2c_client *client)
 
        chip_id &= LTC2978_ID_MASK;
 
-       if (chip_id == LTC2974_ID)
+       if (chip_id == LTC2972_ID)
+               return ltc2972;
+       else if (chip_id == LTC2974_ID)
                return ltc2974;
        else if (chip_id == LTC2975_ID)
                return ltc2975;
@@ -563,6 +597,8 @@ static int ltc2978_get_id(struct i2c_client *client)
                return ltc2977;
        else if (chip_id == LTC2978_ID_REV1 || chip_id == LTC2978_ID_REV2)
                return ltc2978;
+       else if (chip_id == LTC2979_ID_A || chip_id == LTC2979_ID_B)
+               return ltc2979;
        else if (chip_id == LTC2980_ID_A || chip_id == LTC2980_ID_B)
                return ltc2980;
        else if (chip_id == LTC3880_ID)
@@ -571,19 +607,35 @@ static int ltc2978_get_id(struct i2c_client *client)
                return ltc3882;
        else if (chip_id == LTC3883_ID)
                return ltc3883;
+       else if (chip_id == LTC3884_ID)
+               return ltc3884;
        else if (chip_id == LTC3886_ID)
                return ltc3886;
        else if (chip_id == LTC3887_ID)
                return ltc3887;
+       else if (chip_id == LTC3889_ID)
+               return ltc3889;
+       else if (chip_id == LTC7880_ID)
+               return ltc7880;
        else if (chip_id == LTM2987_ID_A || chip_id == LTM2987_ID_B)
                return ltm2987;
+       else if (chip_id == LTM4664_ID)
+               return ltm4664;
        else if (chip_id == LTM4675_ID)
                return ltm4675;
        else if (chip_id == LTM4676_ID_REV1 || chip_id == LTM4676_ID_REV2 ||
                 chip_id == LTM4676A_ID)
                return ltm4676;
+       else if (chip_id == LTM4677_ID_REV1 || chip_id == LTM4677_ID_REV2)
+               return ltm4677;
+       else if (chip_id == LTM4678_ID_REV1 || chip_id == LTM4678_ID_REV2)
+               return ltm4678;
+       else if (chip_id == LTM4680_ID)
+               return ltm4680;
        else if (chip_id == LTM4686_ID)
                return ltm4686;
+       else if (chip_id == LTM4700_ID)
+               return ltm4700;
 
        dev_err(&client->dev, "Unsupported chip ID 0x%x\n", chip_id);
        return -ENODEV;
@@ -637,6 +689,19 @@ static int ltc2978_probe(struct i2c_client *client,
        data->temp2_max = 0x7c00;
 
        switch (data->id) {
+       case ltc2972:
+               info->read_word_data = ltc2975_read_word_data;
+               info->pages = LTC2972_NUM_PAGES;
+               info->func[0] = PMBUS_HAVE_IIN | PMBUS_HAVE_PIN
+                 | PMBUS_HAVE_VIN | PMBUS_HAVE_STATUS_INPUT
+                 | PMBUS_HAVE_TEMP2;
+               for (i = 0; i < info->pages; i++) {
+                       info->func[i] |= PMBUS_HAVE_VOUT
+                         | PMBUS_HAVE_STATUS_VOUT | PMBUS_HAVE_POUT
+                         | PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP
+                         | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT;
+               }
+               break;
        case ltc2974:
                info->read_word_data = ltc2974_read_word_data;
                info->pages = LTC2974_NUM_PAGES;
@@ -662,8 +727,10 @@ static int ltc2978_probe(struct i2c_client *client,
                          | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT;
                }
                break;
+
        case ltc2977:
        case ltc2978:
+       case ltc2979:
        case ltc2980:
        case ltm2987:
                info->read_word_data = ltc2978_read_word_data;
@@ -680,6 +747,7 @@ static int ltc2978_probe(struct i2c_client *client,
        case ltc3887:
        case ltm4675:
        case ltm4676:
+       case ltm4677:
        case ltm4686:
                data->features |= FEAT_CLEAR_PEAKS | FEAT_NEEDS_POLLING;
                info->read_word_data = ltc3880_read_word_data;
@@ -721,7 +789,14 @@ static int ltc2978_probe(struct i2c_client *client,
                  | PMBUS_HAVE_PIN | PMBUS_HAVE_POUT | PMBUS_HAVE_TEMP
                  | PMBUS_HAVE_TEMP2 | PMBUS_HAVE_STATUS_TEMP;
                break;
+       case ltc3884:
        case ltc3886:
+       case ltc3889:
+       case ltc7880:
+       case ltm4664:
+       case ltm4678:
+       case ltm4680:
+       case ltm4700:
                data->features |= FEAT_CLEAR_PEAKS | FEAT_NEEDS_POLLING;
                info->read_word_data = ltc3883_read_word_data;
                info->pages = LTC3880_NUM_PAGES;
@@ -752,22 +827,33 @@ static int ltc2978_probe(struct i2c_client *client,
        return pmbus_do_probe(client, id, info);
 }
 
+
 #ifdef CONFIG_OF
 static const struct of_device_id ltc2978_of_match[] = {
+       { .compatible = "lltc,ltc2972" },
        { .compatible = "lltc,ltc2974" },
        { .compatible = "lltc,ltc2975" },
        { .compatible = "lltc,ltc2977" },
        { .compatible = "lltc,ltc2978" },
+       { .compatible = "lltc,ltc2979" },
        { .compatible = "lltc,ltc2980" },
        { .compatible = "lltc,ltc3880" },
        { .compatible = "lltc,ltc3882" },
        { .compatible = "lltc,ltc3883" },
+       { .compatible = "lltc,ltc3884" },
        { .compatible = "lltc,ltc3886" },
        { .compatible = "lltc,ltc3887" },
+       { .compatible = "lltc,ltc3889" },
+       { .compatible = "lltc,ltc7880" },
        { .compatible = "lltc,ltm2987" },
+       { .compatible = "lltc,ltm4664" },
        { .compatible = "lltc,ltm4675" },
        { .compatible = "lltc,ltm4676" },
+       { .compatible = "lltc,ltm4677" },
+       { .compatible = "lltc,ltm4678" },
+       { .compatible = "lltc,ltm4680" },
        { .compatible = "lltc,ltm4686" },
+       { .compatible = "lltc,ltm4700" },
        { }
 };
 MODULE_DEVICE_TABLE(of, ltc2978_of_match);