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