# 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 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>; };