diff --git a/Documentation/devicetree/bindings/hwmon/lltc,ltc2978.yaml b/Documentation/devicetree/bindings/hwmon/lltc,ltc2978.yaml index 9047665d740d96..c378f64d594f0b 100644 --- a/Documentation/devicetree/bindings/hwmon/lltc,ltc2978.yaml +++ b/Documentation/devicetree/bindings/hwmon/lltc,ltc2978.yaml @@ -37,6 +37,8 @@ properties: - lltc,ltm4677 - lltc,ltm4678 - lltc,ltm4680 + - lltc,ltm4681 + - lltc,ltm4682 - lltc,ltm4686 - lltc,ltm4700 @@ -60,6 +62,7 @@ properties: * ltm4664 : vout0 - vout1 * ltm4675, ltm4676, ltm4677, ltm4678 : vout0 - vout1 * ltm4680, ltm4686 : vout0 - vout1 + * ltm4681, ltm4682 : vout0 - vout1 * ltm4700 : vout0 - vout1 patternProperties: diff --git a/Documentation/hwmon/ltc2978.rst b/Documentation/hwmon/ltc2978.rst index 18d0b568a02a85..1dca908ef7a89e 100644 --- a/Documentation/hwmon/ltc2978.rst +++ b/Documentation/hwmon/ltc2978.rst @@ -207,6 +207,22 @@ Supported chips: Datasheet: https://www.analog.com/ltm4680 + * Analog Devices LTM4681 + + Prefix: 'ltm4681' + + Addresses scanned: - + + Datasheet: https://www.analog.com/ltm4681 + + * Analog Devices LTM4682 + + Prefix: 'ltm4682' + + Addresses scanned: - + + Datasheet: https://www.analog.com/ltm4682 + * Analog Devices LTM4686 Prefix: 'ltm4686' @@ -317,7 +333,7 @@ in[N]_label "vout[1-8]". - LTC2978: N=2-9 - LTC3880, LTC3882, LTC3884, LTC23886 LTC3887, LTC3889, LTC7880, LTM4644, LTM4675, LTM4676, LTM4677, LTM4678, - LTM4680, LTM4700: N=2-3 + LTM4680, LTM4682, LTM4681, LTM4700: N=2-3 - LTC3883: N=2 - LTC7841: N=2 @@ -359,8 +375,9 @@ temp[N]_input Measured temperature. 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. + LTM4681, LTM4682, 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. @@ -416,7 +433,7 @@ power[N]_label "pout[1-4]". - LTC2978: Not supported - LTC3880, LTC3882, LTC3884, LTC3886, LTC3887, LTC3889, LTM4664, LTM4675, LTM4676, LTM4677, LTM4678, LTM4680, - LTM4700: N=1-2 + LTM4681, LTM4682, LTM4700: N=1-2 - LTC3883: N=2 power[N]_input Measured output power. @@ -425,7 +442,7 @@ curr1_label "iin". LT7170, LT7171, LTC3880, LTC3883, LTC3884, LTC3886, LTC3887, LTC3889, LTM4644, LTM4675, LTM4676, LTM4677, - LTM4678, LTM4680, and LTM4700 only. + LTM4678, LTM4680, LTM4681, LTM4682, and LTM4700 only. curr1_input Measured input current. @@ -450,7 +467,7 @@ curr[N]_label "iout[1-4]". - LTC2978: not supported - LTC3880, LTC3882, LTC3884, LTC3886, LTC3887, LTC3889, LTM4664, LTM4675, LTM4676, LTM4677, LTM4678, LTM4680, - LTM4700: N=2-3 + LTM4681, LTM4682, LTM4700: N=2-3 - LTC3883: N=2 - LTC7841: N=2 diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig index 9bb23f03231671..6d66dfd31acae1 100644 --- a/drivers/hwmon/pmbus/Kconfig +++ b/drivers/hwmon/pmbus/Kconfig @@ -253,7 +253,7 @@ config SENSORS_LTC2978_REGULATOR If you say yes here you get regulator support for Linear Technology LT7170, LT7171, LTC3880, LTC3883, LTC3884, LTC3886, LTC3887, LTC3889, LTC7841, LTC7880, LTM4644, LTM4675, LTM4676, LTM4677, LTM4678, LTM4680, - LTM4686, and LTM4700. + LTM4681, LTM4682, TM4686, and LTM4700. config SENSORS_LTC3815 tristate "Linear Technologies LTC3815" diff --git a/drivers/hwmon/pmbus/ltc2978.c b/drivers/hwmon/pmbus/ltc2978.c index 9ef75f96f5f32d..1975e373cbe916 100644 --- a/drivers/hwmon/pmbus/ltc2978.c +++ b/drivers/hwmon/pmbus/ltc2978.c @@ -26,8 +26,8 @@ enum chips { lt7170, lt7171, ltc3880, ltc3882, ltc3883, ltc3884, ltc3886, ltc3887, ltc3889, ltc7132, ltc7841, ltc7880, /* Modules */ - ltm2987, ltm4664, ltm4675, ltm4676, ltm4677, ltm4678, ltm4680, ltm4686, - ltm4700, + ltm2987, ltm4664, ltm4675, ltm4676, ltm4677, ltm4678, ltm4680, ltm4681, + ltm4682, ltm4686, ltm4700, }; /* Common for all chips */ @@ -46,12 +46,12 @@ enum chips { #define LTC2974_MFR_IOUT_PEAK 0xd7 #define LTC2974_MFR_IOUT_MIN 0xd8 -/* LTC3880, LTC3882, LTC3883, LTC3887, LTM4675, LTM4676, LTC7132 */ +/* LTC3880, LTC3882, LTC3883, LTC3887, LTM4675, LTM4676, LTC7132, LTM4681 and LTM4682 */ #define LTC3880_MFR_IOUT_PEAK 0xd7 #define LTC3880_MFR_CLEAR_PEAKS 0xe3 -#define LTC3880_MFR_TEMPERATURE2_PEAK 0xf4 +#define LTC3880_MFR_TEMPERATURE2_PEAK 0xf4 /* Undocumented on LTM4682 */ -/* LTC3883, LTC3884, LTC3886, LTC3889, LTC7132, LTC7841 and LTC7880 */ +/* LTC3883, LTC3884, LTC3886, LTC3889, LTC7132, LTC7841, LTC7880, LTM4681, and LTM4682 */ #define LTC3883_MFR_IIN_PEAK 0xe1 /* LTC2975 only */ @@ -96,6 +96,8 @@ enum chips { #define LTM4678_ID_REV1 0x4100 #define LTM4678_ID_REV2 0x4110 #define LTM4680_ID 0x4140 +#define LTM4681_ID 0x4140 +#define LTM4682_ID 0x4180 #define LTM4686_ID 0x4770 #define LTM4700_ID 0x4130 @@ -562,6 +564,8 @@ static const struct i2c_device_id ltc2978_id[] = { {"ltm4677", ltm4677}, {"ltm4678", ltm4678}, {"ltm4680", ltm4680}, + {"ltm4681", ltm4681}, + {"ltm4682", ltm4682}, {"ltm4686", ltm4686}, {"ltm4700", ltm4700}, {} @@ -696,8 +700,10 @@ static int ltc2978_get_id(struct i2c_client *client) return ltm4677; else if (chip_id == LTM4678_ID_REV1 || chip_id == LTM4678_ID_REV2) return ltm4678; - else if (chip_id == LTM4680_ID) + else if (chip_id == LTM4680_ID || chip_id == LTM4681_ID) return ltm4680; + else if (chip_id == LTM4682_ID) + return ltm4682; else if (chip_id == LTM4686_ID) return ltm4686; else if (chip_id == LTM4700_ID) @@ -880,6 +886,7 @@ static int ltc2978_probe(struct i2c_client *client) case ltm4664: case ltm4678: case ltm4680: + case ltm4682: case ltm4700: data->features |= FEAT_CLEAR_PEAKS | FEAT_NEEDS_POLLING; info->read_word_data = ltc3883_read_word_data; @@ -969,6 +976,8 @@ static const struct of_device_id ltc2978_of_match[] = { { .compatible = "lltc,ltm4677" }, { .compatible = "lltc,ltm4678" }, { .compatible = "lltc,ltm4680" }, + { .compatible = "lltc,ltm4681" }, + { .compatible = "lltc,ltm4682" }, { .compatible = "lltc,ltm4686" }, { .compatible = "lltc,ltm4700" }, { }