~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/sound/cirrus,cs42l43.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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,cs42l43.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Cirrus Logic CS42L43 Audio CODEC
  8 
  9 maintainers:
 10   - patches@opensource.cirrus.com
 11 
 12 description: |
 13   The CS42L43 is an audio CODEC with integrated MIPI SoundWire interface
 14   (Version 1.2.1 compliant), I2C, SPI, and I2S/TDM interfaces designed
 15   for portable applications. It provides a high dynamic range, stereo
 16   DAC for headphone output, two integrated Class D amplifiers for
 17   loudspeakers, and two ADCs for wired headset microphone input or
 18   stereo line input. PDM inputs are provided for digital microphones.
 19 
 20 allOf:
 21   - $ref: dai-common.yaml#
 22 
 23 properties:
 24   compatible:
 25     enum:
 26       - cirrus,cs42l43
 27 
 28   reg:
 29     maxItems: 1
 30 
 31   vdd-p-supply:
 32     description:
 33       Power supply for the high voltage interface.
 34 
 35   vdd-a-supply:
 36     description:
 37       Power supply for internal analog circuits.
 38 
 39   vdd-d-supply:
 40     description:
 41       Power supply for internal digital circuits. Can be internally supplied.
 42 
 43   vdd-io-supply:
 44     description:
 45       Power supply for external interface and internal digital logic.
 46 
 47   vdd-cp-supply:
 48     description:
 49       Power supply for the amplifier 3 and 4 charge pump.
 50 
 51   vdd-amp-supply:
 52     description:
 53       Power supply for amplifier 1 and 2.
 54 
 55   reset-gpios:
 56     maxItems: 1
 57 
 58   interrupt-controller: true
 59 
 60   "#interrupt-cells":
 61     const: 2
 62 
 63   interrupts:
 64     maxItems: 1
 65 
 66   "#sound-dai-cells":
 67     const: 1
 68 
 69   clocks:
 70     items:
 71       - description: Synchronous audio clock provided on mclk_in.
 72 
 73   clock-names:
 74     const: mclk
 75 
 76   cirrus,bias-low:
 77     type: boolean
 78     description:
 79       Select a 1.8V headset micbias rather than 2.8V.
 80 
 81   cirrus,bias-sense-microamp:
 82     description:
 83       Current at which the headset micbias sense clamp will engage, 0 to
 84       disable.
 85     enum: [ 0, 14, 24, 43, 52, 61, 71, 90, 99 ]
 86     default: 14
 87 
 88   cirrus,bias-ramp-ms:
 89     description:
 90       Time in milliseconds the hardware allows for the headset micbias to
 91       ramp up.
 92     enum: [ 10, 40, 90, 170 ]
 93     default: 170
 94 
 95   cirrus,detect-us:
 96     description:
 97       Time in microseconds the type detection will run for. Long values will
 98       cause more audible effects, but give more accurate detection.
 99     enum: [ 20, 100, 1000, 10000, 50000, 75000, 100000, 200000 ]
