* [PATCH 0/2] Add support for MAX17616/MAX17616A hwmon device
@ 2025-09-30 5:02 Kim Seer Paller
2025-09-30 5:02 ` [PATCH 1/2] dt-bindings: hwmon: pmbus: add max17616 Kim Seer Paller
2025-09-30 5:02 ` [PATCH 2/2] hwmon: (pmbus/max17616): add driver for max17616 Kim Seer Paller
0 siblings, 2 replies; 9+ messages in thread
From: Kim Seer Paller @ 2025-09-30 5:02 UTC (permalink / raw)
To: Kim Seer Paller, Guenter Roeck, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Jonathan Corbet
Cc: linux-hwmon, devicetree, linux-kernel, linux-doc
The MAX17616/MAX17616A is a current-limiter with overvoltage/surge,
undervoltage, reverse polarity, loss of ground protection with PMBus
interface. The PMBus interface allows monitoring of input/output
voltages, output current and temperature.
More info: https://www.analog.com/media/en/technical-documentation/data-sheets/max17616-max17616a.pdf
Signed-off-by: Kim Seer Paller <kimseer.paller@analog.com>
---
Kim Seer Paller (2):
dt-bindings: hwmon: pmbus: add max17616
hwmon: (pmbus/max17616): add driver for max17616
.../bindings/hwmon/pmbus/adi,max17616.yaml | 48 ++++++++++++++
Documentation/hwmon/index.rst | 1 +
Documentation/hwmon/max17616.rst | 62 ++++++++++++++++++
MAINTAINERS | 9 +++
drivers/hwmon/pmbus/Kconfig | 9 +++
drivers/hwmon/pmbus/Makefile | 1 +
drivers/hwmon/pmbus/max17616.c | 73 ++++++++++++++++++++++
7 files changed, 203 insertions(+)
---
base-commit: 76bb6969a8cfc5e00ca142fdad86ffd0a6ed9ecd
change-id: 20250930-upstream-max17616-cd10988eb77a
Best regards,
--
Kim Seer Paller <kimseer.paller@analog.com>
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH 1/2] dt-bindings: hwmon: pmbus: add max17616 2025-09-30 5:02 [PATCH 0/2] Add support for MAX17616/MAX17616A hwmon device Kim Seer Paller @ 2025-09-30 5:02 ` Kim Seer Paller 2025-09-30 18:54 ` Conor Dooley ` (2 more replies) 2025-09-30 5:02 ` [PATCH 2/2] hwmon: (pmbus/max17616): add driver for max17616 Kim Seer Paller 1 sibling, 3 replies; 9+ messages in thread From: Kim Seer Paller @ 2025-09-30 5:02 UTC (permalink / raw) To: Kim Seer Paller, Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet Cc: linux-hwmon, devicetree, linux-kernel, linux-doc Add device tree documentation for MAX17616/MAX17616A current-limiter with overvoltage/surge, undervoltage, reverse polarity, loss of ground protection with PMBus interface. Signed-off-by: Kim Seer Paller <kimseer.paller@analog.com> --- .../bindings/hwmon/pmbus/adi,max17616.yaml | 48 ++++++++++++++++++++++ MAINTAINERS | 7 ++++ 2 files changed, 55 insertions(+) diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/adi,max17616.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/adi,max17616.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4680d354af0ef706bbd90d2546f5f25149654b6c --- /dev/null +++ b/Documentation/devicetree/bindings/hwmon/pmbus/adi,max17616.yaml @@ -0,0 +1,48 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/hwmon/pmbus/adi,max17616.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Analog Devices MAX17616/MAX17616A Current-Limiter with PMBus Interface + +maintainers: + - Kim Seer Paller <kimseer.paller@analog.com> + +description: | + The MAX17616/MAX17616A is a 3V to 80V, 7A current-limiter with overvoltage, + surge, undervoltage, reverse polarity, and loss of ground protection. It allows + monitoring of input/output voltage, output current and temperature through the + PMBus serial interface. + Datasheet: + https://www.analog.com/en/products/max17616.html + +properties: + compatible: + const: adi,max17616 + + reg: + maxItems: 1 + + vcc-supply: true + +required: + - compatible + - reg + - vcc-supply + +additionalProperties: false + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + hwmon@16 { + compatible = "adi,max17616"; + reg = <0x16>; + vcc-supply = <&vcc>; + }; + }; +... diff --git a/MAINTAINERS b/MAINTAINERS index 8e314837eaa4168a66b9077dd8293433a378abe5..89d35faf93c9d2e984b73f5c09d09044ee6eddb2 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14917,6 +14917,13 @@ S: Maintained F: Documentation/hwmon/max15301.rst F: drivers/hwmon/pmbus/max15301.c +MAX17616 HARDWARE MONITOR DRIVER +M: Kim Seer Paller <kimseer.paller@analog.com> +L: linux-hwmon@vger.kernel.org +S: Supported +W: https://ez.analog.com/linux-software-drivers +F: Documentation/devicetree/bindings/hwmon/pmbus/adi,max17616.yaml + MAX2175 SDR TUNER DRIVER M: Ramesh Shanmugasundaram <rashanmu@gmail.com> L: linux-media@vger.kernel.org -- 2.34.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] dt-bindings: hwmon: pmbus: add max17616 2025-09-30 5:02 ` [PATCH 1/2] dt-bindings: hwmon: pmbus: add max17616 Kim Seer Paller @ 2025-09-30 18:54 ` Conor Dooley 2025-10-02 20:55 ` Guenter Roeck 2025-10-02 22:15 ` Marcelo Schmitt 2 siblings, 0 replies; 9+ messages in thread From: Conor Dooley @ 2025-09-30 18:54 UTC (permalink / raw) To: Kim Seer Paller Cc: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, linux-hwmon, devicetree, linux-kernel, linux-doc [-- Attachment #1: Type: text/plain, Size: 52 bytes --] Acked-by: Conor Dooley <conor.dooley@microchip.com> [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] dt-bindings: hwmon: pmbus: add max17616 2025-09-30 5:02 ` [PATCH 1/2] dt-bindings: hwmon: pmbus: add max17616 Kim Seer Paller 2025-09-30 18:54 ` Conor Dooley @ 2025-10-02 20:55 ` Guenter Roeck 2025-10-02 22:15 ` Marcelo Schmitt 2 siblings, 0 replies; 9+ messages in thread From: Guenter Roeck @ 2025-10-02 20:55 UTC (permalink / raw) To: Kim Seer Paller Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, linux-hwmon, devicetree, linux-kernel, linux-doc On Tue, Sep 30, 2025 at 01:02:20PM +0800, Kim Seer Paller wrote: > Add device tree documentation for MAX17616/MAX17616A current-limiter > with overvoltage/surge, undervoltage, reverse polarity, loss of ground > protection with PMBus interface. > > Signed-off-by: Kim Seer Paller <kimseer.paller@analog.com> > Acked-by: Conor Dooley <conor.dooley@microchip.com> Applied to hwmon-next. Thanks, Guenter ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] dt-bindings: hwmon: pmbus: add max17616 2025-09-30 5:02 ` [PATCH 1/2] dt-bindings: hwmon: pmbus: add max17616 Kim Seer Paller 2025-09-30 18:54 ` Conor Dooley 2025-10-02 20:55 ` Guenter Roeck @ 2025-10-02 22:15 ` Marcelo Schmitt 2 siblings, 0 replies; 9+ messages in thread From: Marcelo Schmitt @ 2025-10-02 22:15 UTC (permalink / raw) To: Kim Seer Paller Cc: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, linux-hwmon, devicetree, linux-kernel, linux-doc Hi Kim, For completeness, the dt doc could also have the SMBALERT interrupt. Though, I see the patch has been accepted and I don't want to make upstreaming take longer than needed. Maybe the comment below can be taken as follow up patch suggestion. Though, if you end up doing a v2 for any reason, you can add my review tag. Reviewed-by: Marcelo Schmitt <marcelo.schmitt@analog.com> On 09/30, Kim Seer Paller wrote: > Add device tree documentation for MAX17616/MAX17616A current-limiter > with overvoltage/surge, undervoltage, reverse polarity, loss of ground > protection with PMBus interface. > > Signed-off-by: Kim Seer Paller <kimseer.paller@analog.com> > --- > .../bindings/hwmon/pmbus/adi,max17616.yaml | 48 ++++++++++++++++++++++ > MAINTAINERS | 7 ++++ ... > +properties: > + compatible: > + const: adi,max17616 > + > + reg: > + maxItems: 1 > + > + vcc-supply: true interrupts: description: Fault condition signal provided on SMBALERT pin. maxItems: 1 > + > +required: > + - compatible > + - reg > + - vcc-supply > + Best regards, Marcelo ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/2] hwmon: (pmbus/max17616): add driver for max17616 2025-09-30 5:02 [PATCH 0/2] Add support for MAX17616/MAX17616A hwmon device Kim Seer Paller 2025-09-30 5:02 ` [PATCH 1/2] dt-bindings: hwmon: pmbus: add max17616 Kim Seer Paller @ 2025-09-30 5:02 ` Kim Seer Paller 2025-09-30 10:26 ` Guenter Roeck 2025-10-02 20:55 ` Guenter Roeck 1 sibling, 2 replies; 9+ messages in thread From: Kim Seer Paller @ 2025-09-30 5:02 UTC (permalink / raw) To: Kim Seer Paller, Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet Cc: linux-hwmon, devicetree, linux-kernel, linux-doc Add support for MAX17616/MAX17616A current-limiter with overvoltage/surge, undervoltage, reverse polarity, loss of ground protection with PMBus interface. The PMBus interface allows monitoring of input/output voltages, output current and temperature. Signed-off-by: Kim Seer Paller <kimseer.paller@analog.com> --- Documentation/hwmon/index.rst | 1 + Documentation/hwmon/max17616.rst | 62 ++++++++++++++++++++++++++++++++++ MAINTAINERS | 2 ++ drivers/hwmon/pmbus/Kconfig | 9 +++++ drivers/hwmon/pmbus/Makefile | 1 + drivers/hwmon/pmbus/max17616.c | 73 ++++++++++++++++++++++++++++++++++++++++ 6 files changed, 148 insertions(+) diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst index 51a5bdf75b08656ee6499c6b5c50a51fc4d7c210..62c5d10f16ae722dd2e6a4f8953ae24b5f541666 100644 --- a/Documentation/hwmon/index.rst +++ b/Documentation/hwmon/index.rst @@ -151,6 +151,7 @@ Hardware Monitoring Kernel Drivers max1619 max16601 max1668 + max17616 max197 max20730 max20751 diff --git a/Documentation/hwmon/max17616.rst b/Documentation/hwmon/max17616.rst new file mode 100644 index 0000000000000000000000000000000000000000..936447159f87a9c6b270b903c46b43a90caddb23 --- /dev/null +++ b/Documentation/hwmon/max17616.rst @@ -0,0 +1,62 @@ +.. SPDX-License-Identifier: GPL-2.0 + +Kernel driver max17616 +==================== + +Supported chips: + + * Analog Devices MAX17616/MAX17616A + + Prefix: 'max17616' + + Addresses scanned: - + + Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/max17616-max17616a.pdf + +Author: + + - Kim Seer Paller <kimseer.paller@analog.com> + + +Description +----------- + +This driver supports hardware monitoring for Analog Devices MAX17616/MAX17616A +Current-Limiter with OV/Surge, UV, Reverse Polarity, Loss of Ground Protection +with PMBus Interface. + +The MAX17616/MAX17616A is a 3V to 80V, 7A current-limiter with overvoltage, +surge, undervoltage, reverse polarity, and loss of ground protection. Through +the PMBus interface, the device can monitor input/output voltages, output current +and temperature. + +The driver is a client driver to the core PMBus driver. Please see +Documentation/hwmon/pmbus.rst for details on PMBus client drivers. + +Usage Notes +----------- + +This driver does not auto-detect devices. You will have to instantiate +the devices explicitly. Please see Documentation/i2c/instantiating-devices.rst +for details. + +Platform data support +--------------------- + +The driver supports standard PMBus driver platform data. + +Sysfs entries +------------- + +================= ======================================== +in1_label "vin" +in1_input Measured input voltage +in1_alarm Input voltage alarm +in2_label "vout1" +in2_input Measured output voltage +curr1_label "iout1" +curr1_input Measured output current. +curr1_alarm Output current alarm +temp1_input Measured temperature +temp1_alarm Chip temperature alarm +================= ======================================== diff --git a/MAINTAINERS b/MAINTAINERS index 89d35faf93c9d2e984b73f5c09d09044ee6eddb2..267ab428260a29c38fa508190bdfa2677bba58c8 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14923,6 +14923,8 @@ L: linux-hwmon@vger.kernel.org S: Supported W: https://ez.analog.com/linux-software-drivers F: Documentation/devicetree/bindings/hwmon/pmbus/adi,max17616.yaml +F: Documentation/hwmon/max17616.rst +F: drivers/hwmon/pmbus/max17616.c MAX2175 SDR TUNER DRIVER M: Ramesh Shanmugasundaram <rashanmu@gmail.com> diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig index da04ff6df28bd12909c9140662d6b932a150bd97..def5faad8fdf56eb31fe216322ead57ee43a1ac5 100644 --- a/drivers/hwmon/pmbus/Kconfig +++ b/drivers/hwmon/pmbus/Kconfig @@ -320,6 +320,15 @@ config SENSORS_MAX16601 This driver can also be built as a module. If so, the module will be called max16601. +config SENSORS_MAX17616 + tristate "Analog Devices MAX17616/MAX17616A" + help + If you say yes here you get hardware monitoring support for Analog + Devices MAX17616/MAX17616A. + + This driver can also be built as a module. If so, the module will + be called max17616. + config SENSORS_MAX20730 tristate "Maxim MAX20710, MAX20730, MAX20734, MAX20743" help diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile index 4c5ff3f32c5ecbea069dce8af3e3e8365892b278..9cebe488fdf18b2aa164c0fc2ac7d1d8ffd2b970 100644 --- a/drivers/hwmon/pmbus/Makefile +++ b/drivers/hwmon/pmbus/Makefile @@ -31,6 +31,7 @@ obj-$(CONFIG_SENSORS_LTC4286) += ltc4286.o obj-$(CONFIG_SENSORS_MAX15301) += max15301.o obj-$(CONFIG_SENSORS_MAX16064) += max16064.o obj-$(CONFIG_SENSORS_MAX16601) += max16601.o +obj-$(CONFIG_SENSORS_MAX17616) += max17616.o obj-$(CONFIG_SENSORS_MAX20730) += max20730.o obj-$(CONFIG_SENSORS_MAX20751) += max20751.o obj-$(CONFIG_SENSORS_MAX31785) += max31785.o diff --git a/drivers/hwmon/pmbus/max17616.c b/drivers/hwmon/pmbus/max17616.c new file mode 100644 index 0000000000000000000000000000000000000000..1d4a0ddb95bb6e8349932062be0d918f935cd846 --- /dev/null +++ b/drivers/hwmon/pmbus/max17616.c @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Hardware monitoring driver for Analog Devices MAX17616/MAX17616A + * + * Copyright (C) 2025 Analog Devices, Inc. + */ + +#include <linux/err.h> +#include <linux/i2c.h> +#include <linux/mod_devicetable.h> +#include <linux/module.h> + +#include "pmbus.h" + +static struct pmbus_driver_info max17616_info = { + .pages = 1, + .format[PSC_VOLTAGE_IN] = direct, + .m[PSC_VOLTAGE_IN] = 512, + .b[PSC_VOLTAGE_IN] = -18, + .R[PSC_VOLTAGE_IN] = -1, + + .format[PSC_VOLTAGE_OUT] = direct, + .m[PSC_VOLTAGE_OUT] = 512, + .b[PSC_VOLTAGE_OUT] = -18, + .R[PSC_VOLTAGE_OUT] = -1, + + .format[PSC_CURRENT_OUT] = direct, + .m[PSC_CURRENT_OUT] = 5845, + .b[PSC_CURRENT_OUT] = 80, + .R[PSC_CURRENT_OUT] = -1, + + .format[PSC_TEMPERATURE] = direct, + .m[PSC_TEMPERATURE] = 71, + .b[PSC_TEMPERATURE] = 19653, + .R[PSC_TEMPERATURE] = -1, + + .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_VOUT | PMBUS_HAVE_IOUT | + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_VOUT | + PMBUS_HAVE_STATUS_IOUT | PMBUS_HAVE_STATUS_INPUT | + PMBUS_HAVE_STATUS_TEMP, +}; + +static int max17616_probe(struct i2c_client *client) +{ + return pmbus_do_probe(client, &max17616_info); +} + +static const struct i2c_device_id max17616_id[] = { + { "max17616" }, + { } +}; +MODULE_DEVICE_TABLE(i2c, max17616_id); + +static const struct of_device_id max17616_of_match[] = { + { .compatible = "adi,max17616" }, + { } +}; +MODULE_DEVICE_TABLE(of, max17616_of_match); + +static struct i2c_driver max17616_driver = { + .driver = { + .name = "max17616", + .of_match_table = max17616_of_match, + }, + .probe = max17616_probe, + .id_table = max17616_id, +}; +module_i2c_driver(max17616_driver); + +MODULE_AUTHOR("Kim Seer Paller <kimseer.paller@analog.com>"); +MODULE_DESCRIPTION("PMBus driver for Analog Devices MAX17616/MAX17616A"); +MODULE_LICENSE("GPL"); +MODULE_IMPORT_NS("PMBUS"); -- 2.34.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] hwmon: (pmbus/max17616): add driver for max17616 2025-09-30 5:02 ` [PATCH 2/2] hwmon: (pmbus/max17616): add driver for max17616 Kim Seer Paller @ 2025-09-30 10:26 ` Guenter Roeck 2025-10-01 8:17 ` Paller, Kim Seer 2025-10-02 20:55 ` Guenter Roeck 1 sibling, 1 reply; 9+ messages in thread From: Guenter Roeck @ 2025-09-30 10:26 UTC (permalink / raw) To: Kim Seer Paller, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet Cc: linux-hwmon, devicetree, linux-kernel, linux-doc On 9/29/25 22:02, Kim Seer Paller wrote: > Add support for MAX17616/MAX17616A current-limiter with > overvoltage/surge, undervoltage, reverse polarity, loss of ground > protection with PMBus interface. The PMBus interface allows monitoring > of input/output voltages, output current and temperature. > > Signed-off-by: Kim Seer Paller <kimseer.paller@analog.com> I am a bit concerned about VOUT_UV_FAULT_LIMIT which is completely non-standard. Did you check with real hardware that in2_lcrit is not instantiated ? Thanks, Guenter > --- > Documentation/hwmon/index.rst | 1 + > Documentation/hwmon/max17616.rst | 62 ++++++++++++++++++++++++++++++++++ > MAINTAINERS | 2 ++ > drivers/hwmon/pmbus/Kconfig | 9 +++++ > drivers/hwmon/pmbus/Makefile | 1 + > drivers/hwmon/pmbus/max17616.c | 73 ++++++++++++++++++++++++++++++++++++++++ > 6 files changed, 148 insertions(+) > > diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst > index 51a5bdf75b08656ee6499c6b5c50a51fc4d7c210..62c5d10f16ae722dd2e6a4f8953ae24b5f541666 100644 > --- a/Documentation/hwmon/index.rst > +++ b/Documentation/hwmon/index.rst > @@ -151,6 +151,7 @@ Hardware Monitoring Kernel Drivers > max1619 > max16601 > max1668 > + max17616 > max197 > max20730 > max20751 > diff --git a/Documentation/hwmon/max17616.rst b/Documentation/hwmon/max17616.rst > new file mode 100644 > index 0000000000000000000000000000000000000000..936447159f87a9c6b270b903c46b43a90caddb23 > --- /dev/null > +++ b/Documentation/hwmon/max17616.rst > @@ -0,0 +1,62 @@ > +.. SPDX-License-Identifier: GPL-2.0 > + > +Kernel driver max17616 > +==================== > + > +Supported chips: > + > + * Analog Devices MAX17616/MAX17616A > + > + Prefix: 'max17616' > + > + Addresses scanned: - > + > + Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/max17616-max17616a.pdf > + > +Author: > + > + - Kim Seer Paller <kimseer.paller@analog.com> > + > + > +Description > +----------- > + > +This driver supports hardware monitoring for Analog Devices MAX17616/MAX17616A > +Current-Limiter with OV/Surge, UV, Reverse Polarity, Loss of Ground Protection > +with PMBus Interface. > + > +The MAX17616/MAX17616A is a 3V to 80V, 7A current-limiter with overvoltage, > +surge, undervoltage, reverse polarity, and loss of ground protection. Through > +the PMBus interface, the device can monitor input/output voltages, output current > +and temperature. > + > +The driver is a client driver to the core PMBus driver. Please see > +Documentation/hwmon/pmbus.rst for details on PMBus client drivers. > + > +Usage Notes > +----------- > + > +This driver does not auto-detect devices. You will have to instantiate > +the devices explicitly. Please see Documentation/i2c/instantiating-devices.rst > +for details. > + > +Platform data support > +--------------------- > + > +The driver supports standard PMBus driver platform data. > + > +Sysfs entries > +------------- > + > +================= ======================================== > +in1_label "vin" > +in1_input Measured input voltage > +in1_alarm Input voltage alarm > +in2_label "vout1" > +in2_input Measured output voltage > +curr1_label "iout1" > +curr1_input Measured output current. > +curr1_alarm Output current alarm > +temp1_input Measured temperature > +temp1_alarm Chip temperature alarm > +================= ======================================== > diff --git a/MAINTAINERS b/MAINTAINERS > index 89d35faf93c9d2e984b73f5c09d09044ee6eddb2..267ab428260a29c38fa508190bdfa2677bba58c8 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -14923,6 +14923,8 @@ L: linux-hwmon@vger.kernel.org > S: Supported > W: https://ez.analog.com/linux-software-drivers > F: Documentation/devicetree/bindings/hwmon/pmbus/adi,max17616.yaml > +F: Documentation/hwmon/max17616.rst > +F: drivers/hwmon/pmbus/max17616.c > > MAX2175 SDR TUNER DRIVER > M: Ramesh Shanmugasundaram <rashanmu@gmail.com> > diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig > index da04ff6df28bd12909c9140662d6b932a150bd97..def5faad8fdf56eb31fe216322ead57ee43a1ac5 100644 > --- a/drivers/hwmon/pmbus/Kconfig > +++ b/drivers/hwmon/pmbus/Kconfig > @@ -320,6 +320,15 @@ config SENSORS_MAX16601 > This driver can also be built as a module. If so, the module will > be called max16601. > > +config SENSORS_MAX17616 > + tristate "Analog Devices MAX17616/MAX17616A" > + help > + If you say yes here you get hardware monitoring support for Analog > + Devices MAX17616/MAX17616A. > + > + This driver can also be built as a module. If so, the module will > + be called max17616. > + > config SENSORS_MAX20730 > tristate "Maxim MAX20710, MAX20730, MAX20734, MAX20743" > help > diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile > index 4c5ff3f32c5ecbea069dce8af3e3e8365892b278..9cebe488fdf18b2aa164c0fc2ac7d1d8ffd2b970 100644 > --- a/drivers/hwmon/pmbus/Makefile > +++ b/drivers/hwmon/pmbus/Makefile > @@ -31,6 +31,7 @@ obj-$(CONFIG_SENSORS_LTC4286) += ltc4286.o > obj-$(CONFIG_SENSORS_MAX15301) += max15301.o > obj-$(CONFIG_SENSORS_MAX16064) += max16064.o > obj-$(CONFIG_SENSORS_MAX16601) += max16601.o > +obj-$(CONFIG_SENSORS_MAX17616) += max17616.o > obj-$(CONFIG_SENSORS_MAX20730) += max20730.o > obj-$(CONFIG_SENSORS_MAX20751) += max20751.o > obj-$(CONFIG_SENSORS_MAX31785) += max31785.o > diff --git a/drivers/hwmon/pmbus/max17616.c b/drivers/hwmon/pmbus/max17616.c > new file mode 100644 > index 0000000000000000000000000000000000000000..1d4a0ddb95bb6e8349932062be0d918f935cd846 > --- /dev/null > +++ b/drivers/hwmon/pmbus/max17616.c > @@ -0,0 +1,73 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Hardware monitoring driver for Analog Devices MAX17616/MAX17616A > + * > + * Copyright (C) 2025 Analog Devices, Inc. > + */ > + > +#include <linux/err.h> > +#include <linux/i2c.h> > +#include <linux/mod_devicetable.h> > +#include <linux/module.h> > + > +#include "pmbus.h" > + > +static struct pmbus_driver_info max17616_info = { > + .pages = 1, > + .format[PSC_VOLTAGE_IN] = direct, > + .m[PSC_VOLTAGE_IN] = 512, > + .b[PSC_VOLTAGE_IN] = -18, > + .R[PSC_VOLTAGE_IN] = -1, > + > + .format[PSC_VOLTAGE_OUT] = direct, > + .m[PSC_VOLTAGE_OUT] = 512, > + .b[PSC_VOLTAGE_OUT] = -18, > + .R[PSC_VOLTAGE_OUT] = -1, > + > + .format[PSC_CURRENT_OUT] = direct, > + .m[PSC_CURRENT_OUT] = 5845, > + .b[PSC_CURRENT_OUT] = 80, > + .R[PSC_CURRENT_OUT] = -1, > + > + .format[PSC_TEMPERATURE] = direct, > + .m[PSC_TEMPERATURE] = 71, > + .b[PSC_TEMPERATURE] = 19653, > + .R[PSC_TEMPERATURE] = -1, > + > + .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_VOUT | PMBUS_HAVE_IOUT | > + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_VOUT | > + PMBUS_HAVE_STATUS_IOUT | PMBUS_HAVE_STATUS_INPUT | > + PMBUS_HAVE_STATUS_TEMP, > +}; > + > +static int max17616_probe(struct i2c_client *client) > +{ > + return pmbus_do_probe(client, &max17616_info); > +} > + > +static const struct i2c_device_id max17616_id[] = { > + { "max17616" }, > + { } > +}; > +MODULE_DEVICE_TABLE(i2c, max17616_id); > + > +static const struct of_device_id max17616_of_match[] = { > + { .compatible = "adi,max17616" }, > + { } > +}; > +MODULE_DEVICE_TABLE(of, max17616_of_match); > + > +static struct i2c_driver max17616_driver = { > + .driver = { > + .name = "max17616", > + .of_match_table = max17616_of_match, > + }, > + .probe = max17616_probe, > + .id_table = max17616_id, > +}; > +module_i2c_driver(max17616_driver); > + > +MODULE_AUTHOR("Kim Seer Paller <kimseer.paller@analog.com>"); > +MODULE_DESCRIPTION("PMBus driver for Analog Devices MAX17616/MAX17616A"); > +MODULE_LICENSE("GPL"); > +MODULE_IMPORT_NS("PMBUS"); > ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [PATCH 2/2] hwmon: (pmbus/max17616): add driver for max17616 2025-09-30 10:26 ` Guenter Roeck @ 2025-10-01 8:17 ` Paller, Kim Seer 0 siblings, 0 replies; 9+ messages in thread From: Paller, Kim Seer @ 2025-10-01 8:17 UTC (permalink / raw) To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet Cc: linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org > -----Original Message----- > From: Guenter Roeck <groeck7@gmail.com> On Behalf Of Guenter Roeck > Sent: Tuesday, September 30, 2025 6:27 PM > To: Paller, Kim Seer <KimSeer.Paller@analog.com>; Rob Herring > <robh@kernel.org>; Krzysztof Kozlowski <krzk+dt@kernel.org>; Conor Dooley > <conor+dt@kernel.org>; Jonathan Corbet <corbet@lwn.net> > Cc: linux-hwmon@vger.kernel.org; devicetree@vger.kernel.org; linux- > kernel@vger.kernel.org; linux-doc@vger.kernel.org > Subject: Re: [PATCH 2/2] hwmon: (pmbus/max17616): add driver for > max17616 > > [External] > > On 9/29/25 22:02, Kim Seer Paller wrote: > > Add support for MAX17616/MAX17616A current-limiter with > > overvoltage/surge, undervoltage, reverse polarity, loss of ground > > protection with PMBus interface. The PMBus interface allows monitoring > > of input/output voltages, output current and temperature. > > > > Signed-off-by: Kim Seer Paller <kimseer.paller@analog.com> > > I am a bit concerned about VOUT_UV_FAULT_LIMIT which is completely non- > standard. > Did you check with real hardware that in2_lcrit is not instantiated ? Yes, checked on the hardware it is not instantiated. > > Thanks, > Guenter > > > --- > > Documentation/hwmon/index.rst | 1 + > > Documentation/hwmon/max17616.rst | 62 > ++++++++++++++++++++++++++++++++++ > > MAINTAINERS | 2 ++ > > drivers/hwmon/pmbus/Kconfig | 9 +++++ > > drivers/hwmon/pmbus/Makefile | 1 + > > drivers/hwmon/pmbus/max17616.c | 73 > ++++++++++++++++++++++++++++++++++++++++ > > 6 files changed, 148 insertions(+) > > > > diff --git a/Documentation/hwmon/index.rst > > b/Documentation/hwmon/index.rst index > > > 51a5bdf75b08656ee6499c6b5c50a51fc4d7c210..62c5d10f16ae722dd2e6a4f8 > 953a > > e24b5f541666 100644 > > --- a/Documentation/hwmon/index.rst > > +++ b/Documentation/hwmon/index.rst > > @@ -151,6 +151,7 @@ Hardware Monitoring Kernel Drivers > > max1619 > > max16601 > > max1668 > > + max17616 > > max197 > > max20730 > > max20751 > > diff --git a/Documentation/hwmon/max17616.rst > > b/Documentation/hwmon/max17616.rst > > new file mode 100644 > > index > > > 0000000000000000000000000000000000000000..936447159f87a9c6b270b9 > 03c46b > > 43a90caddb23 > > --- /dev/null > > +++ b/Documentation/hwmon/max17616.rst > > @@ -0,0 +1,62 @@ > > +.. SPDX-License-Identifier: GPL-2.0 > > + > > +Kernel driver max17616 > > +==================== > > + > > +Supported chips: > > + > > + * Analog Devices MAX17616/MAX17616A > > + > > + Prefix: 'max17616' > > + > > + Addresses scanned: - > > + > > + Datasheet: > > + https://www.analog.com/media/en/technical-documentation/data-sheets/ > > + max17616-max17616a.pdf > > + > > +Author: > > + > > + - Kim Seer Paller <kimseer.paller@analog.com> > > + > > + > > +Description > > +----------- > > + > > +This driver supports hardware monitoring for Analog Devices > > +MAX17616/MAX17616A Current-Limiter with OV/Surge, UV, Reverse > > +Polarity, Loss of Ground Protection with PMBus Interface. > > + > > +The MAX17616/MAX17616A is a 3V to 80V, 7A current-limiter with > > +overvoltage, surge, undervoltage, reverse polarity, and loss of > > +ground protection. Through the PMBus interface, the device can > > +monitor input/output voltages, output current and temperature. > > + > > +The driver is a client driver to the core PMBus driver. Please see > > +Documentation/hwmon/pmbus.rst for details on PMBus client drivers. > > + > > +Usage Notes > > +----------- > > + > > +This driver does not auto-detect devices. You will have to > > +instantiate the devices explicitly. Please see > > +Documentation/i2c/instantiating-devices.rst > > +for details. > > + > > +Platform data support > > +--------------------- > > + > > +The driver supports standard PMBus driver platform data. > > + > > +Sysfs entries > > +------------- > > + > > +================= ======================================== > > +in1_label "vin" > > +in1_input Measured input voltage > > +in1_alarm Input voltage alarm > > +in2_label "vout1" > > +in2_input Measured output voltage > > +curr1_label "iout1" > > +curr1_input Measured output current. > > +curr1_alarm Output current alarm > > +temp1_input Measured temperature > > +temp1_alarm Chip temperature alarm > > +================= ======================================== > > diff --git a/MAINTAINERS b/MAINTAINERS index > > > 89d35faf93c9d2e984b73f5c09d09044ee6eddb2..267ab428260a29c38fa50819 > 0bdf > > a2677bba58c8 100644 > > --- a/MAINTAINERS > > +++ b/MAINTAINERS > > @@ -14923,6 +14923,8 @@ L: linux-hwmon@vger.kernel.org > > S: Supported > > W: https://ez.analog.com/linux-software-drivers > > F: > Documentation/devicetree/bindings/hwmon/pmbus/adi,max17616.ya > ml > > +F: Documentation/hwmon/max17616.rst > > +F: drivers/hwmon/pmbus/max17616.c > > > > MAX2175 SDR TUNER DRIVER > > M: Ramesh Shanmugasundaram <rashanmu@gmail.com> > > diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig > > index > > > da04ff6df28bd12909c9140662d6b932a150bd97..def5faad8fdf56eb31fe21632 > 2ea > > d57ee43a1ac5 100644 > > --- a/drivers/hwmon/pmbus/Kconfig > > +++ b/drivers/hwmon/pmbus/Kconfig > > @@ -320,6 +320,15 @@ config SENSORS_MAX16601 > > This driver can also be built as a module. If so, the module will > > be called max16601. > > > > +config SENSORS_MAX17616 > > + tristate "Analog Devices MAX17616/MAX17616A" > > + help > > + If you say yes here you get hardware monitoring support for Analog > > + Devices MAX17616/MAX17616A. > > + > > + This driver can also be built as a module. If so, the module will > > + be called max17616. > > + > > config SENSORS_MAX20730 > > tristate "Maxim MAX20710, MAX20730, MAX20734, MAX20743" > > help > > diff --git a/drivers/hwmon/pmbus/Makefile > > b/drivers/hwmon/pmbus/Makefile index > > > 4c5ff3f32c5ecbea069dce8af3e3e8365892b278..9cebe488fdf18b2aa164c0fc2a > c7 > > d1d8ffd2b970 100644 > > --- a/drivers/hwmon/pmbus/Makefile > > +++ b/drivers/hwmon/pmbus/Makefile > > @@ -31,6 +31,7 @@ obj-$(CONFIG_SENSORS_LTC4286) += ltc4286.o > > obj-$(CONFIG_SENSORS_MAX15301) += max15301.o > > obj-$(CONFIG_SENSORS_MAX16064) += max16064.o > > obj-$(CONFIG_SENSORS_MAX16601) += max16601.o > > +obj-$(CONFIG_SENSORS_MAX17616) += max17616.o > > obj-$(CONFIG_SENSORS_MAX20730) += max20730.o > > obj-$(CONFIG_SENSORS_MAX20751) += max20751.o > > obj-$(CONFIG_SENSORS_MAX31785) += max31785.o > > diff --git a/drivers/hwmon/pmbus/max17616.c > > b/drivers/hwmon/pmbus/max17616.c new file mode 100644 index > > > 0000000000000000000000000000000000000000..1d4a0ddb95bb6e8349932 > 062be0d > > 918f935cd846 > > --- /dev/null > > +++ b/drivers/hwmon/pmbus/max17616.c > > @@ -0,0 +1,73 @@ > > +// SPDX-License-Identifier: GPL-2.0 > > +/* > > + * Hardware monitoring driver for Analog Devices MAX17616/MAX17616A > > + * > > + * Copyright (C) 2025 Analog Devices, Inc. > > + */ > > + > > +#include <linux/err.h> > > +#include <linux/i2c.h> > > +#include <linux/mod_devicetable.h> > > +#include <linux/module.h> > > + > > +#include "pmbus.h" > > + > > +static struct pmbus_driver_info max17616_info = { > > + .pages = 1, > > + .format[PSC_VOLTAGE_IN] = direct, > > + .m[PSC_VOLTAGE_IN] = 512, > > + .b[PSC_VOLTAGE_IN] = -18, > > + .R[PSC_VOLTAGE_IN] = -1, > > + > > + .format[PSC_VOLTAGE_OUT] = direct, > > + .m[PSC_VOLTAGE_OUT] = 512, > > + .b[PSC_VOLTAGE_OUT] = -18, > > + .R[PSC_VOLTAGE_OUT] = -1, > > + > > + .format[PSC_CURRENT_OUT] = direct, > > + .m[PSC_CURRENT_OUT] = 5845, > > + .b[PSC_CURRENT_OUT] = 80, > > + .R[PSC_CURRENT_OUT] = -1, > > + > > + .format[PSC_TEMPERATURE] = direct, > > + .m[PSC_TEMPERATURE] = 71, > > + .b[PSC_TEMPERATURE] = 19653, > > + .R[PSC_TEMPERATURE] = -1, > > + > > + .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_VOUT | > PMBUS_HAVE_IOUT | > > + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_VOUT | > > + PMBUS_HAVE_STATUS_IOUT | > PMBUS_HAVE_STATUS_INPUT | > > + PMBUS_HAVE_STATUS_TEMP, > > +}; > > + > > +static int max17616_probe(struct i2c_client *client) { > > + return pmbus_do_probe(client, &max17616_info); } > > + > > +static const struct i2c_device_id max17616_id[] = { > > + { "max17616" }, > > + { } > > +}; > > +MODULE_DEVICE_TABLE(i2c, max17616_id); > > + > > +static const struct of_device_id max17616_of_match[] = { > > + { .compatible = "adi,max17616" }, > > + { } > > +}; > > +MODULE_DEVICE_TABLE(of, max17616_of_match); > > + > > +static struct i2c_driver max17616_driver = { > > + .driver = { > > + .name = "max17616", > > + .of_match_table = max17616_of_match, > > + }, > > + .probe = max17616_probe, > > + .id_table = max17616_id, > > +}; > > +module_i2c_driver(max17616_driver); > > + > > +MODULE_AUTHOR("Kim Seer Paller <kimseer.paller@analog.com>"); > > +MODULE_DESCRIPTION("PMBus driver for Analog Devices > > +MAX17616/MAX17616A"); MODULE_LICENSE("GPL"); > > +MODULE_IMPORT_NS("PMBUS"); > > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] hwmon: (pmbus/max17616): add driver for max17616 2025-09-30 5:02 ` [PATCH 2/2] hwmon: (pmbus/max17616): add driver for max17616 Kim Seer Paller 2025-09-30 10:26 ` Guenter Roeck @ 2025-10-02 20:55 ` Guenter Roeck 1 sibling, 0 replies; 9+ messages in thread From: Guenter Roeck @ 2025-10-02 20:55 UTC (permalink / raw) To: Kim Seer Paller Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, linux-hwmon, devicetree, linux-kernel, linux-doc On Tue, Sep 30, 2025 at 01:02:21PM +0800, Kim Seer Paller wrote: > Add support for MAX17616/MAX17616A current-limiter with > overvoltage/surge, undervoltage, reverse polarity, loss of ground > protection with PMBus interface. The PMBus interface allows monitoring > of input/output voltages, output current and temperature. > > Signed-off-by: Kim Seer Paller <kimseer.paller@analog.com> Applied to hwmon-next. Thanks, Guenter ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-10-02 22:14 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-09-30 5:02 [PATCH 0/2] Add support for MAX17616/MAX17616A hwmon device Kim Seer Paller 2025-09-30 5:02 ` [PATCH 1/2] dt-bindings: hwmon: pmbus: add max17616 Kim Seer Paller 2025-09-30 18:54 ` Conor Dooley 2025-10-02 20:55 ` Guenter Roeck 2025-10-02 22:15 ` Marcelo Schmitt 2025-09-30 5:02 ` [PATCH 2/2] hwmon: (pmbus/max17616): add driver for max17616 Kim Seer Paller 2025-09-30 10:26 ` Guenter Roeck 2025-10-01 8:17 ` Paller, Kim Seer 2025-10-02 20:55 ` Guenter Roeck
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).