On Thu, Jun 6, 2024 at 5:16 AM Andreas Kemnade <andreas@xxxxxxxxxxxx> wrote: > > Convert the regulator bindings to yaml. > > Drop one twl5030 compatible due to no documentation on mfd side and no > users of the twl5030. > > Signed-off-by: Andreas Kemnade <andreas@xxxxxxxxxxxx> > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> > --- > Changes in v4: > - remove a sentence in the commit message which only applies > to v1 design > - add R-by > > Changes in v3: > - define regulator stuff in toplevel > - simplified regulator-inital-mode > - extended example to contain both regulator-initial-mode and > retain-on-reset > > Changes in v2: > - add regulators directly to ti,twl.yaml > - less restrictions on regulator node name > > .../devicetree/bindings/mfd/ti,twl.yaml | 166 +++++++++++++++++- > .../bindings/regulator/twl-regulator.txt | 80 --------- > 2 files changed, 164 insertions(+), 82 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/regulator/twl-regulator.txt > > diff --git a/Documentation/devicetree/bindings/mfd/ti,twl.yaml b/Documentation/devicetree/bindings/mfd/ti,twl.yaml > index c2357fecb56c..2cbdd238f48f 100644 > --- a/Documentation/devicetree/bindings/mfd/ti,twl.yaml > +++ b/Documentation/devicetree/bindings/mfd/ti,twl.yaml > @@ -22,6 +22,32 @@ allOf: > contains: > const: ti,twl4030 > then: > + patternProperties: > + "^regulator-": > + properties: > + compatible: > + enum: > + - ti,twl4030-vaux1 > + - ti,twl4030-vaux2 > + - ti,twl4030-vaux3 > + - ti,twl4030-vaux4 > + - ti,twl4030-vmmc1 > + - ti,twl4030-vmmc2 > + - ti,twl4030-vpll1 > + - ti,twl4030-vpll2 > + - ti,twl4030-vsim > + - ti,twl4030-vdac > + - ti,twl4030-vintana2 > + - ti,twl4030-vio > + - ti,twl4030-vdd1 > + - ti,twl4030-vdd2 > + - ti,twl4030-vintana1 > + - ti,twl4030-vintdig > + - ti,twl4030-vusb1v5 > + - ti,twl4030-vusb1v8 > + - ti,twl4030-vusb3v1 > + ti,retain-on-reset: false > + > properties: > madc: > type: object > @@ -50,13 +76,34 @@ allOf: > properties: > compatible: > const: ti,twl4030-wdt > - > - if: > properties: > compatible: > contains: > const: ti,twl6030 > then: > + patternProperties: > + "^regulator-": > + properties: > + compatible: > + enum: > + - ti,twl6030-vaux1 > + - ti,twl6030-vaux2 > + - ti,twl6030-vaux3 > + - ti,twl6030-vmmc > + - ti,twl6030-vpp > + - ti,twl6030-vusim > + - ti,twl6030-vana > + - ti,twl6030-vcxio > + - ti,twl6030-vdac > + - ti,twl6030-vusb > + - ti,twl6030-v1v8 > + - ti,twl6030-v2v1 > + - ti,twl6030-vdd1 > + - ti,twl6030-vdd2 > + - ti,twl6030-vdd3 > + regulator-initial-mode: false > + > properties: > gpadc: > type: object > @@ -69,6 +116,25 @@ allOf: > contains: > const: ti,twl6032 > then: > + patternProperties: > + "^regulator-": > + properties: > + compatible: > + enum: > + - ti,twl6032-ldo1 > + - ti,twl6032-ldo2 > + - ti,twl6032-ldo3 > + - ti,twl6032-ldo4 > + - ti,twl6032-ldo5 > + - ti,twl6032-ldo6 > + - ti,twl6032-ldo7 > + - ti,twl6032-ldoln > + - ti,twl6032-ldousb > + - ti,twl6032-smps3 > + - ti,twl6032-smps4 > + - ti,twl6032-vio > + regulator-initial-mode: false > + > properties: > gpadc: > type: object > @@ -112,6 +178,27 @@ properties: > interrupts: > maxItems: 1 > > +patternProperties: > + "^regulator-": > + type: object > + unevaluatedProperties: false > + $ref: /schemas/regulator/regulator.yaml > + properties: > + compatible: true > + regulator-initial-mode: > + enum: > + - 0x08 # Sleep mode, the nominal output voltage is maintained > + # with low power consumption with low load current capability > + - 0x0e # Active mode, the regulator can deliver its nominal output > + # voltage with full-load current capability > + ti,retain-on-reset: > + description: > + Does not turn off the supplies during warm > + reset. Could be needed for VMMC, as TWL6030 > + reset sequence for this signal does not comply > + with the SD specification. > + type: boolean > + > unevaluatedProperties: false > > required: > @@ -131,9 +218,84 @@ examples: > compatible = "ti,twl6030"; > reg = <0x48>; > interrupts = <39>; /* IRQ_SYS_1N cascaded to gic */ > + interrupt-parent = <&gic>; > interrupt-controller; > #interrupt-cells = <1>; > - interrupt-parent = <&gic>; > + > + gpadc { > + compatible = "ti,twl6030-gpadc"; > + interrupts = <6>; Now a warning in linux-next: Documentation/devicetree/bindings/mfd/ti,twl.example.dtb: gpadc: '#io-channel-cells' is a required property from schema $id: http://devicetree.org/schemas/iio/adc/ti,twl6030-gpadc.yaml#