Message ID | 20220308171730.454587-16-tanureal@opensource.cirrus.com |
---|---|
State | Superseded |
Headers | show |
Series | Support external boost at CS35l41 ASoC driver | expand |
On Tue, Mar 08, 2022 at 05:17:29PM +0000, Lucas Tanure wrote: > From: David Rhodes <drhodes@opensource.cirrus.com> > > 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@opensource.cirrus.com> > Signed-off-by: Lucas Tanure <tanureal@opensource.cirrus.com> > --- > .../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 > >
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 + 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 + 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>;