Tom Rini | 762f85b | 2024-07-20 11:15:10 -0600 | [diff] [blame] | 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 | |
| 7 | title: Freescale Generic ASoC Sound Card with ASRC support |
| 8 | |
| 9 | description: |
| 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 | |
| 27 | maintainers: |
| 28 | - Shengjiu Wang <shengjiu.wang@nxp.com> |
| 29 | |
| 30 | properties: |
| 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: |
Tom Rini | 6b642ac | 2024-10-01 12:20:28 -0600 | [diff] [blame^] | 70 | - fsl,imx-sabreauto-spdif |
| 71 | - fsl,imx6sx-sdb-spdif |
| 72 | - const: fsl,imx-audio-spdif |
| 73 | - items: |
| 74 | - enum: |
Tom Rini | 762f85b | 2024-07-20 11:15:10 -0600 | [diff] [blame] | 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 |
Tom Rini | 6b642ac | 2024-10-01 12:20:28 -0600 | [diff] [blame^] | 89 | - fsl,imx-audio-spdif |
Tom Rini | 762f85b | 2024-07-20 11:15:10 -0600 | [diff] [blame] | 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: |
Tom Rini | 6b642ac | 2024-10-01 12:20:28 -0600 | [diff] [blame^] | 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 |
Tom Rini | 762f85b | 2024-07-20 11:15:10 -0600 | [diff] [blame] | 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: |
Tom Rini | 6b642ac | 2024-10-01 12:20:28 -0600 | [diff] [blame^] | 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 |
Tom Rini | 762f85b | 2024-07-20 11:15:10 -0600 | [diff] [blame] | 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 | |
Tom Rini | 6b642ac | 2024-10-01 12:20:28 -0600 | [diff] [blame^] | 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 | |
Tom Rini | 762f85b | 2024-07-20 11:15:10 -0600 | [diff] [blame] | 206 | required: |
| 207 | - compatible |
| 208 | - model |
| 209 | |
| 210 | unevaluatedProperties: false |
| 211 | |
| 212 | examples: |
| 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 | }; |
Tom Rini | 6b642ac | 2024-10-01 12:20:28 -0600 | [diff] [blame^] | 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 | }; |