blob: 92aa47ec72c7b78e3f44d84d1c059ed718ba6090 [file] [log] [blame]
Tom Rini762f85b2024-07-20 11:15:10 -06001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/fsl-asoc-card.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Freescale Generic ASoC Sound Card with ASRC support
8
9description:
10 The Freescale Generic ASoC Sound Card can be used, ideally,
11 for all Freescale SoCs connecting with external CODECs.
12
13 The idea of this generic sound card is a bit like ASoC Simple Card.
14 However, for Freescale SoCs (especially those released in recent years),
15 most of them have ASRC inside. And this is a specific feature that might
16 be painstakingly controlled and merged into the Simple Card.
17
18 So having this generic sound card allows all Freescale SoC users to
19 benefit from the simplification of a new card support and the capability
20 of the wide sample rates support through ASRC.
21
22 Note, The card is initially designed for those sound cards who use AC'97, I2S
23 and PCM DAI formats. However, it'll be also possible to support those non
24 AC'97/I2S/PCM type sound cards, such as S/PDIF audio and HDMI audio, as
25 long as the driver has been properly upgraded.
26
27maintainers:
28 - Shengjiu Wang <shengjiu.wang@nxp.com>
29
30properties:
31 compatible:
32 oneOf:
33 - items:
34 - enum:
35 - fsl,imx-sgtl5000
36 - fsl,imx25-pdk-sgtl5000
37 - fsl,imx53-cpuvo-sgtl5000
38 - fsl,imx51-babbage-sgtl5000
39 - fsl,imx53-m53evk-sgtl5000
40 - fsl,imx53-qsb-sgtl5000
41 - fsl,imx53-voipac-sgtl5000
42 - fsl,imx6-armadeus-sgtl5000
43 - fsl,imx6-rex-sgtl5000
44 - fsl,imx6-sabreauto-cs42888
45 - fsl,imx6-wandboard-sgtl5000
46 - fsl,imx6dl-nit6xlite-sgtl5000
47 - fsl,imx6q-ba16-sgtl5000
48 - fsl,imx6q-nitrogen6_max-sgtl5000
49 - fsl,imx6q-nitrogen6_som2-sgtl5000
50 - fsl,imx6q-nitrogen6x-sgtl5000
51 - fsl,imx6q-sabrelite-sgtl5000
52 - fsl,imx6q-sabresd-wm8962
53 - fsl,imx6q-udoo-ac97
54 - fsl,imx6q-ventana-sgtl5000
55 - fsl,imx6sl-evk-wm8962
56 - fsl,imx6sx-sdb-mqs
57 - fsl,imx6sx-sdb-wm8962
58 - fsl,imx7d-evk-wm8960
59 - karo,tx53-audio-sgtl5000
60 - tq,imx53-mba53-sgtl5000
61 - enum:
62 - fsl,imx-audio-ac97
63 - fsl,imx-audio-cs42888
64 - fsl,imx-audio-mqs
65 - fsl,imx-audio-sgtl5000
66 - fsl,imx-audio-wm8960
67 - fsl,imx-audio-wm8962
68 - items:
69 - enum:
Tom Rini6b642ac2024-10-01 12:20:28 -060070 - fsl,imx-sabreauto-spdif
71 - fsl,imx6sx-sdb-spdif
72 - const: fsl,imx-audio-spdif
73 - items:
74 - enum:
Tom Rini762f85b2024-07-20 11:15:10 -060075 - fsl,imx-audio-ac97
76 - fsl,imx-audio-cs42888
77 - fsl,imx-audio-cs427x
78 - fsl,imx-audio-mqs
79 - fsl,imx-audio-nau8822
80 - fsl,imx-audio-sgtl5000
81 - fsl,imx-audio-si476x
82 - fsl,imx-audio-tlv320aic31xx
83 - fsl,imx-audio-tlv320aic32x4
84 - fsl,imx-audio-wm8524
85 - fsl,imx-audio-wm8904
86 - fsl,imx-audio-wm8960
87 - fsl,imx-audio-wm8962
88 - fsl,imx-audio-wm8958
Tom Rini6b642ac2024-10-01 12:20:28 -060089 - fsl,imx-audio-spdif
Tom Rini762f85b2024-07-20 11:15:10 -060090
91 model:
92 $ref: /schemas/types.yaml#/definitions/string
93 description: The user-visible name of this sound complex
94
95 audio-asrc:
96 $ref: /schemas/types.yaml#/definitions/phandle
97 description:
98 The phandle of ASRC. It can be absent if there's no
99 need to add ASRC support via DPCM.
100
101 audio-codec:
Tom Rini6b642ac2024-10-01 12:20:28 -0600102 $ref: /schemas/types.yaml#/definitions/phandle-array
103 description: |
104 The phandle of an audio codec.
105 With "fsl,imx-audio-spdif", either SPDIF audio codec spdif_transmitter,
106 spdif_receiver or both.
107 minItems: 1
108 maxItems: 2
109 items:
110 maxItems: 1
Tom Rini762f85b2024-07-20 11:15:10 -0600111
112 audio-cpu:
113 $ref: /schemas/types.yaml#/definitions/phandle
114 description: The phandle of an CPU DAI controller
115
116 audio-routing:
117 $ref: /schemas/types.yaml#/definitions/non-unique-string-array
118 description:
119 A list of the connections between audio components. Each entry is a
120 pair of strings, the first being the connection's sink, the second
121 being the connection's source. There're a few pre-designed board
122 connectors. "AMIC" stands for Analog Microphone Jack.
123 "DMIC" stands for Digital Microphone Jack. The "Mic Jack" and "AMIC"
124 are redundant while coexisting in order to support the old bindings
125 of wm8962 and sgtl5000.
126
127 hp-det-gpio:
128 deprecated: true
129 maxItems: 1
130 description: The GPIO that detect headphones are plugged in
131
132 hp-det-gpios:
133 maxItems: 1
134 description: The GPIO that detect headphones are plugged in
135
136 mic-det-gpio:
137 deprecated: true
138 maxItems: 1
139 description: The GPIO that detect microphones are plugged in
140
141 mic-det-gpios:
142 maxItems: 1
143 description: The GPIO that detect microphones are plugged in
144
145 bitclock-master:
146 $ref: simple-card.yaml#/definitions/bitclock-master
147 description: Indicates dai-link bit clock master.
148
149 frame-master:
150 $ref: simple-card.yaml#/definitions/frame-master
151 description: Indicates dai-link frame master.
152
153 format:
154 $ref: simple-card.yaml#/definitions/format
155 description: audio format.
156
157 frame-inversion:
158 $ref: simple-card.yaml#/definitions/frame-inversion
159 description: dai-link uses frame clock inversion.
160
161 bitclock-inversion:
162 $ref: simple-card.yaml#/definitions/bitclock-inversion
163 description: dai-link uses bit clock inversion.
164
165 mclk-id:
Tom Rini6b642ac2024-10-01 12:20:28 -0600166 $ref: /schemas/types.yaml#/definitions/uint32-array
167 description: Main clock id for each codec, specific for each card configuration.
168 minItems: 1
169 maxItems: 2
Tom Rini762f85b2024-07-20 11:15:10 -0600170
171 mux-int-port:
172 $ref: /schemas/types.yaml#/definitions/uint32
173 enum: [1, 2, 7]
174 description: The internal port of the i.MX audio muxer (AUDMUX)
175
176 mux-ext-port:
177 $ref: /schemas/types.yaml#/definitions/uint32
178 enum: [3, 4, 5, 6]
179 description: The external port of the i.MX audio muxer
180
181 ssi-controller:
182 $ref: /schemas/types.yaml#/definitions/phandle
183 description: The phandle of an CPU DAI controller
184
Tom Rini6b642ac2024-10-01 12:20:28 -0600185 spdif-controller:
186 $ref: /schemas/types.yaml#/definitions/phandle
187 deprecated: true
188 description: The phandle of an S/PDIF CPU DAI controller.
189
190 spdif-out:
191 type: boolean
192 deprecated: true
193 description: |
194 If present, the transmitting function of S/PDIF will be enabled,
195 indicating there's a physical S/PDIF out connector or jack on the
196 board or it's connecting to some other IP block, such as an HDMI
197 encoder or display-controller.
198
199 spdif-in:
200 type: boolean
201 deprecated: true
202 description: |
203 If present, the receiving function of S/PDIF will be enabled,
204 indicating there is a physical S/PDIF in connector/jack on the board.
205
Tom Rini762f85b2024-07-20 11:15:10 -0600206required:
207 - compatible
208 - model
209
210unevaluatedProperties: false
211
212examples:
213 - |
214 sound-cs42888 {
215 compatible = "fsl,imx-audio-cs42888";
216 model = "cs42888-audio";
217 audio-cpu = <&esai>;
218 audio-asrc = <&asrc>;
219 audio-codec = <&cs42888>;
220 audio-routing =
221 "Line Out Jack", "AOUT1L",
222 "Line Out Jack", "AOUT1R",
223 "Line Out Jack", "AOUT2L",
224 "Line Out Jack", "AOUT2R",
225 "Line Out Jack", "AOUT3L",
226 "Line Out Jack", "AOUT3R",
227 "Line Out Jack", "AOUT4L",
228 "Line Out Jack", "AOUT4R",
229 "AIN1L", "Line In Jack",
230 "AIN1R", "Line In Jack",
231 "AIN2L", "Line In Jack",
232 "AIN2R", "Line In Jack";
233 };
Tom Rini6b642ac2024-10-01 12:20:28 -0600234
235 - |
236 sound-spdif-asrc {
237 compatible = "fsl,imx-audio-spdif";
238 model = "spdif-asrc-audio";
239 audio-cpu = <&spdif>;
240 audio-asrc = <&easrc>;
241 audio-codec = <&spdifdit>, <&spdifdir>;
242 };