Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / sound / cirrus,madera.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,madera.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Cirrus Logic Madera class audio CODECs
8
9 maintainers:
10   - patches@opensource.cirrus.com
11
12 description: |
13   This describes audio configuration bindings for these codecs.
14
15   See also the core bindings for the parent MFD driver:
16
17     Documentation/devicetree/bindings/mfd/cirrus,madera.yaml
18
19   and defines for values used in these bindings:
20
21     include/dt-bindings/sound/madera.h
22
23   The properties are all contained in the parent MFD node.
24
25 allOf:
26   - $ref: dai-common.yaml#
27
28 properties:
29   '#sound-dai-cells':
30     description:
31       The first cell indicating the audio interface.
32     const: 1
33
34   cirrus,inmode:
35     description:
36       A list of input mode settings for each input. A maximum
37       of 24 cells, with four cells per input in the order INnAL,
38       INnAR INnBL INnBR.  For non-muxed inputs the first two cells
39       for that input set the mode for the left and right channel
40       and the second two cells must be 0.  For muxed inputs the
41       first two cells for that input set the mode of the left and
42       right A inputs and the second two cells set the mode of the
43       left and right B inputs.  Valid mode values are one of the
44       MADERA_INMODE_xxx. If the array is shorter than the number
45       of inputs the unspecified inputs default to MADERA_INMODE_DIFF.
46     $ref: /schemas/types.yaml#/definitions/uint32-array
47     minItems: 1
48     maxItems: 24
49     items:
50       minimum: 0
51       maximum: 1
52       default: 0
53
54   cirrus,out-mono:
55     description:
56       Mono bit for each output, maximum of six cells if the array
57       is shorter outputs will be set to stereo.
58     $ref: /schemas/types.yaml#/definitions/uint32-array
59     minItems: 1
60     maxItems: 6
61     items:
62       minimum: 0
63       maximum: 1
64       default: 0
65
66   cirrus,dmic-ref:
67     description: |
68       Indicates how the MICBIAS pins have been externally connected
69       to DMICs on each input, one cell per input.
70
71         <IN1 IN2 IN3 ...>
72
73       A value of 0 indicates MICVDD and is the default,
74       other values depend on the codec: For CS47L35 one of the
75       CS47L35_DMIC_REF_xxx values For all other codecs one of
76       the MADERA_DMIC_REF_xxx values Also see the datasheet for a
77       description of the INn_DMIC_SUP field.
78     $ref: /schemas/types.yaml#/definitions/uint32-array
79     minItems: 1
80     maxItems: 6
81     items:
82       minimum: 0
83       maximum: 3
84       default: 0
85
86   cirrus,max-channels-clocked:
87     description:
88       Maximum number of channels that I2S clocks will be generated
89       for. Useful when clock master for systems where the I2S bus
90       has multiple data lines.  One cell for each AIF, use a value
91       of zero for AIFs that should be handled normally.
92     $ref: /schemas/types.yaml#/definitions/uint32-array
93     minItems: 1
94     maxItems: 4
95     items:
96       default: 0
97
98   cirrus,pdm-fmt:
99     description:
100       PDM speaker data format, must contain 2 cells (OUT5 and
101       OUT6). See the PDM_SPKn_FMT field in the datasheet for a
102       description of this value. The second cell is ignored for
103       codecs that do not have OUT6.
104     $ref: /schemas/types.yaml#/definitions/uint32-array
105     minItems: 2
106     maxItems: 2
107
108   cirrus,pdm-mute:
109     description: |
110       PDM mute format, must contain 2 cells (OUT5 and OUT6). See the
111       PDM_SPKn_CTRL_1 register in the datasheet for a description
112       of this value.  The second cell is ignored for codecs that
113       do not have OUT6.
114     $ref: /schemas/types.yaml#/definitions/uint32-array
115     minItems: 2
116     maxItems: 2
117
118 additionalProperties: true