xref: /linux/Documentation/devicetree/bindings/sound/fsl-asoc-card.yaml (revision d53b8e36925256097a08d7cb749198d85cbf9b2b)
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-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
89              - fsl,imx-audio-spdif
90
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:
102    $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
111
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:
166    $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
170
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
185  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
206required:
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    };
234
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    };
243