[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID:
<PH0PR03MB7141CE6B03549500A57E2B42F9E6A@PH0PR03MB7141.namprd03.prod.outlook.com>
Date: Wed, 1 Oct 2025 08:17:18 +0000
From: "Paller, Kim Seer" <KimSeer.Paller@...log.com>
To: Guenter Roeck <linux@...ck-us.net>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Jonathan Corbet <corbet@....net>
CC: "linux-hwmon@...r.kernel.org" <linux-hwmon@...r.kernel.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-doc@...r.kernel.org" <linux-doc@...r.kernel.org>
Subject: RE: [PATCH 2/2] hwmon: (pmbus/max17616): add driver for max17616
> -----Original Message-----
> From: Guenter Roeck <groeck7@...il.com> On Behalf Of Guenter Roeck
> Sent: Tuesday, September 30, 2025 6:27 PM
> To: Paller, Kim Seer <KimSeer.Paller@...log.com>; Rob Herring
> <robh@...nel.org>; Krzysztof Kozlowski <krzk+dt@...nel.org>; Conor Dooley
> <conor+dt@...nel.org>; Jonathan Corbet <corbet@....net>
> Cc: linux-hwmon@...r.kernel.org; devicetree@...r.kernel.org; linux-
> kernel@...r.kernel.org; linux-doc@...r.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@...log.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@...log.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@...r.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@...il.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@...log.com>");
> > +MODULE_DESCRIPTION("PMBus driver for Analog Devices
> > +MAX17616/MAX17616A"); MODULE_LICENSE("GPL");
> > +MODULE_IMPORT_NS("PMBUS");
> >
Powered by blists - more mailing lists