* [PATCH v2 0/2] Add support for MAX20830 PMBUS
@ 2026-04-16 7:59 Alexis Czezar Torreno
2026-04-16 7:59 ` [PATCH v2 1/2] dt-bindings: hwmon: pmbus: add max20830 Alexis Czezar Torreno
2026-04-16 7:59 ` [PATCH v2 2/2] hwmon: (pmbus/max20830) add driver for max20830 Alexis Czezar Torreno
0 siblings, 2 replies; 10+ messages in thread
From: Alexis Czezar Torreno @ 2026-04-16 7:59 UTC (permalink / raw)
To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Jonathan Corbet, Shuah Khan
Cc: linux-hwmon, devicetree, linux-kernel, linux-doc,
Alexis Czezar Torreno
This series adds support for the Analog Devices MAX20830 step-down
switching regulator with PMBus interface.
The MAX20830 provides 2.7V to 16V input, 0.4V to 5.8V output, and up
to 30A output current. It supports monitoring of input/output voltage,
output current, and temperature via PMBus.
Datasheet: https://www.analog.com/en/products/max20830.html
Signed-off-by: Alexis Czezar Torreno <alexisczezar.torreno@analog.com>
---
Changes in v2:
- bindings:
- did not add interrupt, smbalert pin does not exist in device.
- added allof with ref to regulator.yaml
- changed additionalprop to unevaluatedprop
- device node name in example changed to regulator
- driver:
- max20830.rst: Added missing in2_alarm
- max20830.c:
- added missing quotes in MODULE_IMPORT_NS
- added comment on why i2c_smbus_read_i2c_block_data is used
- first byte of buffer used as length instead of the return value
- "unsupported device" log now does not print first byte of buffer
- Link to v1: https://lore.kernel.org/r/20260414-dev_max20830-v1-0-210d3f82c571@analog.com
---
Alexis Czezar Torreno (2):
dt-bindings: hwmon: pmbus: add max20830
hwmon: (pmbus/max20830) add driver for max20830
.../bindings/hwmon/pmbus/adi,max20830.yaml | 61 +++++++++++++++
Documentation/hwmon/index.rst | 1 +
Documentation/hwmon/max20830.rst | 49 ++++++++++++
MAINTAINERS | 9 +++
drivers/hwmon/pmbus/Kconfig | 9 +++
drivers/hwmon/pmbus/Makefile | 1 +
drivers/hwmon/pmbus/max20830.c | 86 ++++++++++++++++++++++
7 files changed, 216 insertions(+)
---
base-commit: fb447217c59a13b2fff22d94de2498c185cd9032
change-id: 20260414-dev_max20830-9460b92cf6aa
Best regards,
--
Alexis Czezar Torreno <alexisczezar.torreno@analog.com>
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH v2 1/2] dt-bindings: hwmon: pmbus: add max20830 2026-04-16 7:59 [PATCH v2 0/2] Add support for MAX20830 PMBUS Alexis Czezar Torreno @ 2026-04-16 7:59 ` Alexis Czezar Torreno 2026-04-16 15:51 ` Conor Dooley 2026-04-16 7:59 ` [PATCH v2 2/2] hwmon: (pmbus/max20830) add driver for max20830 Alexis Czezar Torreno 1 sibling, 1 reply; 10+ messages in thread From: Alexis Czezar Torreno @ 2026-04-16 7:59 UTC (permalink / raw) To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, Shuah Khan Cc: linux-hwmon, devicetree, linux-kernel, linux-doc, Alexis Czezar Torreno Add device tree documentation for MAX20830 step-down DC-DC switching regulator with PMBus interface. Signed-off-by: Alexis Czezar Torreno <alexisczezar.torreno@analog.com> --- .../bindings/hwmon/pmbus/adi,max20830.yaml | 61 ++++++++++++++++++++++ MAINTAINERS | 7 +++ 2 files changed, 68 insertions(+) diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/adi,max20830.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/adi,max20830.yaml new file mode 100644 index 0000000000000000000000000000000000000000..8b3ec1ffa0c9460de2122f6606ce3dcbcdfbbcc7 --- /dev/null +++ b/Documentation/devicetree/bindings/hwmon/pmbus/adi,max20830.yaml @@ -0,0 +1,61 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/hwmon/pmbus/adi,max20830.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Analog Devices MAX20830 Step-Down Switching Regulator with PMBus + +maintainers: + - Alexis Czezar Torreno <alexisczezar.torreno@analog.com> + +description: | + The MAX20830 is a fully integrated step-down DC-DC switching regulator with + PMBus interface. It provides 2.7V to 16V input, 0.4V to 5.8V adjustable + output, and up to 30A output current. It allows monitoring of input/output + voltage, output current and temperature through the PMBus serial interface. + Datasheet: + https://www.analog.com/en/products/max20830.html + +allOf: + - $ref: /schemas/regulator/regulator.yaml# + +properties: + compatible: + const: adi,max20830 + + reg: + maxItems: 1 + + vddh-supply: + description: + Phandle to the regulator that provides the VDDH power supply. + + avdd-supply: + description: + Phandle to the regulator that provides the AVDD power supply. + + ldoin-supply: + description: + Optional 2.5V to 5.5V LDO input supply. + +required: + - compatible + - reg + - vddh-supply + +unevaluatedProperties: false + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + regulator@30 { + compatible = "adi,max20830"; + reg = <0x30>; + vddh-supply = <&vddh>; + }; + }; +... diff --git a/MAINTAINERS b/MAINTAINERS index 0a3991c10ade20dd79cc7d1bf2a1d307ba6bd19d..031c743e979521a92ed9ac67915c178ce31727bd 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -15579,6 +15579,13 @@ F: Documentation/devicetree/bindings/hwmon/pmbus/adi,max17616.yaml F: Documentation/hwmon/max17616.rst F: drivers/hwmon/pmbus/max17616.c +MAX20830 HARDWARE MONITOR DRIVER +M: Alexis Czezar Torreno <alexisczezar.torreno@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,max20830.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] 10+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: hwmon: pmbus: add max20830 2026-04-16 7:59 ` [PATCH v2 1/2] dt-bindings: hwmon: pmbus: add max20830 Alexis Czezar Torreno @ 2026-04-16 15:51 ` Conor Dooley 2026-04-16 18:01 ` Guenter Roeck 0 siblings, 1 reply; 10+ messages in thread From: Conor Dooley @ 2026-04-16 15:51 UTC (permalink / raw) To: Alexis Czezar Torreno Cc: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, Shuah Khan, linux-hwmon, devicetree, linux-kernel, linux-doc [-- Attachment #1: Type: text/plain, Size: 3739 bytes --] On Thu, Apr 16, 2026 at 03:59:10PM +0800, Alexis Czezar Torreno wrote: > Add device tree documentation for MAX20830 step-down DC-DC switching > regulator with PMBus interface. > > Signed-off-by: Alexis Czezar Torreno <alexisczezar.torreno@analog.com> > --- > .../bindings/hwmon/pmbus/adi,max20830.yaml | 61 ++++++++++++++++++++++ > MAINTAINERS | 7 +++ > 2 files changed, 68 insertions(+) > > diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/adi,max20830.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/adi,max20830.yaml > new file mode 100644 > index 0000000000000000000000000000000000000000..8b3ec1ffa0c9460de2122f6606ce3dcbcdfbbcc7 > --- /dev/null > +++ b/Documentation/devicetree/bindings/hwmon/pmbus/adi,max20830.yaml > @@ -0,0 +1,61 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/hwmon/pmbus/adi,max20830.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Analog Devices MAX20830 Step-Down Switching Regulator with PMBus > + > +maintainers: > + - Alexis Czezar Torreno <alexisczezar.torreno@analog.com> > + > +description: | > + The MAX20830 is a fully integrated step-down DC-DC switching regulator with > + PMBus interface. It provides 2.7V to 16V input, 0.4V to 5.8V adjustable > + output, and up to 30A output current. It allows monitoring of input/output > + voltage, output current and temperature through the PMBus serial interface. > + Datasheet: > + https://www.analog.com/en/products/max20830.html > + > +allOf: > + - $ref: /schemas/regulator/regulator.yaml# > + > +properties: > + compatible: > + const: adi,max20830 > + > + reg: > + maxItems: 1 On the previous version, you got an LLM comment about not having the interrupts property amongst other things. I think the other things got implemented, but I didn't see any reply to the bot about that? I think the answer is that it shouldn't because the pin it referenced doesn't exist, but when looking at the schematic I have to wonder if there should be an interrupts property for dealing with "pgood"? Cheers, Conor. > + > + vddh-supply: > + description: > + Phandle to the regulator that provides the VDDH power supply. > + > + avdd-supply: > + description: > + Phandle to the regulator that provides the AVDD power supply. > + > + ldoin-supply: > + description: > + Optional 2.5V to 5.5V LDO input supply. > + > +required: > + - compatible > + - reg > + - vddh-supply > + > +unevaluatedProperties: false > + > +examples: > + - | > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + regulator@30 { > + compatible = "adi,max20830"; > + reg = <0x30>; > + vddh-supply = <&vddh>; > + }; > + }; > +... > diff --git a/MAINTAINERS b/MAINTAINERS > index 0a3991c10ade20dd79cc7d1bf2a1d307ba6bd19d..031c743e979521a92ed9ac67915c178ce31727bd 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -15579,6 +15579,13 @@ F: Documentation/devicetree/bindings/hwmon/pmbus/adi,max17616.yaml > F: Documentation/hwmon/max17616.rst > F: drivers/hwmon/pmbus/max17616.c > > +MAX20830 HARDWARE MONITOR DRIVER > +M: Alexis Czezar Torreno <alexisczezar.torreno@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,max20830.yaml > + > MAX2175 SDR TUNER DRIVER > M: Ramesh Shanmugasundaram <rashanmu@gmail.com> > L: linux-media@vger.kernel.org > > -- > 2.34.1 > [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: hwmon: pmbus: add max20830 2026-04-16 15:51 ` Conor Dooley @ 2026-04-16 18:01 ` Guenter Roeck 2026-04-16 21:31 ` Conor Dooley 0 siblings, 1 reply; 10+ messages in thread From: Guenter Roeck @ 2026-04-16 18:01 UTC (permalink / raw) To: Conor Dooley Cc: Alexis Czezar Torreno, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, Shuah Khan, linux-hwmon, devicetree, linux-kernel, linux-doc On Thu, Apr 16, 2026 at 04:51:37PM +0100, Conor Dooley wrote: > On Thu, Apr 16, 2026 at 03:59:10PM +0800, Alexis Czezar Torreno wrote: > > Add device tree documentation for MAX20830 step-down DC-DC switching > > regulator with PMBus interface. > > > > Signed-off-by: Alexis Czezar Torreno <alexisczezar.torreno@analog.com> > > --- > > .../bindings/hwmon/pmbus/adi,max20830.yaml | 61 ++++++++++++++++++++++ > > MAINTAINERS | 7 +++ > > 2 files changed, 68 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/adi,max20830.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/adi,max20830.yaml > > new file mode 100644 > > index 0000000000000000000000000000000000000000..8b3ec1ffa0c9460de2122f6606ce3dcbcdfbbcc7 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/hwmon/pmbus/adi,max20830.yaml > > @@ -0,0 +1,61 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/hwmon/pmbus/adi,max20830.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Analog Devices MAX20830 Step-Down Switching Regulator with PMBus > > + > > +maintainers: > > + - Alexis Czezar Torreno <alexisczezar.torreno@analog.com> > > + > > +description: | > > + The MAX20830 is a fully integrated step-down DC-DC switching regulator with > > + PMBus interface. It provides 2.7V to 16V input, 0.4V to 5.8V adjustable > > + output, and up to 30A output current. It allows monitoring of input/output > > + voltage, output current and temperature through the PMBus serial interface. > > + Datasheet: > > + https://www.analog.com/en/products/max20830.html > > + > > +allOf: > > + - $ref: /schemas/regulator/regulator.yaml# > > + > > +properties: > > + compatible: > > + const: adi,max20830 > > + > > + reg: > > + maxItems: 1 > > On the previous version, you got an LLM comment about not having the > interrupts property amongst other things. > I think the other things got implemented, but I didn't see any reply to > the bot about that? > I think the answer is that it shouldn't because the pin it referenced > doesn't exist, but when looking at the schematic I have to wonder if I had to look this up in the datasheet. A SMBus chip with no alert pin is a bit odd, but you are correct. > there should be an interrupts property for dealing with "pgood"? > FWIW, I have never seen that. Normally such pins are used to take devices out of reset. Thanks, Guenter ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: hwmon: pmbus: add max20830 2026-04-16 18:01 ` Guenter Roeck @ 2026-04-16 21:31 ` Conor Dooley 2026-04-17 1:04 ` Torreno, Alexis Czezar 0 siblings, 1 reply; 10+ messages in thread From: Conor Dooley @ 2026-04-16 21:31 UTC (permalink / raw) To: Guenter Roeck Cc: Alexis Czezar Torreno, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, Shuah Khan, linux-hwmon, devicetree, linux-kernel, linux-doc [-- Attachment #1: Type: text/plain, Size: 2971 bytes --] On Thu, Apr 16, 2026 at 11:01:49AM -0700, Guenter Roeck wrote: > On Thu, Apr 16, 2026 at 04:51:37PM +0100, Conor Dooley wrote: > > On Thu, Apr 16, 2026 at 03:59:10PM +0800, Alexis Czezar Torreno wrote: > > > Add device tree documentation for MAX20830 step-down DC-DC switching > > > regulator with PMBus interface. > > > > > > Signed-off-by: Alexis Czezar Torreno <alexisczezar.torreno@analog.com> > > > --- > > > .../bindings/hwmon/pmbus/adi,max20830.yaml | 61 ++++++++++++++++++++++ > > > MAINTAINERS | 7 +++ > > > 2 files changed, 68 insertions(+) > > > > > > diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/adi,max20830.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/adi,max20830.yaml > > > new file mode 100644 > > > index 0000000000000000000000000000000000000000..8b3ec1ffa0c9460de2122f6606ce3dcbcdfbbcc7 > > > --- /dev/null > > > +++ b/Documentation/devicetree/bindings/hwmon/pmbus/adi,max20830.yaml > > > @@ -0,0 +1,61 @@ > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > +%YAML 1.2 > > > +--- > > > +$id: http://devicetree.org/schemas/hwmon/pmbus/adi,max20830.yaml# > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > + > > > +title: Analog Devices MAX20830 Step-Down Switching Regulator with PMBus > > > + > > > +maintainers: > > > + - Alexis Czezar Torreno <alexisczezar.torreno@analog.com> > > > + > > > +description: | > > > + The MAX20830 is a fully integrated step-down DC-DC switching regulator with > > > + PMBus interface. It provides 2.7V to 16V input, 0.4V to 5.8V adjustable > > > + output, and up to 30A output current. It allows monitoring of input/output > > > + voltage, output current and temperature through the PMBus serial interface. > > > + Datasheet: > > > + https://www.analog.com/en/products/max20830.html > > > + > > > +allOf: > > > + - $ref: /schemas/regulator/regulator.yaml# > > > + > > > +properties: > > > + compatible: > > > + const: adi,max20830 > > > + > > > + reg: > > > + maxItems: 1 > > > > On the previous version, you got an LLM comment about not having the > > interrupts property amongst other things. > > I think the other things got implemented, but I didn't see any reply to > > the bot about that? > > I think the answer is that it shouldn't because the pin it referenced > > doesn't exist, but when looking at the schematic I have to wonder if > > I had to look this up in the datasheet. A SMBus chip with no alert pin is > a bit odd, but you are correct. > > > there should be an interrupts property for dealing with "pgood"? > > > FWIW, I have never seen that. Normally such pins are used to take devices > out of reset. It's an output on this device seemingly. I don't care if the driver ignores it, but for completeness (and we like completeness with bindings) I think it should be documented as an interrupt or gpio. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH v2 1/2] dt-bindings: hwmon: pmbus: add max20830 2026-04-16 21:31 ` Conor Dooley @ 2026-04-17 1:04 ` Torreno, Alexis Czezar 2026-04-17 3:22 ` Guenter Roeck 0 siblings, 1 reply; 10+ messages in thread From: Torreno, Alexis Czezar @ 2026-04-17 1:04 UTC (permalink / raw) To: Conor Dooley, Guenter Roeck Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, Shuah Khan, linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org > > > > > > On the previous version, you got an LLM comment about not having the > > > interrupts property amongst other things. > > > I think the other things got implemented, but I didn't see any reply > > > to the bot about that? I wasn't sure if it was that type of bot. I'll try replying on the other patch review. I just added a note in the cover letter change log about the lacking smbalert. > > > I think the answer is that it shouldn't because the pin it > > > referenced doesn't exist, but when looking at the schematic I have > > > to wonder if > > > > I had to look this up in the datasheet. A SMBus chip with no alert pin > > is a bit odd, but you are correct. > > > > > there should be an interrupts property for dealing with "pgood"? > > > > > FWIW, I have never seen that. Normally such pins are used to take > > devices out of reset. > > It's an output on this device seemingly. I don't care if the driver ignores it, but > for completeness (and we like completeness with > bindings) I think it should be documented as an interrupt or gpio. Alright, I'll add it as an interrupt: optional power-good signal Regards, Alexis ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: hwmon: pmbus: add max20830 2026-04-17 1:04 ` Torreno, Alexis Czezar @ 2026-04-17 3:22 ` Guenter Roeck 2026-04-17 3:32 ` Torreno, Alexis Czezar 0 siblings, 1 reply; 10+ messages in thread From: Guenter Roeck @ 2026-04-17 3:22 UTC (permalink / raw) To: Torreno, Alexis Czezar, Conor Dooley Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, Shuah Khan, linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org On 4/16/26 18:04, Torreno, Alexis Czezar wrote: > >>>> >>>> On the previous version, you got an LLM comment about not having the >>>> interrupts property amongst other things. >>>> I think the other things got implemented, but I didn't see any reply >>>> to the bot about that? > > I wasn't sure if it was that type of bot. I'll try replying on the other patch review. > I just added a note in the cover letter change log about the lacking smbalert. > >>>> I think the answer is that it shouldn't because the pin it >>>> referenced doesn't exist, but when looking at the schematic I have >>>> to wonder if >>> >>> I had to look this up in the datasheet. A SMBus chip with no alert pin >>> is a bit odd, but you are correct. >>> >>>> there should be an interrupts property for dealing with "pgood"? >>>> >>> FWIW, I have never seen that. Normally such pins are used to take >>> devices out of reset. >> >> It's an output on this device seemingly. I don't care if the driver ignores it, but >> for completeness (and we like completeness with >> bindings) I think it should be documented as an interrupt or gpio. > > Alright, I'll add it as an interrupt: optional power-good signal > Uuh, that really doesn't make any sense. Please at least make it a gpio pin, matching pwr-good-gpios of ti,tps65185.yaml. Guenter ^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH v2 1/2] dt-bindings: hwmon: pmbus: add max20830 2026-04-17 3:22 ` Guenter Roeck @ 2026-04-17 3:32 ` Torreno, Alexis Czezar 0 siblings, 0 replies; 10+ messages in thread From: Torreno, Alexis Czezar @ 2026-04-17 3:32 UTC (permalink / raw) To: Guenter Roeck, Conor Dooley Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, Shuah Khan, linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org > >> > >> It's an output on this device seemingly. I don't care if the driver > >> ignores it, but for completeness (and we like completeness with > >> bindings) I think it should be documented as an interrupt or gpio. > > > > Alright, I'll add it as an interrupt: optional power-good signal > > > > Uuh, that really doesn't make any sense. Please at least make it a gpio pin, > matching pwr-good-gpios of ti,tps65185.yaml. > I see, will do. ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 2/2] hwmon: (pmbus/max20830) add driver for max20830 2026-04-16 7:59 [PATCH v2 0/2] Add support for MAX20830 PMBUS Alexis Czezar Torreno 2026-04-16 7:59 ` [PATCH v2 1/2] dt-bindings: hwmon: pmbus: add max20830 Alexis Czezar Torreno @ 2026-04-16 7:59 ` Alexis Czezar Torreno 2026-04-16 14:38 ` Nuno Sá 1 sibling, 1 reply; 10+ messages in thread From: Alexis Czezar Torreno @ 2026-04-16 7:59 UTC (permalink / raw) To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, Shuah Khan Cc: linux-hwmon, devicetree, linux-kernel, linux-doc, Alexis Czezar Torreno Add support for MAX20830 step-down DC-DC switching regulator with PMBus interface. It allows monitoring of input/output voltage, output current and temperature through the PMBus serial interface. Signed-off-by: Alexis Czezar Torreno <alexisczezar.torreno@analog.com> --- Documentation/hwmon/index.rst | 1 + Documentation/hwmon/max20830.rst | 49 +++++++++++++++++++++++ MAINTAINERS | 2 + drivers/hwmon/pmbus/Kconfig | 9 +++++ drivers/hwmon/pmbus/Makefile | 1 + drivers/hwmon/pmbus/max20830.c | 86 ++++++++++++++++++++++++++++++++++++++++ 6 files changed, 148 insertions(+) diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst index 8b655e5d6b68b90c697a52c7bf526e81d370caf7..56f7eb761be76dd627a2f34135abad05203b0582 100644 --- a/Documentation/hwmon/index.rst +++ b/Documentation/hwmon/index.rst @@ -158,6 +158,7 @@ Hardware Monitoring Kernel Drivers max197 max20730 max20751 + max20830 max31722 max31730 max31760 diff --git a/Documentation/hwmon/max20830.rst b/Documentation/hwmon/max20830.rst new file mode 100644 index 0000000000000000000000000000000000000000..936e409dcc5c0898dde27d782308d4a7e1357e73 --- /dev/null +++ b/Documentation/hwmon/max20830.rst @@ -0,0 +1,49 @@ +.. SPDX-License-Identifier: GPL-2.0 + +Kernel driver max20830 +====================== + +Supported chips: + + * Analog Devices MAX20830 + + Prefix: 'max20830' + + Addresses scanned: - + + Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/max20830.pdf + +Author: + + - Alexis Czezar Torreno <alexisczezar.torreno@analog.com> + + +Description +----------- + +This driver supports hardware monitoring for Analog Devices MAX20830 +Step-Down Switching Regulator with PMBus Interface. + +The MAX20830 is a 2.7V to 16V, 30A fully integrated step-down DC-DC switching +regulator. 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. + +Sysfs entries +------------- + +================= ======================================== +in1_label "vin" +in1_input Measured input voltage +in1_alarm Input voltage alarm +in2_label "vout1" +in2_input Measured output voltage +in2_alarm Output voltage alarm +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 031c743e979521a92ed9ac67915c178ce31727bd..d6a6745e2dae29c3b8f80bbe61c54a2f5ecd9f47 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -15585,6 +15585,8 @@ L: linux-hwmon@vger.kernel.org S: Supported W: https://ez.analog.com/linux-software-drivers F: Documentation/devicetree/bindings/hwmon/pmbus/adi,max20830.yaml +F: Documentation/hwmon/max20830.rst +F: drivers/hwmon/pmbus/max20830.c MAX2175 SDR TUNER DRIVER M: Ramesh Shanmugasundaram <rashanmu@gmail.com> diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig index 8f4bff375ecbc355f5ed3400855c2852ec2aa5ef..987705bf45b75b7b91ccc469247909f3c3f53d77 100644 --- a/drivers/hwmon/pmbus/Kconfig +++ b/drivers/hwmon/pmbus/Kconfig @@ -365,6 +365,15 @@ config SENSORS_MAX20751 This driver can also be built as a module. If so, the module will be called max20751. +config SENSORS_MAX20830 + tristate "Analog Devices MAX20830" + help + If you say yes here you get hardware monitoring support for Analog + Devices MAX20830. + + This driver can also be built as a module. If so, the module will + be called max20830. + config SENSORS_MAX31785 tristate "Maxim MAX31785 and compatibles" help diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile index 7129b62bc00f8a2e98de14004997752a856dfda2..bc52f930e0825a902a0dd1c9e2b44f2e8d577c35 100644 --- a/drivers/hwmon/pmbus/Makefile +++ b/drivers/hwmon/pmbus/Makefile @@ -36,6 +36,7 @@ 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_MAX20830) += max20830.o obj-$(CONFIG_SENSORS_MAX31785) += max31785.o obj-$(CONFIG_SENSORS_MAX34440) += max34440.o obj-$(CONFIG_SENSORS_MAX8688) += max8688.o diff --git a/drivers/hwmon/pmbus/max20830.c b/drivers/hwmon/pmbus/max20830.c new file mode 100644 index 0000000000000000000000000000000000000000..21ea8b59150cb0564f1776ee08131bad7fdef003 --- /dev/null +++ b/drivers/hwmon/pmbus/max20830.c @@ -0,0 +1,86 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Hardware monitoring driver for Analog Devices MAX20830 + * + * Copyright (C) 2026 Analog Devices, Inc. + */ + +#include <linux/i2c.h> +#include <linux/mod_devicetable.h> +#include <linux/module.h> +#include "pmbus.h" + +static struct pmbus_driver_info max20830_info = { + .pages = 1, + .format[PSC_VOLTAGE_IN] = linear, + .format[PSC_VOLTAGE_OUT] = linear, + .format[PSC_CURRENT_OUT] = linear, + .format[PSC_TEMPERATURE] = linear, + .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 max20830_probe(struct i2c_client *client) +{ + u8 buf[I2C_SMBUS_BLOCK_MAX + 1]; + u8 len; + int ret; + + if (!i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_READ_I2C_BLOCK)) + return -ENODEV; + + /* + * Use i2c_smbus_read_i2c_block_data() instead of + * i2c_smbus_read_block_data() to support I2C controllers + * which do not support SMBus block reads. + */ + ret = i2c_smbus_read_i2c_block_data(client, PMBUS_IC_DEVICE_ID, + I2C_SMBUS_BLOCK_MAX, buf); + if (ret < 0) + return dev_err_probe(&client->dev, ret, + "Failed to read IC_DEVICE_ID\n"); + + /* First byte is the block length. */ + len = buf[0]; + if (len != 9) + return dev_err_probe(&client->dev, -ENODEV, + "Unexpected IC_DEVICE_ID response\n"); + + buf[len] = '\0'; + if (strncmp(buf + 1, "MAX20830", 8)) + return dev_err_probe(&client->dev, -ENODEV, + "Unsupported device: '%s'\n", buf + 1); + + return pmbus_do_probe(client, &max20830_info); +} + +static const struct i2c_device_id max20830_id[] = { + {"max20830"}, + { } +}; +MODULE_DEVICE_TABLE(i2c, max20830_id); + +static const struct of_device_id max20830_of_match[] = { + { .compatible = "adi,max20830" }, + { } +}; +MODULE_DEVICE_TABLE(of, max20830_of_match); + +static struct i2c_driver max20830_driver = { + .driver = { + .name = "max20830", + .of_match_table = max20830_of_match, + }, + .probe = max20830_probe, + .id_table = max20830_id, +}; + +module_i2c_driver(max20830_driver); + +MODULE_AUTHOR("Alexis Czezar Torreno <alexisczezar.torreno@analog.com>"); +MODULE_DESCRIPTION("PMBus driver for Analog Devices MAX20830"); +MODULE_LICENSE("GPL"); +MODULE_IMPORT_NS("PMBUS"); -- 2.34.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2 2/2] hwmon: (pmbus/max20830) add driver for max20830 2026-04-16 7:59 ` [PATCH v2 2/2] hwmon: (pmbus/max20830) add driver for max20830 Alexis Czezar Torreno @ 2026-04-16 14:38 ` Nuno Sá 0 siblings, 0 replies; 10+ messages in thread From: Nuno Sá @ 2026-04-16 14:38 UTC (permalink / raw) To: Alexis Czezar Torreno Cc: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, Shuah Khan, linux-hwmon, devicetree, linux-kernel, linux-doc On Thu, Apr 16, 2026 at 03:59:11PM +0800, Alexis Czezar Torreno wrote: > Add support for MAX20830 step-down DC-DC switching regulator with > PMBus interface. It allows monitoring of input/output voltage, > output current and temperature through the PMBus serial interface. > > Signed-off-by: Alexis Czezar Torreno <alexisczezar.torreno@analog.com> > --- > Documentation/hwmon/index.rst | 1 + > Documentation/hwmon/max20830.rst | 49 +++++++++++++++++++++++ > MAINTAINERS | 2 + > drivers/hwmon/pmbus/Kconfig | 9 +++++ > drivers/hwmon/pmbus/Makefile | 1 + > drivers/hwmon/pmbus/max20830.c | 86 ++++++++++++++++++++++++++++++++++++++++ > 6 files changed, 148 insertions(+) > > diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst > index 8b655e5d6b68b90c697a52c7bf526e81d370caf7..56f7eb761be76dd627a2f34135abad05203b0582 100644 > --- a/Documentation/hwmon/index.rst > +++ b/Documentation/hwmon/index.rst > @@ -158,6 +158,7 @@ Hardware Monitoring Kernel Drivers > max197 > max20730 > max20751 > + max20830 > max31722 > max31730 > max31760 > diff --git a/Documentation/hwmon/max20830.rst b/Documentation/hwmon/max20830.rst > new file mode 100644 > index 0000000000000000000000000000000000000000..936e409dcc5c0898dde27d782308d4a7e1357e73 > --- /dev/null > +++ b/Documentation/hwmon/max20830.rst > @@ -0,0 +1,49 @@ > +.. SPDX-License-Identifier: GPL-2.0 > + > +Kernel driver max20830 > +====================== > + > +Supported chips: > + > + * Analog Devices MAX20830 > + > + Prefix: 'max20830' > + > + Addresses scanned: - > + > + Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/max20830.pdf > + > +Author: > + > + - Alexis Czezar Torreno <alexisczezar.torreno@analog.com> > + > + > +Description > +----------- > + > +This driver supports hardware monitoring for Analog Devices MAX20830 > +Step-Down Switching Regulator with PMBus Interface. > + > +The MAX20830 is a 2.7V to 16V, 30A fully integrated step-down DC-DC switching > +regulator. 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. > + > +Sysfs entries > +------------- > + > +================= ======================================== > +in1_label "vin" > +in1_input Measured input voltage > +in1_alarm Input voltage alarm > +in2_label "vout1" > +in2_input Measured output voltage > +in2_alarm Output voltage alarm > +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 031c743e979521a92ed9ac67915c178ce31727bd..d6a6745e2dae29c3b8f80bbe61c54a2f5ecd9f47 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -15585,6 +15585,8 @@ L: linux-hwmon@vger.kernel.org > S: Supported > W: https://ez.analog.com/linux-software-drivers > F: Documentation/devicetree/bindings/hwmon/pmbus/adi,max20830.yaml > +F: Documentation/hwmon/max20830.rst > +F: drivers/hwmon/pmbus/max20830.c > > MAX2175 SDR TUNER DRIVER > M: Ramesh Shanmugasundaram <rashanmu@gmail.com> > diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig > index 8f4bff375ecbc355f5ed3400855c2852ec2aa5ef..987705bf45b75b7b91ccc469247909f3c3f53d77 100644 > --- a/drivers/hwmon/pmbus/Kconfig > +++ b/drivers/hwmon/pmbus/Kconfig > @@ -365,6 +365,15 @@ config SENSORS_MAX20751 > This driver can also be built as a module. If so, the module will > be called max20751. > > +config SENSORS_MAX20830 > + tristate "Analog Devices MAX20830" > + help > + If you say yes here you get hardware monitoring support for Analog > + Devices MAX20830. > + > + This driver can also be built as a module. If so, the module will > + be called max20830. > + > config SENSORS_MAX31785 > tristate "Maxim MAX31785 and compatibles" > help > diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile > index 7129b62bc00f8a2e98de14004997752a856dfda2..bc52f930e0825a902a0dd1c9e2b44f2e8d577c35 100644 > --- a/drivers/hwmon/pmbus/Makefile > +++ b/drivers/hwmon/pmbus/Makefile > @@ -36,6 +36,7 @@ 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_MAX20830) += max20830.o > obj-$(CONFIG_SENSORS_MAX31785) += max31785.o > obj-$(CONFIG_SENSORS_MAX34440) += max34440.o > obj-$(CONFIG_SENSORS_MAX8688) += max8688.o > diff --git a/drivers/hwmon/pmbus/max20830.c b/drivers/hwmon/pmbus/max20830.c > new file mode 100644 > index 0000000000000000000000000000000000000000..21ea8b59150cb0564f1776ee08131bad7fdef003 > --- /dev/null > +++ b/drivers/hwmon/pmbus/max20830.c > @@ -0,0 +1,86 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Hardware monitoring driver for Analog Devices MAX20830 > + * > + * Copyright (C) 2026 Analog Devices, Inc. > + */ > + > +#include <linux/i2c.h> > +#include <linux/mod_devicetable.h> > +#include <linux/module.h> > +#include "pmbus.h" > + > +static struct pmbus_driver_info max20830_info = { > + .pages = 1, > + .format[PSC_VOLTAGE_IN] = linear, > + .format[PSC_VOLTAGE_OUT] = linear, > + .format[PSC_CURRENT_OUT] = linear, > + .format[PSC_TEMPERATURE] = linear, > + .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 max20830_probe(struct i2c_client *client) > +{ > + u8 buf[I2C_SMBUS_BLOCK_MAX + 1]; AI seems a bit paranoid but maybe to be on the safe side just initialize the above buffer. > + u8 len; > + int ret; > + > + if (!i2c_check_functionality(client->adapter, > + I2C_FUNC_SMBUS_READ_I2C_BLOCK)) > + return -ENODEV; > + > + /* > + * Use i2c_smbus_read_i2c_block_data() instead of > + * i2c_smbus_read_block_data() to support I2C controllers > + * which do not support SMBus block reads. > + */ > + ret = i2c_smbus_read_i2c_block_data(client, PMBUS_IC_DEVICE_ID, > + I2C_SMBUS_BLOCK_MAX, buf); > + if (ret < 0) > + return dev_err_probe(&client->dev, ret, > + "Failed to read IC_DEVICE_ID\n"); > + > + /* First byte is the block length. */ > + len = buf[0]; > + if (len != 9) > + return dev_err_probe(&client->dev, -ENODEV, > + "Unexpected IC_DEVICE_ID response\n"); > + > + buf[len] = '\0'; It looks like it has a point in the above though. - Nuno Sá ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-04-17 3:32 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-04-16 7:59 [PATCH v2 0/2] Add support for MAX20830 PMBUS Alexis Czezar Torreno 2026-04-16 7:59 ` [PATCH v2 1/2] dt-bindings: hwmon: pmbus: add max20830 Alexis Czezar Torreno 2026-04-16 15:51 ` Conor Dooley 2026-04-16 18:01 ` Guenter Roeck 2026-04-16 21:31 ` Conor Dooley 2026-04-17 1:04 ` Torreno, Alexis Czezar 2026-04-17 3:22 ` Guenter Roeck 2026-04-17 3:32 ` Torreno, Alexis Czezar 2026-04-16 7:59 ` [PATCH v2 2/2] hwmon: (pmbus/max20830) add driver for max20830 Alexis Czezar Torreno 2026-04-16 14:38 ` Nuno Sá
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox