* [PATCH v2 0/2] Add support for Infineon eFuse XDP720/XDP730 @ 2026-05-29 5:42 ASHISH YADAV 2026-05-29 5:42 ` [PATCH v2 1/2] dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730 ASHISH YADAV 2026-05-29 5:42 ` [PATCH v2 2/2] hwmon:(pmbus/xdp730) Add support for efuse xdp720/xdp730 ASHISH YADAV 0 siblings, 2 replies; 7+ messages in thread From: ASHISH YADAV @ 2026-05-29 5:42 UTC (permalink / raw) To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-hwmon, devicetree, linux-kernel, Ashish Yadav [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain; charset=y, Size: 2197 bytes --] From: Ashish Yadav <ashish.yadav@infineon.com> Hi, These patches add support for Infineon XDP720/XDP730 Digital eFuse Controllers. The XDP720 and XDP730 are PMBus-compliant digital eFuse controllers with an integrated current sensor.They provide accurate system telemetry (V, I, P, T) and report analog current at the IMON pin for post-processing. Both parts share the same PMBus register map and direct-format coefficients; they differ in the GIMON gain step exposed via the TELEMETRY_AVG register (bit 10) and in the VDD_VIN pin number (XDP720: pin 9, XDP730: pin 20). The Current and Power measurement depends on the RIMON and GIMON values. The GIMON (microA/A) depends on the 10th bit of TELEMETRY_AVG PMBUS Register. The value of RIMON (kohm) can be provided by the user through device tree using infineon,rimon-micro-ohms property. Datasheets: - XDP720: https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp720-001-datasheet-en.pdf - XDP730: https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp730-001-datasheet-en.pdf With Best Regards, Ashish Yadav --- Changes in v2: - Link to v1: https://lore.kernel.org/all/20260519075558.91466-1-Ashish.Yadav@infineon.com/ - Integrated XDP720/XDP730 drivers into one driver. https://lore.kernel.org/all/51133193-57fb-4a22-bf9e-9817f1f52ad5@roeck-us.net/ Ashish Yadav (2): dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730 hwmon:(pmbus/xdp730) Add support for efuse xdp720/xdp730 .../bindings/hwmon/pmbus/infineon,xdp720.yaml | 59 ------- .../bindings/hwmon/pmbus/infineon,xdp730.yaml | 80 +++++++++ drivers/hwmon/pmbus/Kconfig | 8 +- drivers/hwmon/pmbus/Makefile | 2 +- drivers/hwmon/pmbus/xdp720.c | 128 -------------- drivers/hwmon/pmbus/xdp730.c | 159 ++++++++++++++++++ 6 files changed, 244 insertions(+), 192 deletions(-) delete mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml create mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml delete mode 100644 drivers/hwmon/pmbus/xdp720.c create mode 100644 drivers/hwmon/pmbus/xdp730.c -- 2.39.5 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 1/2] dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730 2026-05-29 5:42 [PATCH v2 0/2] Add support for Infineon eFuse XDP720/XDP730 ASHISH YADAV @ 2026-05-29 5:42 ` ASHISH YADAV 2026-05-29 6:00 ` sashiko-bot 2026-05-29 16:41 ` Conor Dooley 2026-05-29 5:42 ` [PATCH v2 2/2] hwmon:(pmbus/xdp730) Add support for efuse xdp720/xdp730 ASHISH YADAV 1 sibling, 2 replies; 7+ messages in thread From: ASHISH YADAV @ 2026-05-29 5:42 UTC (permalink / raw) To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-hwmon, devicetree, linux-kernel, Ashish Yadav From: Ashish Yadav <ashish.yadav@infineon.com> Add documentation for the device tree binding of the XDP720/XDP730 eFuse Controllers. Signed-off-by: Ashish Yadav <ashish.yadav@infineon.com> --- .../bindings/hwmon/pmbus/infineon,xdp720.yaml | 59 -------------- .../bindings/hwmon/pmbus/infineon,xdp730.yaml | 80 +++++++++++++++++++ 2 files changed, 80 insertions(+), 59 deletions(-) delete mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml create mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml deleted file mode 100644 index 72bc3a5e7139..000000000000 --- a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml +++ /dev/null @@ -1,59 +0,0 @@ -# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) -%YAML 1.2 ---- - -$id: http://devicetree.org/schemas/hwmon/pmbus/infineon,xdp720.yaml# -$schema: http://devicetree.org/meta-schemas/core.yaml# - -title: Infineon XDP720 Digital eFuse Controller - -maintainers: - - Ashish Yadav <ashish.yadav@infineon.com> - -description: | - The XDP720 is an eFuse with integrated current sensor and digital - controller. It provides accurate system telemetry (V, I, P, T) and - reports analog current at the IMON pin for post-processing. - - Datasheet: - https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp720-001-datasheet-en.pdf - -properties: - compatible: - enum: - - infineon,xdp720 - - reg: - maxItems: 1 - - infineon,rimon-micro-ohms: - description: - The value of the RIMON resistor, in micro ohms, required to enable - the system overcurrent protection. - - vdd-vin-supply: - description: - Supply for the VDD_VIN pin (pin 9), the IC controller power supply. - Typically connected to the input bus (VIN) through a 100 ohm / 100 nF - RC filter. - -required: - - compatible - - reg - - vdd-vin-supply - -additionalProperties: false - -examples: - - | - i2c { - #address-cells = <1>; - #size-cells = <0>; - - hwmon@11 { - compatible = "infineon,xdp720"; - reg = <0x11>; - vdd-vin-supply = <&vdd_vin>; - infineon,rimon-micro-ohms = <1098000000>; /* 1.098k ohm */ - }; - }; diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml new file mode 100644 index 000000000000..fdbc577bccdd --- /dev/null +++ b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml @@ -0,0 +1,80 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- + +$id: http://devicetree.org/schemas/hwmon/pmbus/infineon,xdp730.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Infineon XDP720 / XDP730 Digital eFuse Controllers + +maintainers: + - Ashish Yadav <ashish.yadav@infineon.com> + +description: | + The XDP720 and XDP730 are PMBus-compliant digital eFuse controllers + with an integrated current sensor. They provide accurate system + telemetry (V, I, P, T) and report analog current at the IMON pin for + post-processing. + + Both parts share the same PMBus register map and direct-format + coefficients; they differ in the GIMON gain step exposed via the + TELEMETRY_AVG register (bit 10) and in the VDD_VIN pin number + (XDP720: pin 9, XDP730: pin 20). + + Datasheets: + - XDP720: https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp720-001-datasheet-en.pdf + - XDP730: https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp730-001-datasheet-en.pdf + +properties: + compatible: + enum: + - infineon,xdp720 + - infineon,xdp730 + + reg: + maxItems: 1 + + infineon,rimon-micro-ohms: + description: + The value of the RIMON resistor, in micro ohms, required to enable + the system overcurrent protection. + + vdd-vin-supply: + description: + Supply for the VDD_VIN pin (XDP720 pin 9, XDP730 pin 20), the IC + controller power supply. Typically connected to the input bus + (VIN) through a 100 ohm / 100 nF RC filter. + +required: + - compatible + - reg + - vdd-vin-supply + +additionalProperties: false + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + efuse@11 { + compatible = "infineon,xdp720"; + reg = <0x11>; + vdd-vin-supply = <&vdd_vin>; + infineon,rimon-micro-ohms = <1098000000>; /* 1.098k ohm */ + }; + }; + + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + efuse@12 { + compatible = "infineon,xdp730"; + reg = <0x12>; + vdd-vin-supply = <&vdd_vin>; + infineon,rimon-micro-ohms = <1098000000>; /* 1.098k ohm */ + }; + }; -- 2.39.5 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730 2026-05-29 5:42 ` [PATCH v2 1/2] dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730 ASHISH YADAV @ 2026-05-29 6:00 ` sashiko-bot 2026-05-29 16:41 ` Conor Dooley 1 sibling, 0 replies; 7+ messages in thread From: sashiko-bot @ 2026-05-29 6:00 UTC (permalink / raw) To: ASHISH YADAV; +Cc: devicetree, conor+dt, linux-hwmon, robh > From: Ashish Yadav <ashish.yadav@infineon.com> > > Add documentation for the device tree binding of the XDP720/XDP730 > eFuse Controllers. > > Signed-off-by: Ashish Yadav <ashish.yadav@infineon.com> Sashiko has reviewed this patch and found no issues. It looks great! -- Sashiko AI review · https://sashiko.dev/#/patchset/20260529054218.5184-1-Ashish.Yadav@infineon.com?part=1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730 2026-05-29 5:42 ` [PATCH v2 1/2] dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730 ASHISH YADAV 2026-05-29 6:00 ` sashiko-bot @ 2026-05-29 16:41 ` Conor Dooley 2026-06-01 7:05 ` ashish yadav 1 sibling, 1 reply; 7+ messages in thread From: Conor Dooley @ 2026-05-29 16:41 UTC (permalink / raw) To: ASHISH YADAV Cc: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-hwmon, devicetree, linux-kernel, Ashish Yadav [-- Attachment #1: Type: text/plain, Size: 5721 bytes --] On Fri, May 29, 2026 at 11:12:17AM +0530, ASHISH YADAV wrote: > From: Ashish Yadav <ashish.yadav@infineon.com> > > Add documentation for the device tree binding of the XDP720/XDP730 > eFuse Controllers. > > Signed-off-by: Ashish Yadav <ashish.yadav@infineon.com> > --- > .../bindings/hwmon/pmbus/infineon,xdp720.yaml | 59 -------------- > .../bindings/hwmon/pmbus/infineon,xdp730.yaml | 80 +++++++++++++++++++ This rename just bloats out the diff, no thanks. Please do not do this, certainly not without a justification. pw-bot: changes-requested Thanks, Conor. > 2 files changed, 80 insertions(+), 59 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml > create mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml > > diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml > deleted file mode 100644 > index 72bc3a5e7139..000000000000 > --- a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml > +++ /dev/null > @@ -1,59 +0,0 @@ > -# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > -%YAML 1.2 > ---- > - > -$id: http://devicetree.org/schemas/hwmon/pmbus/infineon,xdp720.yaml# > -$schema: http://devicetree.org/meta-schemas/core.yaml# > - > -title: Infineon XDP720 Digital eFuse Controller > - > -maintainers: > - - Ashish Yadav <ashish.yadav@infineon.com> > - > -description: | > - The XDP720 is an eFuse with integrated current sensor and digital > - controller. It provides accurate system telemetry (V, I, P, T) and > - reports analog current at the IMON pin for post-processing. > - > - Datasheet: > - https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp720-001-datasheet-en.pdf > - > -properties: > - compatible: > - enum: > - - infineon,xdp720 > - > - reg: > - maxItems: 1 > - > - infineon,rimon-micro-ohms: > - description: > - The value of the RIMON resistor, in micro ohms, required to enable > - the system overcurrent protection. > - > - vdd-vin-supply: > - description: > - Supply for the VDD_VIN pin (pin 9), the IC controller power supply. > - Typically connected to the input bus (VIN) through a 100 ohm / 100 nF > - RC filter. > - > -required: > - - compatible > - - reg > - - vdd-vin-supply > - > -additionalProperties: false > - > -examples: > - - | > - i2c { > - #address-cells = <1>; > - #size-cells = <0>; > - > - hwmon@11 { > - compatible = "infineon,xdp720"; > - reg = <0x11>; > - vdd-vin-supply = <&vdd_vin>; > - infineon,rimon-micro-ohms = <1098000000>; /* 1.098k ohm */ > - }; > - }; > diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml > new file mode 100644 > index 000000000000..fdbc577bccdd > --- /dev/null > +++ b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml > @@ -0,0 +1,80 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > + > +$id: http://devicetree.org/schemas/hwmon/pmbus/infineon,xdp730.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Infineon XDP720 / XDP730 Digital eFuse Controllers > + > +maintainers: > + - Ashish Yadav <ashish.yadav@infineon.com> > + > +description: | > + The XDP720 and XDP730 are PMBus-compliant digital eFuse controllers > + with an integrated current sensor. They provide accurate system > + telemetry (V, I, P, T) and report analog current at the IMON pin for > + post-processing. > + > + Both parts share the same PMBus register map and direct-format > + coefficients; they differ in the GIMON gain step exposed via the > + TELEMETRY_AVG register (bit 10) and in the VDD_VIN pin number > + (XDP720: pin 9, XDP730: pin 20). > + > + Datasheets: > + - XDP720: https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp720-001-datasheet-en.pdf > + - XDP730: https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp730-001-datasheet-en.pdf > + > +properties: > + compatible: > + enum: > + - infineon,xdp720 > + - infineon,xdp730 > + > + reg: > + maxItems: 1 > + > + infineon,rimon-micro-ohms: > + description: > + The value of the RIMON resistor, in micro ohms, required to enable > + the system overcurrent protection. > + > + vdd-vin-supply: > + description: > + Supply for the VDD_VIN pin (XDP720 pin 9, XDP730 pin 20), the IC > + controller power supply. Typically connected to the input bus > + (VIN) through a 100 ohm / 100 nF RC filter. > + > +required: > + - compatible > + - reg > + - vdd-vin-supply > + > +additionalProperties: false > + > +examples: > + - | > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + efuse@11 { > + compatible = "infineon,xdp720"; > + reg = <0x11>; > + vdd-vin-supply = <&vdd_vin>; > + infineon,rimon-micro-ohms = <1098000000>; /* 1.098k ohm */ > + }; > + }; > + > + - | > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + efuse@12 { > + compatible = "infineon,xdp730"; > + reg = <0x12>; > + vdd-vin-supply = <&vdd_vin>; > + infineon,rimon-micro-ohms = <1098000000>; /* 1.098k ohm */ > + }; > + }; > -- > 2.39.5 > [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730 2026-05-29 16:41 ` Conor Dooley @ 2026-06-01 7:05 ` ashish yadav 0 siblings, 0 replies; 7+ messages in thread From: ashish yadav @ 2026-06-01 7:05 UTC (permalink / raw) To: Conor Dooley Cc: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-hwmon, devicetree, linux-kernel, Ashish Yadav Hi Conor, Thanks for your time & feedback. I will revert back the file name to infineon,xdp720.yaml. I hope it will resolve the issues. With Best Regards Ashish Yadav On Fri, May 29, 2026 at 10:11 PM Conor Dooley <conor@kernel.org> wrote: > > On Fri, May 29, 2026 at 11:12:17AM +0530, ASHISH YADAV wrote: > > From: Ashish Yadav <ashish.yadav@infineon.com> > > > > Add documentation for the device tree binding of the XDP720/XDP730 > > eFuse Controllers. > > > > Signed-off-by: Ashish Yadav <ashish.yadav@infineon.com> > > --- > > .../bindings/hwmon/pmbus/infineon,xdp720.yaml | 59 -------------- > > .../bindings/hwmon/pmbus/infineon,xdp730.yaml | 80 +++++++++++++++++++ > > This rename just bloats out the diff, no thanks. Please do not do this, > certainly not without a justification. > pw-bot: changes-requested > > Thanks, > Conor. > > > 2 files changed, 80 insertions(+), 59 deletions(-) > > delete mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml > > create mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml > > > > diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml > > deleted file mode 100644 > > index 72bc3a5e7139..000000000000 > > --- a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml > > +++ /dev/null > > @@ -1,59 +0,0 @@ > > -# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > > -%YAML 1.2 > > ---- > > - > > -$id: http://devicetree.org/schemas/hwmon/pmbus/infineon,xdp720.yaml# > > -$schema: http://devicetree.org/meta-schemas/core.yaml# > > - > > -title: Infineon XDP720 Digital eFuse Controller > > - > > -maintainers: > > - - Ashish Yadav <ashish.yadav@infineon.com> > > - > > -description: | > > - The XDP720 is an eFuse with integrated current sensor and digital > > - controller. It provides accurate system telemetry (V, I, P, T) and > > - reports analog current at the IMON pin for post-processing. > > - > > - Datasheet: > > - https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp720-001-datasheet-en.pdf > > - > > -properties: > > - compatible: > > - enum: > > - - infineon,xdp720 > > - > > - reg: > > - maxItems: 1 > > - > > - infineon,rimon-micro-ohms: > > - description: > > - The value of the RIMON resistor, in micro ohms, required to enable > > - the system overcurrent protection. > > - > > - vdd-vin-supply: > > - description: > > - Supply for the VDD_VIN pin (pin 9), the IC controller power supply. > > - Typically connected to the input bus (VIN) through a 100 ohm / 100 nF > > - RC filter. > > - > > -required: > > - - compatible > > - - reg > > - - vdd-vin-supply > > - > > -additionalProperties: false > > - > > -examples: > > - - | > > - i2c { > > - #address-cells = <1>; > > - #size-cells = <0>; > > - > > - hwmon@11 { > > - compatible = "infineon,xdp720"; > > - reg = <0x11>; > > - vdd-vin-supply = <&vdd_vin>; > > - infineon,rimon-micro-ohms = <1098000000>; /* 1.098k ohm */ > > - }; > > - }; > > diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml > > new file mode 100644 > > index 000000000000..fdbc577bccdd > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml > > @@ -0,0 +1,80 @@ > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > + > > +$id: http://devicetree.org/schemas/hwmon/pmbus/infineon,xdp730.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Infineon XDP720 / XDP730 Digital eFuse Controllers > > + > > +maintainers: > > + - Ashish Yadav <ashish.yadav@infineon.com> > > + > > +description: | > > + The XDP720 and XDP730 are PMBus-compliant digital eFuse controllers > > + with an integrated current sensor. They provide accurate system > > + telemetry (V, I, P, T) and report analog current at the IMON pin for > > + post-processing. > > + > > + Both parts share the same PMBus register map and direct-format > > + coefficients; they differ in the GIMON gain step exposed via the > > + TELEMETRY_AVG register (bit 10) and in the VDD_VIN pin number > > + (XDP720: pin 9, XDP730: pin 20). > > + > > + Datasheets: > > + - XDP720: https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp720-001-datasheet-en.pdf > > + - XDP730: https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp730-001-datasheet-en.pdf > > + > > +properties: > > + compatible: > > + enum: > > + - infineon,xdp720 > > + - infineon,xdp730 > > + > > + reg: > > + maxItems: 1 > > + > > + infineon,rimon-micro-ohms: > > + description: > > + The value of the RIMON resistor, in micro ohms, required to enable > > + the system overcurrent protection. > > + > > + vdd-vin-supply: > > + description: > > + Supply for the VDD_VIN pin (XDP720 pin 9, XDP730 pin 20), the IC > > + controller power supply. Typically connected to the input bus > > + (VIN) through a 100 ohm / 100 nF RC filter. > > + > > +required: > > + - compatible > > + - reg > > + - vdd-vin-supply > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + efuse@11 { > > + compatible = "infineon,xdp720"; > > + reg = <0x11>; > > + vdd-vin-supply = <&vdd_vin>; > > + infineon,rimon-micro-ohms = <1098000000>; /* 1.098k ohm */ > > + }; > > + }; > > + > > + - | > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + efuse@12 { > > + compatible = "infineon,xdp730"; > > + reg = <0x12>; > > + vdd-vin-supply = <&vdd_vin>; > > + infineon,rimon-micro-ohms = <1098000000>; /* 1.098k ohm */ > > + }; > > + }; > > -- > > 2.39.5 > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 2/2] hwmon:(pmbus/xdp730) Add support for efuse xdp720/xdp730 2026-05-29 5:42 [PATCH v2 0/2] Add support for Infineon eFuse XDP720/XDP730 ASHISH YADAV 2026-05-29 5:42 ` [PATCH v2 1/2] dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730 ASHISH YADAV @ 2026-05-29 5:42 ` ASHISH YADAV 2026-05-29 6:29 ` sashiko-bot 1 sibling, 1 reply; 7+ messages in thread From: ASHISH YADAV @ 2026-05-29 5:42 UTC (permalink / raw) To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-hwmon, devicetree, linux-kernel, Ashish Yadav From: Ashish Yadav <ashish.yadav@infineon.com> Add the pmbus driver for Infineon XDP720/XDP730 Digital eFuse Controllers. Signed-off-by: Ashish Yadav <ashish.yadav@infineon.com> --- XDP720/XDP730 Digital eFuse Controllers provides accurate system telemetry (V, I, P, T) and reports analog current at the IMON pin for post-processing. The Current and Power measurement depends on the RIMON and GIMON values. The GIMON (microA/A) depends on the 10th bit of TELEMETRY_AVG PMBUS Register. The value of RIMON (kohm) can be provided by the user through device tree using infineon,rimon-micro-ohms property. --- drivers/hwmon/pmbus/Kconfig | 8 +- drivers/hwmon/pmbus/Makefile | 2 +- drivers/hwmon/pmbus/xdp720.c | 128 ---------------------------- drivers/hwmon/pmbus/xdp730.c | 159 +++++++++++++++++++++++++++++++++++ 4 files changed, 164 insertions(+), 133 deletions(-) delete mode 100644 drivers/hwmon/pmbus/xdp720.c create mode 100644 drivers/hwmon/pmbus/xdp730.c diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig index 8f4bff375ecb..eb3ed41c6fdc 100644 --- a/drivers/hwmon/pmbus/Kconfig +++ b/drivers/hwmon/pmbus/Kconfig @@ -711,14 +711,14 @@ config SENSORS_XDP710 This driver can also be built as a module. If so, the module will be called xdp710. -config SENSORS_XDP720 - tristate "Infineon XDP720 family" +config SENSORS_XDP730 + tristate "Infineon XDP730 family" help If you say yes here you get hardware monitoring support for Infineon - XDP720. + XDP720 and XDP730 Digital eFuse Controllers. This driver can also be built as a module. If so, the module will - be called xdp720. + be called xdp730. config SENSORS_XDPE152 tristate "Infineon XDPE152 family" diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile index 7129b62bc00f..6d31082aa91f 100644 --- a/drivers/hwmon/pmbus/Makefile +++ b/drivers/hwmon/pmbus/Makefile @@ -69,7 +69,7 @@ obj-$(CONFIG_SENSORS_TPS546D24) += tps546d24.o obj-$(CONFIG_SENSORS_UCD9000) += ucd9000.o obj-$(CONFIG_SENSORS_UCD9200) += ucd9200.o obj-$(CONFIG_SENSORS_XDP710) += xdp710.o -obj-$(CONFIG_SENSORS_XDP720) += xdp720.o +obj-$(CONFIG_SENSORS_XDP730) += xdp730.o obj-$(CONFIG_SENSORS_XDPE122) += xdpe12284.o obj-$(CONFIG_SENSORS_XDPE152) += xdpe152c4.o obj-$(CONFIG_SENSORS_XDPE1A2G7B) += xdpe1a2g7b.o diff --git a/drivers/hwmon/pmbus/xdp720.c b/drivers/hwmon/pmbus/xdp720.c deleted file mode 100644 index 8729a771f216..000000000000 --- a/drivers/hwmon/pmbus/xdp720.c +++ /dev/null @@ -1,128 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/* - * Hardware monitoring driver for Infineon XDP720 Digital eFuse Controller - * - * Copyright (c) 2026 Infineon Technologies. All rights reserved. - */ - -#include <linux/i2c.h> -#include <linux/module.h> -#include <linux/init.h> -#include <linux/kernel.h> -#include <linux/of_device.h> -#include <linux/bitops.h> -#include <linux/math64.h> -#include "pmbus.h" - -/* - * The IMON resistor required to generate the system overcurrent protection. - * Arbitrary default Rimon value: 2k Ohm - */ -#define XDP720_DEFAULT_RIMON 2000000000 /* 2k ohm */ -#define XDP720_TELEMETRY_AVG 0xE9 - -static struct pmbus_driver_info xdp720_info = { - .pages = 1, - .format[PSC_VOLTAGE_IN] = direct, - .format[PSC_VOLTAGE_OUT] = direct, - .format[PSC_CURRENT_OUT] = direct, - .format[PSC_POWER] = direct, - .format[PSC_TEMPERATURE] = direct, - - .m[PSC_VOLTAGE_IN] = 4653, - .b[PSC_VOLTAGE_IN] = 0, - .R[PSC_VOLTAGE_IN] = -2, - .m[PSC_VOLTAGE_OUT] = 4653, - .b[PSC_VOLTAGE_OUT] = 0, - .R[PSC_VOLTAGE_OUT] = -2, - /* - * Current and Power measurement depends on the RIMON (kOhm) and - * GIMON(microA/A) values. - */ - .m[PSC_CURRENT_OUT] = 24668, - .b[PSC_CURRENT_OUT] = 0, - .R[PSC_CURRENT_OUT] = -4, - .m[PSC_POWER] = 4486, - .b[PSC_POWER] = 0, - .R[PSC_POWER] = -1, - .m[PSC_TEMPERATURE] = 54, - .b[PSC_TEMPERATURE] = 22521, - .R[PSC_TEMPERATURE] = -1, - - .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_VOUT | PMBUS_HAVE_PIN | - PMBUS_HAVE_TEMP | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_INPUT | - PMBUS_HAVE_STATUS_TEMP, -}; - -static int xdp720_probe(struct i2c_client *client) -{ - struct pmbus_driver_info *info; - int ret; - u32 rimon; - int gimon; - - info = devm_kmemdup(&client->dev, &xdp720_info, sizeof(*info), - GFP_KERNEL); - if (!info) - return -ENOMEM; - - ret = devm_regulator_get_enable(&client->dev, "vdd-vin"); - if (ret) - return dev_err_probe(&client->dev, ret, - "failed to enable vdd-vin supply\n"); - - ret = i2c_smbus_read_word_data(client, XDP720_TELEMETRY_AVG); - if (ret < 0) { - dev_err(&client->dev, "Can't get TELEMETRY_AVG\n"); - return ret; - } - - ret >>= 10; /* 10th bit of TELEMETRY_AVG REG for GIMON Value */ - ret &= GENMASK(0, 0); - if (ret == 1) - gimon = 18200; /* output gain 18.2 microA/A */ - else - gimon = 9100; /* output gain 9.1 microA/A */ - - if (of_property_read_u32(client->dev.of_node, - "infineon,rimon-micro-ohms", &rimon)) - rimon = XDP720_DEFAULT_RIMON; /* Default if not set via DT */ - if (rimon == 0) - return -EINVAL; - - /* Adapt the current and power scale for each instance */ - info->m[PSC_CURRENT_OUT] = DIV64_U64_ROUND_CLOSEST((u64) - info->m[PSC_CURRENT_OUT] * rimon * gimon, 1000000000000ULL); - info->m[PSC_POWER] = DIV64_U64_ROUND_CLOSEST((u64) - info->m[PSC_POWER] * rimon * gimon, 1000000000000000ULL); - - return pmbus_do_probe(client, info); -} - -static const struct of_device_id xdp720_of_match[] = { - { .compatible = "infineon,xdp720" }, - {} -}; -MODULE_DEVICE_TABLE(of, xdp720_of_match); - -static const struct i2c_device_id xdp720_id[] = { - { "xdp720" }, - {} -}; -MODULE_DEVICE_TABLE(i2c, xdp720_id); - -static struct i2c_driver xdp720_driver = { - .driver = { - .name = "xdp720", - .of_match_table = xdp720_of_match, - }, - .probe = xdp720_probe, - .id_table = xdp720_id, -}; - -module_i2c_driver(xdp720_driver); - -MODULE_AUTHOR("Ashish Yadav <ashish.yadav@infineon.com>"); -MODULE_DESCRIPTION("PMBus driver for Infineon XDP720 Digital eFuse Controller"); -MODULE_LICENSE("GPL"); -MODULE_IMPORT_NS("PMBUS"); diff --git a/drivers/hwmon/pmbus/xdp730.c b/drivers/hwmon/pmbus/xdp730.c new file mode 100644 index 000000000000..3d6cb0614fe7 --- /dev/null +++ b/drivers/hwmon/pmbus/xdp730.c @@ -0,0 +1,159 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Hardware monitoring driver for Infineon XDP720 / XDP730 Digital + * eFuse Controllers. + * + * Both parts share the same PMBus register map and direct-format + * coefficients; they differ in the GIMON gain step exposed via + * the TELEMETRY_AVG register and in the VDD_VIN pin number. + * + * Copyright (c) 2026 Infineon Technologies. All rights reserved. + */ + +#include <linux/bitops.h> +#include <linux/i2c.h> +#include <linux/init.h> +#include <linux/kernel.h> +#include <linux/math64.h> +#include <linux/module.h> +#include <linux/of_device.h> +#include <linux/property.h> +#include <linux/regulator/consumer.h> +#include "pmbus.h" + +/* + * The IMON resistor required to generate the system overcurrent + * protection. Arbitrary default Rimon value: 2 kOhm (in micro-ohms). + */ +#define XDP730_DEFAULT_RIMON 2000000000U /* 2 kohm */ +#define XDP730_TELEMETRY_AVG 0xE9 +#define XDP730_TELEMETRY_AVG_GIMON BIT(10) /* high/low GIMON select */ + +/* Chip identifiers carried in OF match-data and i2c_device_id->driver_data. */ +enum xdp730_chip_id { + CHIP_XDP720 = 0, + CHIP_XDP730, +}; + +struct xdp730_data { + enum xdp730_chip_id id; + struct pmbus_driver_info info; +}; + +static const struct pmbus_driver_info xdp730_info = { + .pages = 1, + .format[PSC_VOLTAGE_IN] = direct, + .format[PSC_VOLTAGE_OUT] = direct, + .format[PSC_CURRENT_OUT] = direct, + .format[PSC_POWER] = direct, + .format[PSC_TEMPERATURE] = direct, + + .m[PSC_VOLTAGE_IN] = 4653, + .b[PSC_VOLTAGE_IN] = 0, + .R[PSC_VOLTAGE_IN] = -2, + .m[PSC_VOLTAGE_OUT] = 4653, + .b[PSC_VOLTAGE_OUT] = 0, + .R[PSC_VOLTAGE_OUT] = -2, + /* + * Current and Power measurement depend on the RIMON (micro-ohm) + * and GIMON (microA/A) values; scaled per-instance in probe(). + */ + .m[PSC_CURRENT_OUT] = 24668, + .b[PSC_CURRENT_OUT] = 0, + .R[PSC_CURRENT_OUT] = -4, + .m[PSC_POWER] = 4486, + .b[PSC_POWER] = 0, + .R[PSC_POWER] = -1, + .m[PSC_TEMPERATURE] = 54, + .b[PSC_TEMPERATURE] = 22521, + .R[PSC_TEMPERATURE] = -1, + + .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_VOUT | PMBUS_HAVE_PIN | + PMBUS_HAVE_TEMP | PMBUS_HAVE_IOUT | + PMBUS_HAVE_STATUS_INPUT | PMBUS_HAVE_STATUS_TEMP, +}; + +static int xdp730_probe(struct i2c_client *client) +{ + struct xdp730_data *data; + int ret; + int gimon; + u32 rimon; + + data = devm_kzalloc(&client->dev, sizeof(*data), GFP_KERNEL); + if (!data) + return -ENOMEM; + + data->id = (enum xdp730_chip_id)(uintptr_t)i2c_get_match_data(client); + data->info = xdp730_info; + + ret = devm_regulator_get_enable(&client->dev, "vdd-vin"); + if (ret) + return dev_err_probe(&client->dev, ret, + "failed to enable vdd-vin supply\n"); + + ret = i2c_smbus_read_word_data(client, XDP730_TELEMETRY_AVG); + if (ret < 0) + return dev_err_probe(&client->dev, ret, + "failed to read TELEMETRY_AVG\n"); + + /* Bit 10 of TELEMETRY_AVG selects the GIMON gain step in microA/A */ + switch (data->id) { + case CHIP_XDP720: + gimon = (ret & XDP730_TELEMETRY_AVG_GIMON) ? 18200 : 9100; + dev_info(&client->dev, "Initialised XDP720 instance\n"); + break; + case CHIP_XDP730: + gimon = (ret & XDP730_TELEMETRY_AVG_GIMON) ? 20000 : 10000; + dev_info(&client->dev, "Initialised XDP730 instance\n"); + break; + default: + return -EINVAL; + } + + if (device_property_read_u32(&client->dev, + "infineon,rimon-micro-ohms", &rimon)) + rimon = XDP730_DEFAULT_RIMON; /* Default if not in FW */ + if (rimon == 0) + return -EINVAL; + + /* Adapt the current and power scale for each instance. */ + data->info.m[PSC_CURRENT_OUT] = DIV64_U64_ROUND_CLOSEST((u64) + data->info.m[PSC_CURRENT_OUT] * rimon * gimon, + 1000000000000ULL); + data->info.m[PSC_POWER] = DIV64_U64_ROUND_CLOSEST((u64) + data->info.m[PSC_POWER] * rimon * gimon, + 1000000000000000ULL); + + return pmbus_do_probe(client, &data->info); +} + +static const struct of_device_id xdp730_of_match[] = { + { .compatible = "infineon,xdp720", .data = (void *)CHIP_XDP720 }, + { .compatible = "infineon,xdp730", .data = (void *)CHIP_XDP730 }, + { } +}; +MODULE_DEVICE_TABLE(of, xdp730_of_match); + +static const struct i2c_device_id xdp730_id[] = { + { "xdp720", CHIP_XDP720 }, + { "xdp730", CHIP_XDP730 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, xdp730_id); + +static struct i2c_driver xdp730_driver = { + .driver = { + .name = "xdp730", + .of_match_table = xdp730_of_match, + }, + .probe = xdp730_probe, + .id_table = xdp730_id, +}; + +module_i2c_driver(xdp730_driver); + +MODULE_AUTHOR("Ashish Yadav <ashish.yadav@infineon.com>"); +MODULE_DESCRIPTION("PMBus driver for Infineon XDP720/XDP730 Digital eFuse Controllers"); +MODULE_LICENSE("GPL"); +MODULE_IMPORT_NS("PMBUS"); -- 2.39.5 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/2] hwmon:(pmbus/xdp730) Add support for efuse xdp720/xdp730 2026-05-29 5:42 ` [PATCH v2 2/2] hwmon:(pmbus/xdp730) Add support for efuse xdp720/xdp730 ASHISH YADAV @ 2026-05-29 6:29 ` sashiko-bot 0 siblings, 0 replies; 7+ messages in thread From: sashiko-bot @ 2026-05-29 6:29 UTC (permalink / raw) To: ASHISH YADAV; +Cc: robh, devicetree, linux-hwmon, conor+dt Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] Renaming the Kconfig symbol, module, and driver from 'xdp720' to 'xdp730' breaks existing kernel and userspace configurations. -- commit 83256f5e0c4297d842a3fc2a6730dfe5ce709501 Author: Ashish Yadav <ashish.yadav@infineon.com> hwmon:(pmbus/xdp730) Add support for efuse xdp720/xdp730 This commit adds support for the Infineon XDP730 Digital eFuse Controller by updating the existing XDP720 driver. It renames the Kconfig symbol, module, and source file to reflect the expanded family support. > diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig > --- a/drivers/hwmon/pmbus/Kconfig > +++ b/drivers/hwmon/pmbus/Kconfig > @@ -711,14 +711,14 @@ config SENSORS_XDP710 > This driver can also be built as a module. If so, the module will > be called xdp710. > > -config SENSORS_XDP720 > - tristate "Infineon XDP720 family" > +config SENSORS_XDP730 > + tristate "Infineon XDP730 family" [Severity: Medium] Does this renaming break existing kernel configurations? When users upgrade, their existing CONFIG_SENSORS_XDP720 setting will be silently dropped (e.g., during make olddefconfig), resulting in an unintended loss of hardware monitoring capabilities for the XDP720. Would it be safer to preserve the existing Kconfig symbol and only update the prompt and help text to reflect the expanded support? > help > If you say yes here you get hardware monitoring support for Infineon > - XDP720. > + XDP720 and XDP730 Digital eFuse Controllers. > > This driver can also be built as a module. If so, the module will > - be called xdp720. > + be called xdp730. > > config SENSORS_XDPE152 > tristate "Infineon XDPE152 family" > diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile > --- a/drivers/hwmon/pmbus/Makefile > +++ b/drivers/hwmon/pmbus/Makefile > @@ -69,7 +69,7 @@ obj-$(CONFIG_SENSORS_TPS546D24) += tps546d24.o > obj-$(CONFIG_SENSORS_UCD9000) += ucd9000.o > obj-$(CONFIG_SENSORS_UCD9200) += ucd9200.o > obj-$(CONFIG_SENSORS_XDP710) += xdp710.o > -obj-$(CONFIG_SENSORS_XDP720) += xdp720.o > +obj-$(CONFIG_SENSORS_XDP730) += xdp730.o [Severity: Medium] Will changing the module and driver name to xdp730 break userspace scripts and expectations? Any explicit module load rules (e.g., in /etc/modules) or sysfs paths that currently depend on the old xdp720 name might fail after this update. [ ... ] -- Sashiko AI review · https://sashiko.dev/#/patchset/20260529054218.5184-1-Ashish.Yadav@infineon.com?part=2 ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-06-01 7:06 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-05-29 5:42 [PATCH v2 0/2] Add support for Infineon eFuse XDP720/XDP730 ASHISH YADAV 2026-05-29 5:42 ` [PATCH v2 1/2] dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730 ASHISH YADAV 2026-05-29 6:00 ` sashiko-bot 2026-05-29 16:41 ` Conor Dooley 2026-06-01 7:05 ` ashish yadav 2026-05-29 5:42 ` [PATCH v2 2/2] hwmon:(pmbus/xdp730) Add support for efuse xdp720/xdp730 ASHISH YADAV 2026-05-29 6:29 ` sashiko-bot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox