| # 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 <shengjiu.wang@nxp.com> |
| |
| 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>; |
| }; |