Documentation / devicetree / bindings / sound / fsl-asoc-card.yaml


Based on kernel version 6.11. Page generated on 2024-09-24 08:21 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242
# 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>;
    };