100     default: 1000
101 
102   cirrus,button-automute:
103     type: boolean
104     description:
105       Enable the hardware automuting of decimator 1 when a headset button is
106       pressed.
107 
108   cirrus,buttons-ohms:
109     description:
110       Impedance in Ohms for each headset button, these should be listed in
111       ascending order.
112     minItems: 1
113     maxItems: 6
114 
115   cirrus,tip-debounce-ms:
116     description:
117       Software debounce on tip sense triggering in milliseconds.
118     default: 0
119 
120   cirrus,tip-invert:
121     type: boolean
122     description:
123       Indicates tip detect polarity, inverted implies open-circuit whilst the
124       jack is inserted.
125 
126   cirrus,tip-disable-pullup:
127     type: boolean
128     description:
129       Indicates if the internal pullup on the tip detect should be disabled.
130 
131   cirrus,tip-fall-db-ms:
132     description:
133       Time in milliseconds a falling edge on the tip detect should be hardware
134       debounced for. Note the falling edge is considered after the invert.
135     enum: [ 0, 125, 250, 500, 750, 1000, 1250, 1500 ]
136     default: 500
137 
138   cirrus,tip-rise-db-ms:
139     description:
140       Time in milliseconds a rising edge on the tip detect should be hardware
141       debounced for. Note the rising edge is considered after the invert.
142     enum: [ 0, 125, 250, 500, 750, 1000, 1250, 1500 ]
143     default: 500
144 
145   cirrus,use-ring-sense:
146     type: boolean
147     description:
148       Indicates if the ring sense should be used.
149 
150   cirrus,ring-invert:
151     type: boolean
152     description:
153       Indicates ring detect polarity, inverted implies open-circuit whilst the
154       jack is inserted.
155 
156   cirrus,ring-disable-pullup:
157     type: boolean
158     description:
159       Indicates if the internal pullup on the ring detect should be disabled.
160 
161   cirrus,ring-fall-db-ms:
162     description:
163       Time in milliseconds a falling edge on the ring detect should be hardware
164       debounced for. Note the falling edge is considered after the invert.
165     enum: [ 0, 125, 250, 500, 750, 1000, 1250, 1500 ]
166     default: 500
167 
168   cirrus,ring-rise-db-ms:
169     description:
170       Time in milliseconds a rising edge on the ring detect should be hardware
171       debounced for. Note the rising edge is considered after the invert.
172     enum: [ 0, 125, 250, 500, 750, 1000, 1250, 1500 ]
173     default: 500
174 
175   pinctrl:
176     type: object
177     $ref: /schemas/pinctrl/pinctrl.yaml#
178     additionalProperties: false
179 
180     properties:
181       gpio-controller: true
182 
183       "#gpio-cells":
184         const: 2
185 
186       gpio-ranges:
187         items:
188           - items:
189               - description: A phandle to the CODEC pinctrl node
190                 minimum: 0
191               - const: 0
192               - const: 0
193               - const: 3
194 
195     patternProperties:
196       "-state$":
197         oneOf:
198           - $ref: "#/$defs/cirrus-cs42l43-state"
199           - patternProperties:
200               "-pins$":
201                 $ref: "#/$defs/cirrus-cs42l43-state"
202             additionalProperties: false
203 
204   spi:
205     type: object
206     $ref: /schemas/spi/spi-controller.yaml#
207     unevaluatedProperties: false
208 
209 $defs:
210   cirrus-cs42l43-state:
211     type: object
212 
213     allOf:
214       - $ref: /schemas/pinctrl/pincfg-node.yaml#
215       - $ref: /schemas/pinctrl/pinmux-node.yaml#
216 
217     oneOf:
218       - required: [ groups ]
219       - required: [ pins ]
220 
221     additionalProperties: false
222 
223     properties:
224       groups:
225         enum: [ gpio1, gpio2, gpio3, asp, pdmout2, pdmout1, i2c, spi ]
226 
227       pins:
228         enum: [ gpio1, gpio2, gpio3,
229                 asp_dout, asp_fsync, asp_bclk,
230                 pdmout2_clk, pdmout2_data, pdmout1_clk, pdmout1_data,
231                 i2c_sda, i2c_scl,
232                 spi_miso, spi_sck, spi_ssb ]
233 
234       function:
235         enum: [ gpio, spdif, irq, mic-shutter, spk-shutter ]
236 
237       drive-strength:
238         description: Set drive strength in mA
239         enum: [ 1, 2, 4, 8, 9, 10, 12, 16 ]
240 
241       input-debounce:
242         description: Set input debounce in uS
243         enum: [ 0, 85 ]
244 
245 required:
246   - compatible
247   - reg
248   - vdd-p-supply
249   - vdd-a-supply
250   - vdd-io-supply
251   - vdd-cp-supply
252 
253 additionalProperties: false
254 
255 examples:
256   - |
257     #include <dt-bindings/interrupt-controller/irq.h>
258 
259     i2c {
260         #address-cells = <1>;
261         #size-cells = <0>;
262 
263         cs42l43: codec@1a {
264             compatible = "cirrus,cs42l43";
265             reg = <0x1a>;
266 
267             vdd-p-supply = <&vdd5v0>;
268             vdd-a-supply = <&vdd1v8>;
269             vdd-io-supply = <&vdd1v8>;
270             vdd-cp-supply = <&vdd1v8>;
271             vdd-amp-supply = <&vdd5v0>;
272 
273             reset-gpios = <&gpio 0>;
274 
275             interrupt-controller;
276             #interrupt-cells = <2>;
277             interrupt-parent = <&gpio>;
278             interrupts = <56 IRQ_TYPE_LEVEL_LOW>;
279 
280             #sound-dai-cells = <1>;
281 
282             clocks = <&clks 0>;
283             clock-names = "mclk";
284 
285             cs42l43_pins: pinctrl {
286                 gpio-controller;
287                 #gpio-cells = <2>;
288                 gpio-ranges = <&cs42l43_pins 0 0 3>;
289 
290                 pinctrl-names = "default";
291                 pinctrl-0 = <&pinsettings>;
292 
293                 pinsettings: default-state {
294                     shutter-pins {
295                         groups = "gpio3";
296                         function = "mic-shutter";
297                     };
298                 };
299             };
300 
301             spi {
302                 #address-cells = <1>;
303                 #size-cells = <0>;
304 
305                 cs-gpios = <&cs42l43_pins 1 0>;
306 
307                 sensor@0 {
308                     compatible = "bosch,bme680";
309                     reg = <0>;
310                     spi-max-frequency = <1400000>;
311                 };
312             };
313         };
314     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php