xref: /linux/Documentation/devicetree/bindings/sound/fsl-asoc-card.yaml (revision daa121128a2d2ac6006159e2c47676e4fcd21eab)
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-audio-ac97
71              - fsl,imx-audio-cs42888
72              - fsl,imx-audio-cs427x
73              - fsl,imx-audio-mqs
74              - fsl,imx-audio-nau8822
75              - fsl,imx-audio-sgtl5000
76              - fsl,imx-audio-si476x
77              - fsl,imx-audio-tlv320aic31xx
78              - fsl,imx-audio-tlv320aic32x4
79              - fsl,imx-audio-wm8524
80              - fsl,imx-audio-wm8904
81              - fsl,imx-audio-wm8960
82              - fsl,imx-audio-wm8962
83              - fsl,imx-audio-wm8958
84
85  model:
86    $ref: /schemas/types.yaml#/definitions/string
87    description: The user-visible name of this sound complex
88
89  audio-asrc:
90    $ref: /schemas/types.yaml#/definitions/phandle
91    description:
92      The phandle of ASRC. It can be absent if there's no
93      need to add ASRC support via DPCM.
94
95  audio-codec:
96    $ref: /schemas/types.yaml#/definitions/phandle
97    description: The phandle of an audio codec
98
99  audio-cpu:
100    $ref: /schemas/types.yaml#/definitions/phandle
101    description: The phandle of an CPU DAI controller
102
103  audio-routing:
104    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
105    description:
106      A list of the connections between audio components. Each entry is a
107      pair of strings, the first being the connection's sink, the second
108      being the connection's source. There're a few pre-designed board
109      connectors. "AMIC" stands for Analog Microphone Jack.
110      "DMIC" stands for Digital Microphone Jack. The "Mic Jack" and "AMIC"
111      are redundant while coexisting in order to support the old bindings
112      of wm8962 and sgtl5000.
113
114  hp-det-gpio:
115    deprecated: true
116    maxItems: 1
117    description: The GPIO that detect headphones are plugged in
118
119  hp-det-gpios:
120    maxItems: 1
121    description: The GPIO that detect headphones are plugged in
122
123  mic-det-gpio:
124    deprecated: true
125    maxItems: 1
126    description: The GPIO that detect microphones are plugged in
127
128  mic-det-gpios:
129    maxItems: 1
130    description: The GPIO that detect microphones are plugged in
131
132  bitclock-master:
133    $ref: simple-card.yaml#/definitions/bitclock-master
134    description: Indicates dai-link bit clock master.
135
136  frame-master:
137    $ref: simple-card.yaml#/definitions/frame-master
138    description: Indicates dai-link frame master.
139
140  format:
141    $ref: simple-card.yaml#/definitions/format
142    description: audio format.
143
144  frame-inversion:
145    $ref: simple-card.yaml#/definitions/frame-inversion
146    description: dai-link uses frame clock inversion.
147
148  bitclock-inversion:
149    $ref: simple-card.yaml#/definitions/bitclock-inversion
150    description: dai-link uses bit clock inversion.
151
152  mclk-id:
153    $ref: /schemas/types.yaml#/definitions/uint32
154    description: main clock id, specific for each card configuration.
155
156  mux-int-port:
157    $ref: /schemas/types.yaml#/definitions/uint32
158    enum: [1, 2, 7]
159    description: The internal port of the i.MX audio muxer (AUDMUX)
160
161  mux-ext-port:
162    $ref: /schemas/types.yaml#/definitions/uint32
163    enum: [3, 4, 5, 6]
164    description: The external port of the i.MX audio muxer
165
166  ssi-controller:
167    $ref: /schemas/types.yaml#/definitions/phandle
168    description: The phandle of an CPU DAI controller
169
170required:
171  - compatible
172  - model
173
174unevaluatedProperties: false
175
176examples:
177  - |
178    sound-cs42888 {
179        compatible = "fsl,imx-audio-cs42888";
180        model = "cs42888-audio";
181        audio-cpu = <&esai>;
182        audio-asrc = <&asrc>;
183        audio-codec = <&cs42888>;
184        audio-routing =
185             "Line Out Jack", "AOUT1L",
186             "Line Out Jack", "AOUT1R",
187             "Line Out Jack", "AOUT2L",
188             "Line Out Jack", "AOUT2R",
189             "Line Out Jack", "AOUT3L",
190             "Line Out Jack", "AOUT3R",
191             "Line Out Jack", "AOUT4L",
192             "Line Out Jack", "AOUT4R",
193             "AIN1L", "Line In Jack",
194             "AIN1R", "Line In Jack",
195             "AIN2L", "Line In Jack",
196             "AIN2R", "Line In Jack";
197    };
198