On Tue, Jul 25, 2023 at 01:40:26PM +0200, Naresh Solanki wrote: > From: Patrick Rudolph <patrick.rudolph@xxxxxxxxxxxxx> > > The TDA38640 has a bug in SVID mode and to enable a workaround > remove the TDA38640 from trivial-devices and add a complete schema. > > The schema adds the custom property 'infineon,en-pin-fixed-level' to > signal a fixed level on the ENABLE pin and to enable the workaround. > When the ENABLE pin is left floating it's internally pulled low. > > If not specified the driver will continue to use the PMBUS_OPERATION > register to enable the regulator. When specified the driver will use > the PMBUS_ON_OFF_CONFIG register to enable the regulator. > > Signed-off-by: Patrick Rudolph <patrick.rudolph@xxxxxxxxxxxxx> > Signed-off-by: Naresh Solanki <Naresh.Solanki@xxxxxxxxxxxxx> > --- > .../hwmon/pmbus/infineon,tda38640.yaml | 50 +++++++++++++++++++ > .../devicetree/bindings/trivial-devices.yaml | 2 - > 2 files changed, 50 insertions(+), 2 deletions(-) > create mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml > > diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml > new file mode 100644 > index 000000000000..520112e4e271 > --- /dev/null > +++ b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38640.yaml > @@ -0,0 +1,50 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > + > +$id: http://devicetree.org/schemas/hwmon/pmbus/infineon,tda38640.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Infineon TDA38640 Synchronous Buck Regulator with SVID and I2C > + > +description: | > + The Infineon TDA38640 is a 40A Single-voltage Synchronous Buck > + Regulator with SVID and I2C designed for Industrial use. > + > + Datasheet: https://www.infineon.com/dgdl/Infineon-TDA38640-0000-DataSheet-v02_04-EN.pdf?fileId=8ac78c8c80027ecd018042f2337f00c9 > + > +properties: > + compatible: > + enum: > + - infineon,tda38640 > + > + reg: > + maxItems: 1 > + > + infineon,en-pin-fixed-level: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: | > + Fixed level of the ENABLE pin. When specified the PMBUS_ON_OFF_CONFIG > + register is used to enable the regulator instead of the PMBUS_OPERATION > + register to workaround a bug of the tda38640 when operating in SVID-mode. > + If the ENABLE pin is left floating the internal pull-down causes a low > + level on the pin. Neither this nor the commit message answers how do I decide if I set this property or not? How you work-around it is not that relevant to the binding. > + > +required: > + - compatible > + - reg > + > +additionalProperties: false > + > +examples: > + - | > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + tda38640@40 { > + compatible = "infineon,tda38640"; > + reg = <0x40>; > + }; > + }; > + > diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml > index 6e24c4d25ec3..2b1fbb2a672b 100644 > --- a/Documentation/devicetree/bindings/trivial-devices.yaml > +++ b/Documentation/devicetree/bindings/trivial-devices.yaml > @@ -151,8 +151,6 @@ properties: > - infineon,slb9645tt > # Infineon SLB9673 I2C TPM 2.0 > - infineon,slb9673 > - # Infineon TDA38640 Voltage Regulator > - - infineon,tda38640 > # Infineon TLV493D-A1B6 I2C 3D Magnetic Sensor > - infineon,tlv493d-a1b6 > # Infineon Multi-phase Digital VR Controller xdpe11280 > > base-commit: 55612007f16b5d7b1fb83a7b0f5bb686829db7c7 > -- > 2.41.0 >