^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) Freescale Generic ASoC Sound Card with ASRC support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) The Freescale Generic ASoC Sound Card can be used, ideally, for all Freescale
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) SoCs connecting with external CODECs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) The idea of this generic sound card is a bit like ASoC Simple Card. However,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) for Freescale SoCs (especially those released in recent years), most of them
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) have ASRC (Documentation/devicetree/bindings/sound/fsl,asrc.txt) inside. And
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) this is a specific feature that might be painstakingly controlled and merged
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) into the Simple Card.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) So having this generic sound card allows all Freescale SoC users to benefit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) from the simplification of a new card support and the capability of the wide
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) sample rates support through ASRC.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) Note: The card is initially designed for those sound cards who use AC'97, I2S
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) and PCM DAI formats. However, it'll be also possible to support those non
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) AC'97/I2S/PCM type sound cards, such as S/PDIF audio and HDMI audio, as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) long as the driver has been properly upgraded.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) The compatible list for this generic sound card currently:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) "fsl,imx-audio-ac97"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) "fsl,imx-audio-cs42888"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) "fsl,imx-audio-cs427x"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) (compatible with CS4271 and CS4272)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) "fsl,imx-audio-wm8962"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) "fsl,imx-audio-sgtl5000"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) (compatible with Documentation/devicetree/bindings/sound/imx-audio-sgtl5000.txt)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) "fsl,imx-audio-wm8960"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) "fsl,imx-audio-mqs"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) "fsl,imx-audio-wm8524"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) "fsl,imx-audio-tlv320aic32x4"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) - compatible : Contains one of entries in the compatible list.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) - model : The user-visible name of this sound complex
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) - audio-cpu : The phandle of an CPU DAI controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) - audio-codec : The phandle of an audio codec
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) Optional properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) - audio-asrc : The phandle of ASRC. It can be absent if there's no
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) need to add ASRC support via DPCM.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) - audio-routing : A list of the connections between audio components.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) Each entry is a pair of strings, the first being the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) connection's sink, the second being the connection's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) source. There're a few pre-designed board connectors:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) * Line Out Jack
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) * Line In Jack
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) * Headphone Jack
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) * Mic Jack
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) * Ext Spk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) * AMIC (stands for Analog Microphone Jack)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) * DMIC (stands for Digital Microphone Jack)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) Note: The "Mic Jack" and "AMIC" are redundant while
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) coexisting in order to support the old bindings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) of wm8962 and sgtl5000.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) - hp-det-gpio : The GPIO that detect headphones are plugged in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) - mic-det-gpio : The GPIO that detect microphones are plugged in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) - bitclock-master : Indicates dai-link bit clock master; for details see simple-card.yaml.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) - frame-master : Indicates dai-link frame master; for details see simple-card.yaml.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) - dai-format : audio format, for details see simple-card.yaml.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) - frame-inversion : dai-link uses frame clock inversion, for details see simple-card.yaml.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) - bitclock-inversion : dai-link uses bit clock inversion, for details see simple-card.yaml.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) Optional unless SSI is selected as a CPU DAI:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) - mux-int-port : The internal port of the i.MX audio muxer (AUDMUX)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) - mux-ext-port : The external port of the i.MX audio muxer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) Example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) sound-cs42888 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) compatible = "fsl,imx-audio-cs42888";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) model = "cs42888-audio";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) audio-cpu = <&esai>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) audio-asrc = <&asrc>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) audio-codec = <&cs42888>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) audio-routing =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) "Line Out Jack", "AOUT1L",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) "Line Out Jack", "AOUT1R",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) "Line Out Jack", "AOUT2L",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) "Line Out Jack", "AOUT2R",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) "Line Out Jack", "AOUT3L",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) "Line Out Jack", "AOUT3R",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) "Line Out Jack", "AOUT4L",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) "Line Out Jack", "AOUT4R",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) "AIN1L", "Line In Jack",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) "AIN1R", "Line In Jack",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) "AIN2L", "Line In Jack",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) "AIN2R", "Line In Jack";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) };