GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / sound / cirrus,cs35l41.yaml
1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/sound/cirrus,cs35l41.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Cirrus Logic CS35L41 Speaker Amplifier
8
9 maintainers:
10   - david.rhodes@cirrus.com
11
12 description: |
13   CS35L41 is a boosted mono Class D amplifier with DSP
14   speaker protection and equalization
15
16 properties:
17   compatible:
18     enum:
19       - cirrus,cs35l40
20       - cirrus,cs35l41
21
22   reg:
23     maxItems: 1
24
25   '#sound-dai-cells':
26     description:
27       The first cell indicating the audio interface.
28     const: 1
29
30   reset-gpios:
31     maxItems: 1
32
33   VA-supply:
34     description: voltage regulator phandle for the VA supply
35
36   VP-supply:
37     description: voltage regulator phandle for the VP supply
38
39   cirrus,boost-peak-milliamp:
40     description:
41       Boost-converter peak current limit in mA.
42       Configures the peak current by monitoring the current through the boost FET.
43       Range starts at 1600 mA and goes to a maximum of 4500 mA with increments
44       of 50 mA. See section 4.3.6 of the datasheet for details.
45     $ref: "/schemas/types.yaml#/definitions/uint32"
46     minimum: 1600
47     maximum: 4500
48     default: 4500
49
50   cirrus,boost-ind-nanohenry:
51     description:
52       Boost inductor value, expressed in nH. Valid
53       values include 1000, 1200, 1500 and 2200.
54     $ref: "/schemas/types.yaml#/definitions/uint32"
55     minimum: 1000
56     maximum: 2200
57
58   cirrus,boost-cap-microfarad:
59     description:
60       Total equivalent boost capacitance on the VBST
61       and VAMP pins, derated at 11 volts DC. The value must be rounded to the
62       nearest integer and expressed in uF.
63     $ref: "/schemas/types.yaml#/definitions/uint32"
64
65   cirrus,asp-sdout-hiz:
66     description:
67       Audio serial port SDOUT Hi-Z control. Sets the Hi-Z
68       configuration for SDOUT pin of amplifier.
69       0 = Logic 0 during unused slots, and while all transmit channels disabled
70       1 = Hi-Z during unused slots but logic 0 while all transmit channels disabled
71       2 = (Default) Logic 0 during unused slots, but Hi-Z while all transmit channels disabled
72       3 = Hi-Z during unused slots and while all transmit channels disabled
73     $ref: "/schemas/types.yaml#/definitions/uint32"
74     minimum: 0
75     maximum: 3
76     default: 2
77
78   cirrus,boost-type:
79     description:
80       Configures the type of Boost being used.
81       Internal boost requires boost-peak-milliamp, boost-ind-nanohenry and
82       boost-cap-microfarad.
83       External Boost must have GPIO1 as GPIO output. GPIO1 will be set high to
84       enable boost voltage.
85       0 = Internal Boost
86       1 = External Boost
87     $ref: "/schemas/types.yaml#/definitions/uint32"
88     minimum: 0
89     maximum: 1
90
91   cirrus,gpio1-polarity-invert:
92     description:
93       Boolean which specifies whether the GPIO1
94       level is inverted. If this property is not present the level is not inverted.
95     type: boolean
96
97   cirrus,gpio1-output-enable:
98     description:
99       Boolean which specifies whether the GPIO1 pin
100       is configured as an output. If this property is not present the
101       pin will be configured as an input.
102     type: boolean
103
104   cirrus,gpio1-src-select:
105     description:
106       Configures the function of the GPIO1 pin.
107       Note that the options are different from the GPIO2 pin
108       0 = High Impedance (Default)
109       1 = GPIO
110       2 = Sync
111       3 = MCLK input
112     $ref: "/schemas/types.yaml#/definitions/uint32"
113     minimum: 0
114     maximum: 3
115
116   cirrus,gpio2-polarity-invert:
117     description:
118       Boolean which specifies whether the GPIO2
119       level is inverted. If this property is not present the level is not inverted.
120     type: boolean
121
122   cirrus,gpio2-output-enable:
123     description:
124       Boolean which specifies whether the GPIO2 pin
125       is configured as an output. If this property is not present the
126       pin will be configured as an input.
127     type: boolean
128
129   cirrus,gpio2-src-select:
130     description:
131       Configures the function of the GPIO2 pin.
132       Note that the options are different from the GPIO1 pin.
133       0 = High Impedance (Default)
134       1 = GPIO
135       2 = Open Drain INTB
136       3 = MCLK input
137       4 = Push-pull INTB (active low)
138       5 = Push-pull INT (active high)
139     $ref: "/schemas/types.yaml#/definitions/uint32"
140     minimum: 0
141     maximum: 5
142
143 required:
144   - compatible
145   - reg
146   - "#sound-dai-cells"
147
148 allOf:
149   - if:
150       properties:
151         cirrus,boost-type:
152           const: 0
153     then:
154       required:
155         - cirrus,boost-peak-milliamp
156         - cirrus,boost-ind-nanohenry
157         - cirrus,boost-cap-microfarad
158     else:
159       if:
160         properties:
161           cirrus,boost-type:
162             const: 1
163       then:
164         required:
165           - cirrus,gpio1-output-enable
166           - cirrus,gpio1-src-select
167         properties:
168           cirrus,boost-peak-milliamp: false
169           cirrus,boost-ind-nanohenry: false
170           cirrus,boost-cap-microfarad: false
171           cirrus,gpio1-src-select:
172             enum: [1]
173
174 additionalProperties: false
175
176 examples:
177   - |
178     spi {
179         #address-cells = <1>;
180         #size-cells = <0>;
181
182         cs35l41: cs35l41@2 {
183           #sound-dai-cells = <1>;
184           compatible = "cirrus,cs35l41";
185           reg = <2>;
186           VA-supply = <&dummy_vreg>;
187           VP-supply = <&dummy_vreg>;
188           reset-gpios = <&gpio 110 0>;
189
190           cirrus,boost-type = <0>;
191           cirrus,boost-peak-milliamp = <4500>;
192           cirrus,boost-ind-nanohenry = <1000>;
193           cirrus,boost-cap-microfarad = <15>;
194         };
195     };