* [PATCH v2 1/4] dt-bindings: hwmon: ltc2978: Add support for LT7175 and LT7176P
2026-11-10 10:00 [PATCH v2 0/4] hwmon: (pmbus/ltc2978) Add support for LT7175 and LT7176P Christopher de Guzman
@ 2026-11-10 10:00 ` Christopher de Guzman
2026-11-10 10:03 ` sashiko-bot
2026-11-11 12:05 ` Krzysztof Kozlowski
2026-11-10 10:00 ` [PATCH v2 2/4] hwmon: (pmbus/ltc2978) " Christopher de Guzman
` (2 subsequent siblings)
3 siblings, 2 replies; 10+ messages in thread
From: Christopher de Guzman @ 2026-11-10 10:00 UTC (permalink / raw)
To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Frank Li, Jonathan Corbet, Shuah Khan, Randy Dunlap
Cc: linux-hwmon, devicetree, linux-kernel, linux-doc,
Christopher de Guzman
Document the compatible strings for the LT7175 and LT7176P PMBus buck
regulators supported by the ltc2978 driver.
Signed-off-by: Christopher de Guzman <christopher.deguzman@analog.com>
---
Documentation/devicetree/bindings/hwmon/lltc,ltc2978.yaml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/hwmon/lltc,ltc2978.yaml b/Documentation/devicetree/bindings/hwmon/lltc,ltc2978.yaml
index ea8b1553a3e9..04c8e68d3b39 100644
--- a/Documentation/devicetree/bindings/hwmon/lltc,ltc2978.yaml
+++ b/Documentation/devicetree/bindings/hwmon/lltc,ltc2978.yaml
@@ -14,6 +14,8 @@ properties:
enum:
- lltc,lt7170
- lltc,lt7171
+ - lltc,lt7175
+ - lltc,lt7176p
- lltc,ltc2972
- lltc,ltc2974
- lltc,ltc2975
@@ -50,7 +52,7 @@ properties:
description: |
list of regulators provided by this controller.
Valid names of regulators depend on number of supplies supported per device:
- * lt7170, lt7171 : vout0
+ * lt7170, lt7171, lt7175, lt7176p : vout0
* ltc2972 vout0 - vout1
* ltc2974, ltc2975 : vout0 - vout3
* ltc2977, ltc2979, ltc2980, ltm2987 : vout0 - vout7
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 2/4] hwmon: (pmbus/ltc2978) Add support for LT7175 and LT7176P
2026-11-10 10:00 [PATCH v2 0/4] hwmon: (pmbus/ltc2978) Add support for LT7175 and LT7176P Christopher de Guzman
2026-11-10 10:00 ` [PATCH v2 1/4] dt-bindings: hwmon: ltc2978: " Christopher de Guzman
@ 2026-11-10 10:00 ` Christopher de Guzman
2026-11-10 10:14 ` sashiko-bot
2026-11-10 10:00 ` [PATCH v2 3/4] hwmon: ltc2978: Document LT7175 and LT7176P support Christopher de Guzman
2026-11-10 10:00 ` [PATCH v2 4/4] hwmon: ltc2978: Remove LT7170 and LT7171 from curr1 iin documentation Christopher de Guzman
3 siblings, 1 reply; 10+ messages in thread
From: Christopher de Guzman @ 2026-11-10 10:00 UTC (permalink / raw)
To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Frank Li, Jonathan Corbet, Shuah Khan, Randy Dunlap
Cc: linux-hwmon, devicetree, linux-kernel, linux-doc,
Christopher de Guzman
Add support for the LT7175 and LT7176P PMBus buck regulators. Both
share the LT7170 family MFR_SPECIAL_ID (0x1C1D, masked to 0x1C10) and
use the same register layout and configuration as LT7170/LT7171.
Chips in this family are distinguished by their PMBUS_IC_DEVICE_ID
string. Instead of adding another strncmp() per chip, match the
returned string against ltc2978_id[], as is already done for the
PMBUS_MFR_MODEL fallback. Only entries whose name fits within the
returned data are compared, so the buffer is never read past the
returned length. Suffixed variants such as LT7175-1 match their base
entry.
Signed-off-by: Christopher de Guzman <christopher.deguzman@analog.com>
---
drivers/hwmon/pmbus/Kconfig | 6 +++---
drivers/hwmon/pmbus/ltc2978.c | 23 ++++++++++++++---------
2 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
index fd6641316454..63fb4d5dd87d 100644
--- a/drivers/hwmon/pmbus/Kconfig
+++ b/drivers/hwmon/pmbus/Kconfig
@@ -306,9 +306,9 @@ config SENSORS_LTC2978_REGULATOR
depends on SENSORS_LTC2978 && REGULATOR
help
If you say yes here you get regulator support for Linear Technology
- LT7170, LT7171, LTC3880, LTC3883, LTC3884, LTC3886, LTC3887, LTC3889,
- LTC7841, LTC7880, LTM4644, LTM4673, LTM4675, LTM4676, LTM4677,
- LTM4678, LTM4680, LTM4686, and LTM4700.
+ LT7170, LT7171, LT7175, LT7176P, LTC3880, LTC3883, LTC3884, LTC3886,
+ LTC3887, LTC3889, LTC7841, LTC7880, LTM4644, LTM4673, LTM4675, LTM4676,
+ LTM4677, LTM4678, LTM4680, LTM4686, and LTM4700.
config SENSORS_LTC3815
tristate "Linear Technologies LTC3815"
diff --git a/drivers/hwmon/pmbus/ltc2978.c b/drivers/hwmon/pmbus/ltc2978.c
index aea7b6c93e74..888db3213a01 100644
--- a/drivers/hwmon/pmbus/ltc2978.c
+++ b/drivers/hwmon/pmbus/ltc2978.c
@@ -23,8 +23,8 @@ enum chips {
/* Managers */
ltc2972, ltc2974, ltc2975, ltc2977, ltc2978, ltc2979, ltc2980,
/* Controllers */
- lt7170, lt7171, ltc3880, ltc3882, ltc3883, ltc3884, ltc3886, ltc3887,
- ltc3889, ltc7132, ltc7841, ltc7880,
+ lt7170, lt7171, lt7175, lt7176p, ltc3880, ltc3882, ltc3883, ltc3884,
+ ltc3886, ltc3887, ltc3889, ltc7132, ltc7841, ltc7880,
/* Modules */
ltm2987, ltm4664, ltm4673, ltm4675, ltm4676, ltm4677, ltm4678, ltm4680,
ltm4686, ltm4700,
@@ -540,6 +540,8 @@ static int ltc2978_write_word_data(struct i2c_client *client, int page,
static const struct i2c_device_id ltc2978_id[] = {
{ .name = "lt7170", .driver_data = lt7170 },
{ .name = "lt7171", .driver_data = lt7171 },
+ { .name = "lt7175", .driver_data = lt7175 },
+ { .name = "lt7176p", .driver_data = lt7176p },
{ .name = "ltc2972", .driver_data = ltc2972 },
{ .name = "ltc2974", .driver_data = ltc2974 },
{ .name = "ltc2975", .driver_data = ltc2975 },
@@ -630,6 +632,7 @@ static int ltc2978_get_id(struct i2c_client *client)
chip_id &= LTC2978_ID_MASK;
if (chip_id == LT7170_ID) {
+ const struct i2c_device_id *id;
u8 buf[I2C_SMBUS_BLOCK_MAX];
int ret;
@@ -638,13 +641,11 @@ static int ltc2978_get_id(struct i2c_client *client)
if (ret < 0)
return ret;
- if (ret < 6)
- return -ENODEV;
-
- if (!strncmp(buf, "LT7170", 6))
- return lt7170;
- if (!strncmp(buf, "LT7171", 6))
- return lt7171;
+ for (id = <c2978_id[0]; strlen(id->name); id++) {
+ if (ret >= strlen(id->name) &&
+ !strncasecmp(id->name, buf, strlen(id->name)))
+ return (int)id->driver_data;
+ }
return -ENODEV;
}
@@ -762,6 +763,8 @@ static int ltc2978_probe(struct i2c_client *client)
switch (data->id) {
case lt7170:
case lt7171:
+ case lt7175:
+ case lt7176p:
data->features |= FEAT_CLEAR_PEAKS | FEAT_NEEDS_POLLING;
info->read_word_data = ltc3883_read_word_data;
info->pages = LTC3883_NUM_PAGES;
@@ -962,6 +965,8 @@ static int ltc2978_probe(struct i2c_client *client)
static const struct of_device_id ltc2978_of_match[] = {
{ .compatible = "lltc,lt7170" },
{ .compatible = "lltc,lt7171" },
+ { .compatible = "lltc,lt7175" },
+ { .compatible = "lltc,lt7176p" },
{ .compatible = "lltc,ltc2972" },
{ .compatible = "lltc,ltc2974" },
{ .compatible = "lltc,ltc2975" },
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 3/4] hwmon: ltc2978: Document LT7175 and LT7176P support
2026-11-10 10:00 [PATCH v2 0/4] hwmon: (pmbus/ltc2978) Add support for LT7175 and LT7176P Christopher de Guzman
2026-11-10 10:00 ` [PATCH v2 1/4] dt-bindings: hwmon: ltc2978: " Christopher de Guzman
2026-11-10 10:00 ` [PATCH v2 2/4] hwmon: (pmbus/ltc2978) " Christopher de Guzman
@ 2026-11-10 10:00 ` Christopher de Guzman
2026-11-10 10:18 ` sashiko-bot
2026-11-10 10:00 ` [PATCH v2 4/4] hwmon: ltc2978: Remove LT7170 and LT7171 from curr1 iin documentation Christopher de Guzman
3 siblings, 1 reply; 10+ messages in thread
From: Christopher de Guzman @ 2026-11-10 10:00 UTC (permalink / raw)
To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Frank Li, Jonathan Corbet, Shuah Khan, Randy Dunlap
Cc: linux-hwmon, devicetree, linux-kernel, linux-doc,
Christopher de Guzman
Document support for the LT7175 and LT7176P PMBus buck regulators.
Signed-off-by: Christopher de Guzman <christopher.deguzman@analog.com>
---
Documentation/hwmon/ltc2978.rst | 26 ++++++++++++++++++++++----
1 file changed, 22 insertions(+), 4 deletions(-)
diff --git a/Documentation/hwmon/ltc2978.rst b/Documentation/hwmon/ltc2978.rst
index 0b72d566cac7..9e8448a9c1ed 100644
--- a/Documentation/hwmon/ltc2978.rst
+++ b/Documentation/hwmon/ltc2978.rst
@@ -21,6 +21,22 @@ Supported chips:
Datasheet: https://www.analog.com/en/products/lt7171.html
+ * Analog Devices LT7175
+
+ Prefix: 'lt7175'
+
+ Addresses scanned: -
+
+ Datasheet: https://www.analog.com/en/products/lt7175.html
+
+ * Analog Devices LT7176P
+
+ Prefix: 'lt7176p'
+
+ Addresses scanned: -
+
+ Datasheet: https://www.analog.com/en/products/lt7176p.html
+
* Linear Technology LTC2972
Prefix: 'ltc2972'
@@ -241,6 +257,8 @@ Description
- LT7170 and LT7171 are 20 A, 16 V, single- or dual-phase Silent Switcher
- step-down regulators with Digital Power System Management.
+- LT7175 and LT7176P are 24 A, 4 V, single-phase Silent Switcher step-down
+- regulators with Digital Power System Management.
- LTC2974 and LTC2975 are quad digital power supply managers.
- LTC2978 is an octal power supply monitor.
- LTC2977 is a pin compatible replacement for LTC2978.
@@ -318,7 +336,7 @@ in1_reset_history Reset input voltage history.
in[N]_label "vout[1-8]".
- - LT7170, LT7171: N=2
+ - LT7170, LT7171, LT7175, LT7176P: N=2
- LTC2972: N=2-3
- LTC2974, LTC2975: N=2-5
- LTC2977, LTC2979, LTC2980, LTM2987: N=2-9
@@ -357,8 +375,8 @@ in[N]_reset_history Reset output voltage history.
temp[N]_input Measured temperature.
- - On LT7170 and LT7171, temp1 reports the chip
- temperature.
+ - On LT7170, LT7171, LT7175, and LT7176P, temp1 reports
+ the chip 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
@@ -452,7 +470,7 @@ curr1_reset_history Reset input current history.
curr[N]_label "iout[1-4]".
- - LT7170, LT7171: N=1
+ - LT7170, LT7171, LT7175, LT7176P: N=1
- LTC2972: N-1-2
- LTC2974, LTC2975: N=1-4
- LTC2977, LTC2979, LTC2980, LTM2987: not supported
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 4/4] hwmon: ltc2978: Remove LT7170 and LT7171 from curr1 iin documentation
2026-11-10 10:00 [PATCH v2 0/4] hwmon: (pmbus/ltc2978) Add support for LT7175 and LT7176P Christopher de Guzman
` (2 preceding siblings ...)
2026-11-10 10:00 ` [PATCH v2 3/4] hwmon: ltc2978: Document LT7175 and LT7176P support Christopher de Guzman
@ 2026-11-10 10:00 ` Christopher de Guzman
2026-11-10 10:18 ` sashiko-bot
3 siblings, 1 reply; 10+ messages in thread
From: Christopher de Guzman @ 2026-11-10 10:00 UTC (permalink / raw)
To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Frank Li, Jonathan Corbet, Shuah Khan, Randy Dunlap
Cc: linux-hwmon, devicetree, linux-kernel, linux-doc,
Christopher de Guzman
LT7170 and LT7171 do not set PMBUS_HAVE_IIN, so curr1 reports the
output current ("iout1") rather than the input current. Remove them
from the list of chips with an "iin" curr1_label.
Signed-off-by: Christopher de Guzman <christopher.deguzman@analog.com>
---
Documentation/hwmon/ltc2978.rst | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/Documentation/hwmon/ltc2978.rst b/Documentation/hwmon/ltc2978.rst
index 9e8448a9c1ed..7a95aefda301 100644
--- a/Documentation/hwmon/ltc2978.rst
+++ b/Documentation/hwmon/ltc2978.rst
@@ -450,9 +450,9 @@ power[N]_input Measured output power.
curr1_label "iin".
- LT7170, LT7171, LTC3880, LTC3883, LTC3884, LTC3886,
- LTC3887, LTC3889, LTM4644, LTM4675, LTM4676, LTM4677,
- LTM4678, LTM4680, and LTM4700 only.
+ LTC3880, LTC3883, LTC3884, LTC3886, LTC3887, LTC3889,
+ LTM4644, LTM4675, LTM4676, LTM4677, LTM4678, LTM4680,
+ and LTM4700 only.
curr1_input Measured input current.
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread