* [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
* [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 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 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 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 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
* 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
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).