On Tue, Mar 08, 2022 at 05:17:29PM +0000, Lucas Tanure wrote: > From: David Rhodes <drhodes@xxxxxxxxxxxxxxxxxxxxx> > > Document internal and external boost feature for ASoC CS35L41. > For internal boost the following properties are required: > - cirrus,boost-peak-milliamp > - cirrus,boost-ind-nanohenry > - cirrus,boost-cap-microfarad > > For external boost, the GPIO1 must be configured as output, > so the following properties are required: > - cirrus,gpio1-src-select = <1> > - cirrus,gpio1-output-enable > > Signed-off-by: David Rhodes <drhodes@xxxxxxxxxxxxxxxxxxxxx> > Signed-off-by: Lucas Tanure <tanureal@xxxxxxxxxxxxxxxxxxxxx> > --- > .../bindings/sound/cirrus,cs35l41.yaml | 44 +++++++++++++++++-- > 1 file changed, 41 insertions(+), 3 deletions(-) > > diff --git a/Documentation/devicetree/bindings/sound/cirrus,cs35l41.yaml b/Documentation/devicetree/bindings/sound/cirrus,cs35l41.yaml > index 3235702ce402..09b515924c59 100644 > --- a/Documentation/devicetree/bindings/sound/cirrus,cs35l41.yaml > +++ b/Documentation/devicetree/bindings/sound/cirrus,cs35l41.yaml > @@ -75,6 +75,19 @@ properties: > maximum: 3 > default: 2 > > + cirrus,boost-type: > + description: > + Configures the type of Boost being used. > + Internal boost requires boost-peak-milliamp, boost-ind-nanohenry and > + boost-cap-microfarad. > + External Boost must have GPIO1 as GPIO output. GPIO1 will be set high to > + enable boost voltage. > + 0 = Internal Boost > + 1 = External Boost > + $ref: "/schemas/types.yaml#/definitions/uint32" > + minimum: 0 > + maximum: 1 What does not present mean? Might be better to make this boolean depending on what you are trying to accomplish. > + > cirrus,gpio1-polarity-invert: > description: > Boolean which specifies whether the GPIO1 > @@ -131,9 +144,32 @@ required: > - compatible > - reg > - "#sound-dai-cells" > - - cirrus,boost-peak-milliamp > - - cirrus,boost-ind-nanohenry > - - cirrus,boost-cap-microfarad > + > +allOf: > + - if: > + properties: > + cirrus,boost-type: > + const: 0 Note that this will be true if cirrus,boost-type is not present. You probably want to add 'required'. > + then: > + required: > + - cirrus,boost-peak-milliamp > + - cirrus,boost-ind-nanohenry > + - cirrus,boost-cap-microfarad > + else: > + if: > + properties: > + cirrus,boost-type: > + const: 1 > + then: > + required: > + - cirrus,gpio1-output-enable > + - cirrus,gpio1-src-select > + properties: > + cirrus,boost-peak-milliamp: false > + cirrus,boost-ind-nanohenry: false > + cirrus,boost-cap-microfarad: false > + cirrus,gpio1-src-select: > + enum: [1] > > additionalProperties: false > > @@ -150,6 +186,8 @@ examples: > VA-supply = <&dummy_vreg>; > VP-supply = <&dummy_vreg>; > reset-gpios = <&gpio 110 0>; > + > + cirrus,boost-type = <0>; > cirrus,boost-peak-milliamp = <4500>; > cirrus,boost-ind-nanohenry = <1000>; > cirrus,boost-cap-microfarad = <15>; > -- > 2.35.1 > >