xref: /linux/Documentation/devicetree/bindings/sound/fsl-asoc-card.yaml (revision f6e8dc9edf963dbc99085e54f6ced6da9daa6100)
1# 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:
70              - fsl,imx-sabreauto-spdif
71              - fsl,imx6sx-sdb-spdif
72          - const: fsl,imx-audio-spdif
73      - items:
74          - enum:
75              - 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-tlv320
83              - fsl,imx-audio-tlv320aic31xx
84              - fsl,imx-audio-tlv320aic32x4
85              - fsl,imx-audio-wm8524
86              - fsl,imx-audio-wm8904
87              - fsl,imx-audio-wm8960
88              - fsl,imx-audio-wm8962
89              - fsl,imx-audio-wm8958
90              - fsl,imx-audio-spdif
91
92  model:
93    $ref: /schemas/types.yaml#/definitions/string
94    description: The user-visible name of this sound complex
95
96  audio-asrc:
97    $ref: /schemas/types.yaml#/definitions/phandle
98    description:
99      The phandle of ASRC. It can be absent if there's no
100      need to add ASRC support via DPCM.
101
102  audio-codec:
103    $ref: /schemas/types.yaml#/definitions/phandle-array
104    description: |
105      The phandle of an audio codec.
106      With "fsl,imx-audio-spdif", either SPDIF audio codec spdif_transmitter,
107      spdif_receiver or both.
108    minItems: 1
109    maxItems: 2
110    items:
111      maxItems: 1
112
113  audio-cpu:
114    $ref: /schemas/types.yaml#/definitions/phandle
115    description: The phandle of an CPU DAI controller
116
117  audio-routing:
118    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
119    description:
120      A list of the connections between audio components. Each entry is a
121      pair of strings, the first being the connection's sink, the second
122      being the connection's source. There're a few pre-designed board
123      connectors. "AMIC" stands for Analog Microphone Jack.
124      "DMIC" stands for Digital Microphone Jack. The "Mic Jack" and "AMIC"
125      are redundant while coexisting in order to support the old bindings
126      of wm8962 and sgtl5000.
127
128  hp-det-gpio:
129    deprecated: true
130    maxItems: 1
131    description: The GPIO that detect headphones are plugged in
132
133  hp-det-gpios:
134    maxItems: 1
135    description: The GPIO that detect headphones are plugged in
136
137  mic-det-gpio:
138    deprecated: true
139    maxItems: 1
140    description: The GPIO that detect microphones are plugged in
141
142  mic-det-gpios:
143    maxItems: 1
144    description: The GPIO that detect microphones are plugged in
145
146  bitclock-master:
147    $ref: simple-card.yaml#/definitions/bitclock-master
148    description: Indicates dai-link bit clock master.
149
150  frame-master:
151    $ref: simple-card.yaml#/definitions/frame-master
152    description: Indicates dai-link frame master.
153
154  format:
155    $ref: simple-card.yaml#/definitions/format
156    description: audio format.
157
158  frame-inversion:
159    $ref: simple-card.yaml#/definitions/frame-inversion
160    description: dai-link uses frame clock inversion.
161
162  bitclock-inversion:
163    $ref: simple-card.yaml#/definitions/bitclock-inversion
164    description: dai-link uses bit clock inversion.
165
166  mclk-id:
167    $ref: /schemas/types.yaml#/definitions/uint32-array
168    description: Main clock id for each codec, specific for each card configuration.
169    minItems: 1
170    maxItems: 2
171
172  mux-int-port:
173    $ref: /schemas/types.yaml#/definitions/uint32
174    enum: [1, 2, 7]
175    description: The internal port of the i.MX audio muxer (AUDMUX)
176
177  mux-ext-port:
178    $ref: /schemas/types.yaml#/definitions/uint32
179    enum: [3, 4, 5, 6]
180    description: The external port of the i.MX audio muxer
181
182  ssi-controller:
183    $ref: /schemas/types.yaml#/definitions/phandle
184    description: The phandle of an CPU DAI controller
185
186  spdif-controller:
187    $ref: /schemas/types.yaml#/definitions/phandle
188    deprecated: true
189    description: The phandle of an S/PDIF CPU DAI controller.
190
191  spdif-out:
192    type: boolean
193    deprecated: true
194    description: |
195      If present, the transmitting function of S/PDIF will be enabled,
196      indicating there's a physical S/PDIF out connector or jack on the
197      board or it's connecting to some other IP block, such as an HDMI
198      encoder or display-controller.
199
200  spdif-in:
201    type: boolean
202    deprecated: true
203    description: |
204      If present, the receiving function of S/PDIF will be enabled,
205      indicating there is a physical S/PDIF in connector/jack on the board.
206
207required:
208  - compatible
209  - model
210
211unevaluatedProperties: false
212
213examples:
214  - |
215    sound-cs42888 {
216        compatible = "fsl,imx-audio-cs42888";
217        model = "cs42888-audio";
218        audio-cpu = <&esai>;
219        audio-asrc = <&asrc>;
220        audio-codec = <&cs42888>;
221        audio-routing =
222             "Line Out Jack", "AOUT1L",
223             "Line Out Jack", "AOUT1R",
224             "Line Out Jack", "AOUT2L",
225             "Line Out Jack", "AOUT2R",
226             "Line Out Jack", "AOUT3L",
227             "Line Out Jack", "AOUT3R",
228             "Line Out Jack", "AOUT4L",
229             "Line Out Jack", "AOUT4R",
230             "AIN1L", "Line In Jack",
231             "AIN1R", "Line In Jack",
232             "AIN2L", "Line In Jack",
233             "AIN2R", "Line In Jack";
234    };
235
236  - |
237    sound-spdif-asrc {
238        compatible = "fsl,imx-audio-spdif";
239        model = "spdif-asrc-audio";
240        audio-cpu = <&spdif>;
241        audio-asrc = <&easrc>;
242        audio-codec = <&spdifdit>, <&spdifdir>;
243    };
244