On 3/9/22 01:20, Rob Herring wrote:
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.
Not present means Internal boost. There will be other types of boost in the future, so I would like to keep it as is.
- 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'.
Yes, that's expected. We want to continue to support old device trees without boost type, and for that case it sets to internal boost.
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