Re: [PATCH v3 1/2] dt-bindings: hwmon: pmbus: Add Infineon tda38740 and tda38725

From: Colin Huang

Date: Mon Sep 14 2026 - 05:14:45 EST


Conor Dooley <conor@xxxxxxxxxx> 於 2026年9月10日週四 下午7:24寫道:
>
> On Thu, Sep 10, 2026 at 02:18:55PM +0800, Colin Huang wrote:
> > From: Colin Huang <u8813345@xxxxxxxxx>
> >
> > Add devicetree bindings for the Infineon TDA38740 and TDA38725
> > single-voltage synchronous buck regulators with PMBus interface.
> >
> > Signed-off-by: Colin Huang <u8813345@xxxxxxxxx>
> > ---
> > .../bindings/hwmon/pmbus/infineon,tda38740.yaml | 87 ++++++++++++++++++++++
> > 1 file changed, 87 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38740.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38740.yaml
> > new file mode 100644
> > index 000000000000..28e6ff9d9d9c
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38740.yaml
> > @@ -0,0 +1,87 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +
> > +$id: http://devicetree.org/schemas/hwmon/pmbus/infineon,tda38740.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Infineon TDA38740 and TDA38725 PMBus Synchronous Buck Regulator
> > +
> > +maintainers:
> > + - Colin Huang <u8813345@xxxxxxxxx>
> > +
> > +description: |
> > + The Infineon TDA38740/TDA38725 is a 40A/25A single-voltage synchronous
> > + buck regulator with a PMBus interface designed for industrial use.
> > +
> > + Datasheet:
> > + https://www.infineon.com/row/public/documents/24/49/infineon-tda38740-tda38725-datasheet-en.pdf
> > +
> > +properties:
> > + compatible:
> > + oneOf:
> > + - const: infineon,tda38740
> > + - const: infineon,tda38725
> > + description: |
> > + The Infineon TDA38740 and TDA38725 share the same PMBus programming
> > + model. Use infineon,tda38740 as the preferred compatible string;
> > + infineon,tda38725 is kept as a compatibility alias.
>
> This is not how this should be done. Instead, tda38725 should list
> tda38740 as a fallback compatible. Take a look at the example schema for
> how this can be done.
> Otherwise, this looks okay to me.
>
> pw-bot: changes-requested
>
> Thanks,
> Conor.
>
Hi Conor,
Thanks for review and explanation.
I misunderstood the intended use of fallback compatible.
My v4 proposal was not correct approach.
```v4 used:
compatible:
enum:
- infineon,tda38725
- infineon,tda38740
```

I plan to change it and examples to:
```
compatible:
oneOf:
- const: infineon,tda38740
- items:
- const: infineon,tda38725
- const: infineon,tda38740

examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;

regulator@40 {
compatible = "infineon,tda38725",
"infineon,tda38740";
reg = <0x40>;
};
};

```
Is this what you had in mind?

BR,
Colin Huang

> > +
> > + reg:
> > + maxItems: 1
> > +
> > + infineon,vout-scale-micro:
> > + description: |
> > + Scaling factor applied to READ_VOUT telemetry.
> > +
> > + TDA38740/25 pin strap parts are available in two flavors of
> > + VOUT_SCALE_LOOP: 1:1 and 1:2.
> > +
> > + For the 1:1 VOUT_SCALE_LOOP version, output voltage sense pins are
> > + directly connected to the output, and no resistor divider is used.
> > +
> > + For the 1:2 version, a resistor divider is typically used (for example,
> > + 499 ohms for both top and bottom resistors).
> > +
> > + In some designs, users intentionally modify the feedback divider ratio
> > + to obtain an output voltage different from the internally configured
> > + VBOOT or VOUT value.
> > +
> > + In such cases, the device telemetry (READ_VOUT) continues to report
> > + the internally programmed voltage and does not reflect the actual
> > + externally adjusted output voltage.
> > +
> > + This property provides a multiplier to scale the reported telemetry
> > + value so that the monitoring system reflects the actual output voltage.
> > +
> > + The value shall be expressed in micro units where 1,000,000 represents
> > + a scaling factor of 1.0.
> > +
> > + Example:
> > + If actual Vout = 0.75V and READ_VOUT reports 0.7V:
> > + scaling factor = 0.75 / 0.7 = 1.071
> > + value = 1071000
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + default: 1000000
> > + minimum: 100000
> > + maximum: 2000000
> > +
> > +required:
> > + - compatible
> > + - reg
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > + - |
> > + i2c {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + sensor@40 {
> > + compatible = "infineon,tda38740";
> > + reg = <0x40>;
> > + infineon,vout-scale-micro = <1071000>;
> > + };
> > + };
> > +
> >
> > --
> > 2.34.1
> >