xref: /freebsd/sys/contrib/device-tree/Bindings/sound/fsl-asoc-card.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
17d0873ebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
27d0873ebSEmmanuel Vadot%YAML 1.2
37d0873ebSEmmanuel Vadot---
47d0873ebSEmmanuel Vadot$id: http://devicetree.org/schemas/sound/fsl-asoc-card.yaml#
57d0873ebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
67d0873ebSEmmanuel Vadot
77d0873ebSEmmanuel Vadottitle: Freescale Generic ASoC Sound Card with ASRC support
87d0873ebSEmmanuel Vadot
97d0873ebSEmmanuel Vadotdescription:
107d0873ebSEmmanuel Vadot  The Freescale Generic ASoC Sound Card can be used, ideally,
117d0873ebSEmmanuel Vadot  for all Freescale SoCs connecting with external CODECs.
127d0873ebSEmmanuel Vadot
137d0873ebSEmmanuel Vadot  The idea of this generic sound card is a bit like ASoC Simple Card.
147d0873ebSEmmanuel Vadot  However, for Freescale SoCs (especially those released in recent years),
157d0873ebSEmmanuel Vadot  most of them have ASRC inside. And this is a specific feature that might
167d0873ebSEmmanuel Vadot  be painstakingly controlled and merged into the Simple Card.
177d0873ebSEmmanuel Vadot
187d0873ebSEmmanuel Vadot  So having this generic sound card allows all Freescale SoC users to
197d0873ebSEmmanuel Vadot  benefit from the simplification of a new card support and the capability
207d0873ebSEmmanuel Vadot  of the wide sample rates support through ASRC.
217d0873ebSEmmanuel Vadot
227d0873ebSEmmanuel Vadot  Note, The card is initially designed for those sound cards who use AC'97, I2S
237d0873ebSEmmanuel Vadot  and PCM DAI formats. However, it'll be also possible to support those non
247d0873ebSEmmanuel Vadot  AC'97/I2S/PCM type sound cards, such as S/PDIF audio and HDMI audio, as
257d0873ebSEmmanuel Vadot  long as the driver has been properly upgraded.
267d0873ebSEmmanuel Vadot
277d0873ebSEmmanuel Vadotmaintainers:
287d0873ebSEmmanuel Vadot  - Shengjiu Wang <shengjiu.wang@nxp.com>
297d0873ebSEmmanuel Vadot
307d0873ebSEmmanuel Vadotproperties:
317d0873ebSEmmanuel Vadot  compatible:
327d0873ebSEmmanuel Vadot    oneOf:
337d0873ebSEmmanuel Vadot      - items:
347d0873ebSEmmanuel Vadot          - enum:
357d0873ebSEmmanuel Vadot              - fsl,imx-sgtl5000
367d0873ebSEmmanuel Vadot              - fsl,imx25-pdk-sgtl5000
377d0873ebSEmmanuel Vadot              - fsl,imx53-cpuvo-sgtl5000
387d0873ebSEmmanuel Vadot              - fsl,imx51-babbage-sgtl5000
397d0873ebSEmmanuel Vadot              - fsl,imx53-m53evk-sgtl5000
407d0873ebSEmmanuel Vadot              - fsl,imx53-qsb-sgtl5000
417d0873ebSEmmanuel Vadot              - fsl,imx53-voipac-sgtl5000
427d0873ebSEmmanuel Vadot              - fsl,imx6-armadeus-sgtl5000
437d0873ebSEmmanuel Vadot              - fsl,imx6-rex-sgtl5000
447d0873ebSEmmanuel Vadot              - fsl,imx6-sabreauto-cs42888
457d0873ebSEmmanuel Vadot              - fsl,imx6-wandboard-sgtl5000
467d0873ebSEmmanuel Vadot              - fsl,imx6dl-nit6xlite-sgtl5000
477d0873ebSEmmanuel Vadot              - fsl,imx6q-ba16-sgtl5000
487d0873ebSEmmanuel Vadot              - fsl,imx6q-nitrogen6_max-sgtl5000
497d0873ebSEmmanuel Vadot              - fsl,imx6q-nitrogen6_som2-sgtl5000
507d0873ebSEmmanuel Vadot              - fsl,imx6q-nitrogen6x-sgtl5000
517d0873ebSEmmanuel Vadot              - fsl,imx6q-sabrelite-sgtl5000
527d0873ebSEmmanuel Vadot              - fsl,imx6q-sabresd-wm8962
537d0873ebSEmmanuel Vadot              - fsl,imx6q-udoo-ac97
547d0873ebSEmmanuel Vadot              - fsl,imx6q-ventana-sgtl5000
557d0873ebSEmmanuel Vadot              - fsl,imx6sl-evk-wm8962
567d0873ebSEmmanuel Vadot              - fsl,imx6sx-sdb-mqs
577d0873ebSEmmanuel Vadot              - fsl,imx6sx-sdb-wm8962
587d0873ebSEmmanuel Vadot              - fsl,imx7d-evk-wm8960
597d0873ebSEmmanuel Vadot              - karo,tx53-audio-sgtl5000
607d0873ebSEmmanuel Vadot              - tq,imx53-mba53-sgtl5000
617d0873ebSEmmanuel Vadot          - enum:
627d0873ebSEmmanuel Vadot              - fsl,imx-audio-ac97
637d0873ebSEmmanuel Vadot              - fsl,imx-audio-cs42888
647d0873ebSEmmanuel Vadot              - fsl,imx-audio-mqs
657d0873ebSEmmanuel Vadot              - fsl,imx-audio-sgtl5000
667d0873ebSEmmanuel Vadot              - fsl,imx-audio-wm8960
677d0873ebSEmmanuel Vadot              - fsl,imx-audio-wm8962
687d0873ebSEmmanuel Vadot      - items:
697d0873ebSEmmanuel Vadot          - enum:
70*0e8011faSEmmanuel Vadot              - fsl,imx-sabreauto-spdif
71*0e8011faSEmmanuel Vadot              - fsl,imx6sx-sdb-spdif
72*0e8011faSEmmanuel Vadot          - const: fsl,imx-audio-spdif
73*0e8011faSEmmanuel Vadot      - items:
74*0e8011faSEmmanuel Vadot          - enum:
757d0873ebSEmmanuel Vadot              - fsl,imx-audio-ac97
767d0873ebSEmmanuel Vadot              - fsl,imx-audio-cs42888
777d0873ebSEmmanuel Vadot              - fsl,imx-audio-cs427x
787d0873ebSEmmanuel Vadot              - fsl,imx-audio-mqs
797d0873ebSEmmanuel Vadot              - fsl,imx-audio-nau8822
807d0873ebSEmmanuel Vadot              - fsl,imx-audio-sgtl5000
817d0873ebSEmmanuel Vadot              - fsl,imx-audio-si476x
827d0873ebSEmmanuel Vadot              - fsl,imx-audio-tlv320aic31xx
837d0873ebSEmmanuel Vadot              - fsl,imx-audio-tlv320aic32x4
847d0873ebSEmmanuel Vadot              - fsl,imx-audio-wm8524
857d0873ebSEmmanuel Vadot              - fsl,imx-audio-wm8904
867d0873ebSEmmanuel Vadot              - fsl,imx-audio-wm8960
877d0873ebSEmmanuel Vadot              - fsl,imx-audio-wm8962
887d0873ebSEmmanuel Vadot              - fsl,imx-audio-wm8958
89*0e8011faSEmmanuel Vadot              - fsl,imx-audio-spdif
907d0873ebSEmmanuel Vadot
917d0873ebSEmmanuel Vadot  model:
927d0873ebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
937d0873ebSEmmanuel Vadot    description: The user-visible name of this sound complex
947d0873ebSEmmanuel Vadot
957d0873ebSEmmanuel Vadot  audio-asrc:
967d0873ebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
977d0873ebSEmmanuel Vadot    description:
987d0873ebSEmmanuel Vadot      The phandle of ASRC. It can be absent if there's no
997d0873ebSEmmanuel Vadot      need to add ASRC support via DPCM.
1007d0873ebSEmmanuel Vadot
1017d0873ebSEmmanuel Vadot  audio-codec:
102*0e8011faSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle-array
103*0e8011faSEmmanuel Vadot    description: |
104*0e8011faSEmmanuel Vadot      The phandle of an audio codec.
105*0e8011faSEmmanuel Vadot      With "fsl,imx-audio-spdif", either SPDIF audio codec spdif_transmitter,
106*0e8011faSEmmanuel Vadot      spdif_receiver or both.
107*0e8011faSEmmanuel Vadot    minItems: 1
108*0e8011faSEmmanuel Vadot    maxItems: 2
109*0e8011faSEmmanuel Vadot    items:
110*0e8011faSEmmanuel Vadot      maxItems: 1
1117d0873ebSEmmanuel Vadot
1127d0873ebSEmmanuel Vadot  audio-cpu:
1137d0873ebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
1147d0873ebSEmmanuel Vadot    description: The phandle of an CPU DAI controller
1157d0873ebSEmmanuel Vadot
1167d0873ebSEmmanuel Vadot  audio-routing:
1177d0873ebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
1187d0873ebSEmmanuel Vadot    description:
1197d0873ebSEmmanuel Vadot      A list of the connections between audio components. Each entry is a
1207d0873ebSEmmanuel Vadot      pair of strings, the first being the connection's sink, the second
1217d0873ebSEmmanuel Vadot      being the connection's source. There're a few pre-designed board
1227d0873ebSEmmanuel Vadot      connectors. "AMIC" stands for Analog Microphone Jack.
1237d0873ebSEmmanuel Vadot      "DMIC" stands for Digital Microphone Jack. The "Mic Jack" and "AMIC"
1247d0873ebSEmmanuel Vadot      are redundant while coexisting in order to support the old bindings
1257d0873ebSEmmanuel Vadot      of wm8962 and sgtl5000.
1267d0873ebSEmmanuel Vadot
1277d0873ebSEmmanuel Vadot  hp-det-gpio:
1287d0873ebSEmmanuel Vadot    deprecated: true
1297d0873ebSEmmanuel Vadot    maxItems: 1
1307d0873ebSEmmanuel Vadot    description: The GPIO that detect headphones are plugged in
1317d0873ebSEmmanuel Vadot
1327d0873ebSEmmanuel Vadot  hp-det-gpios:
1337d0873ebSEmmanuel Vadot    maxItems: 1
1347d0873ebSEmmanuel Vadot    description: The GPIO that detect headphones are plugged in
1357d0873ebSEmmanuel Vadot
1367d0873ebSEmmanuel Vadot  mic-det-gpio:
1377d0873ebSEmmanuel Vadot    deprecated: true
1387d0873ebSEmmanuel Vadot    maxItems: 1
1397d0873ebSEmmanuel Vadot    description: The GPIO that detect microphones are plugged in
1407d0873ebSEmmanuel Vadot
1417d0873ebSEmmanuel Vadot  mic-det-gpios:
1427d0873ebSEmmanuel Vadot    maxItems: 1
1437d0873ebSEmmanuel Vadot    description: The GPIO that detect microphones are plugged in
1447d0873ebSEmmanuel Vadot
1457d0873ebSEmmanuel Vadot  bitclock-master:
1467d0873ebSEmmanuel Vadot    $ref: simple-card.yaml#/definitions/bitclock-master
1477d0873ebSEmmanuel Vadot    description: Indicates dai-link bit clock master.
1487d0873ebSEmmanuel Vadot
1497d0873ebSEmmanuel Vadot  frame-master:
1507d0873ebSEmmanuel Vadot    $ref: simple-card.yaml#/definitions/frame-master
1517d0873ebSEmmanuel Vadot    description: Indicates dai-link frame master.
1527d0873ebSEmmanuel Vadot
1537d0873ebSEmmanuel Vadot  format:
1547d0873ebSEmmanuel Vadot    $ref: simple-card.yaml#/definitions/format
1557d0873ebSEmmanuel Vadot    description: audio format.
1567d0873ebSEmmanuel Vadot
1577d0873ebSEmmanuel Vadot  frame-inversion:
1587d0873ebSEmmanuel Vadot    $ref: simple-card.yaml#/definitions/frame-inversion
1597d0873ebSEmmanuel Vadot    description: dai-link uses frame clock inversion.
1607d0873ebSEmmanuel Vadot
1617d0873ebSEmmanuel Vadot  bitclock-inversion:
1627d0873ebSEmmanuel Vadot    $ref: simple-card.yaml#/definitions/bitclock-inversion
1637d0873ebSEmmanuel Vadot    description: dai-link uses bit clock inversion.
1647d0873ebSEmmanuel Vadot
1657d0873ebSEmmanuel Vadot  mclk-id:
166*0e8011faSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
167*0e8011faSEmmanuel Vadot    description: Main clock id for each codec, specific for each card configuration.
168*0e8011faSEmmanuel Vadot    minItems: 1
169*0e8011faSEmmanuel Vadot    maxItems: 2
1707d0873ebSEmmanuel Vadot
1717d0873ebSEmmanuel Vadot  mux-int-port:
1727d0873ebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
1737d0873ebSEmmanuel Vadot    enum: [1, 2, 7]
1747d0873ebSEmmanuel Vadot    description: The internal port of the i.MX audio muxer (AUDMUX)
1757d0873ebSEmmanuel Vadot
1767d0873ebSEmmanuel Vadot  mux-ext-port:
1777d0873ebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
1787d0873ebSEmmanuel Vadot    enum: [3, 4, 5, 6]
1797d0873ebSEmmanuel Vadot    description: The external port of the i.MX audio muxer
1807d0873ebSEmmanuel Vadot
1817d0873ebSEmmanuel Vadot  ssi-controller:
1827d0873ebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
1837d0873ebSEmmanuel Vadot    description: The phandle of an CPU DAI controller
1847d0873ebSEmmanuel Vadot
185*0e8011faSEmmanuel Vadot  spdif-controller:
186*0e8011faSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
187*0e8011faSEmmanuel Vadot    deprecated: true
188*0e8011faSEmmanuel Vadot    description: The phandle of an S/PDIF CPU DAI controller.
189*0e8011faSEmmanuel Vadot
190*0e8011faSEmmanuel Vadot  spdif-out:
191*0e8011faSEmmanuel Vadot    type: boolean
192*0e8011faSEmmanuel Vadot    deprecated: true
193*0e8011faSEmmanuel Vadot    description: |
194*0e8011faSEmmanuel Vadot      If present, the transmitting function of S/PDIF will be enabled,
195*0e8011faSEmmanuel Vadot      indicating there's a physical S/PDIF out connector or jack on the
196*0e8011faSEmmanuel Vadot      board or it's connecting to some other IP block, such as an HDMI
197*0e8011faSEmmanuel Vadot      encoder or display-controller.
198*0e8011faSEmmanuel Vadot
199*0e8011faSEmmanuel Vadot  spdif-in:
200*0e8011faSEmmanuel Vadot    type: boolean
201*0e8011faSEmmanuel Vadot    deprecated: true
202*0e8011faSEmmanuel Vadot    description: |
203*0e8011faSEmmanuel Vadot      If present, the receiving function of S/PDIF will be enabled,
204*0e8011faSEmmanuel Vadot      indicating there is a physical S/PDIF in connector/jack on the board.
205*0e8011faSEmmanuel Vadot
2067d0873ebSEmmanuel Vadotrequired:
2077d0873ebSEmmanuel Vadot  - compatible
2087d0873ebSEmmanuel Vadot  - model
2097d0873ebSEmmanuel Vadot
2107d0873ebSEmmanuel VadotunevaluatedProperties: false
2117d0873ebSEmmanuel Vadot
2127d0873ebSEmmanuel Vadotexamples:
2137d0873ebSEmmanuel Vadot  - |
2147d0873ebSEmmanuel Vadot    sound-cs42888 {
2157d0873ebSEmmanuel Vadot        compatible = "fsl,imx-audio-cs42888";
2167d0873ebSEmmanuel Vadot        model = "cs42888-audio";
2177d0873ebSEmmanuel Vadot        audio-cpu = <&esai>;
2187d0873ebSEmmanuel Vadot        audio-asrc = <&asrc>;
2197d0873ebSEmmanuel Vadot        audio-codec = <&cs42888>;
2207d0873ebSEmmanuel Vadot        audio-routing =
2217d0873ebSEmmanuel Vadot             "Line Out Jack", "AOUT1L",
2227d0873ebSEmmanuel Vadot             "Line Out Jack", "AOUT1R",
2237d0873ebSEmmanuel Vadot             "Line Out Jack", "AOUT2L",
2247d0873ebSEmmanuel Vadot             "Line Out Jack", "AOUT2R",
2257d0873ebSEmmanuel Vadot             "Line Out Jack", "AOUT3L",
2267d0873ebSEmmanuel Vadot             "Line Out Jack", "AOUT3R",
2277d0873ebSEmmanuel Vadot             "Line Out Jack", "AOUT4L",
2287d0873ebSEmmanuel Vadot             "Line Out Jack", "AOUT4R",
2297d0873ebSEmmanuel Vadot             "AIN1L", "Line In Jack",
2307d0873ebSEmmanuel Vadot             "AIN1R", "Line In Jack",
2317d0873ebSEmmanuel Vadot             "AIN2L", "Line In Jack",
2327d0873ebSEmmanuel Vadot             "AIN2R", "Line In Jack";
2337d0873ebSEmmanuel Vadot    };
234*0e8011faSEmmanuel Vadot
235*0e8011faSEmmanuel Vadot  - |
236*0e8011faSEmmanuel Vadot    sound-spdif-asrc {
237*0e8011faSEmmanuel Vadot        compatible = "fsl,imx-audio-spdif";
238*0e8011faSEmmanuel Vadot        model = "spdif-asrc-audio";
239*0e8011faSEmmanuel Vadot        audio-cpu = <&spdif>;
240*0e8011faSEmmanuel Vadot        audio-asrc = <&easrc>;
241*0e8011faSEmmanuel Vadot        audio-codec = <&spdifdit>, <&spdifdir>;
242*0e8011faSEmmanuel Vadot    };
243