| // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) |
| /* |
| * msm8916-modem-qdsp6.dtsi describes the typical modem setup on MSM8916 devices |
| * (or similar SoCs) with audio routed via the QDSP6 services provided by the |
| * modem firmware. The digital/analog codec in the SoC/PMIC is used by default, |
| * but boards can define additional codecs by adding additional backend DAI links. |
| */ |
| |
| #include <dt-bindings/sound/qcom,q6afe.h> |
| #include <dt-bindings/sound/qcom,q6asm.h> |
| |
| &apr { |
| status = "okay"; |
| }; |
| |
| &bam_dmux { |
| status = "okay"; |
| }; |
| |
| &bam_dmux_dma { |
| status = "okay"; |
| }; |
| |
| &lpass { |
| status = "reserved"; /* Controlled by QDSP6 */ |
| }; |
| |
| &lpass_codec { |
| status = "okay"; |
| }; |
| |
| &mba_mem { |
| status = "okay"; |
| }; |
| |
| &mpss { |
| status = "okay"; |
| }; |
| |
| &mpss_mem { |
| status = "okay"; |
| }; |
| |
| &pm8916_codec { |
| status = "okay"; |
| }; |
| |
| &q6afedai { |
| dai@16 { |
| reg = <PRIMARY_MI2S_RX>; |
| qcom,sd-lines = <0 1>; |
| }; |
| dai@20 { |
| reg = <TERTIARY_MI2S_TX>; |
| qcom,sd-lines = <0 1>; |
| }; |
| }; |
| |
| &q6asmdai { |
| dai@0 { |
| reg = <0>; |
| direction = <Q6ASM_DAI_RX>; |
| }; |
| dai@1 { |
| reg = <1>; |
| direction = <Q6ASM_DAI_TX>; |
| }; |
| dai@2 { |
| reg = <2>; |
| direction = <Q6ASM_DAI_RX>; |
| }; |
| dai@3 { |
| reg = <3>; |
| direction = <Q6ASM_DAI_RX>; |
| is-compress-dai; |
| }; |
| }; |
| |
| &sound { |
| compatible = "qcom,msm8916-qdsp6-sndcard"; |
| model = "msm8916"; |
| |
| pinctrl-0 = <&cdc_pdm_default>; |
| pinctrl-1 = <&cdc_pdm_sleep>; |
| pinctrl-names = "default", "sleep"; |
| |
| status = "okay"; |
| |
| frontend0-dai-link { |
| link-name = "MultiMedia1"; |
| |
| cpu { |
| sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>; |
| }; |
| }; |
| |
| frontend1-dai-link { |
| link-name = "MultiMedia2"; |
| |
| cpu { |
| sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>; |
| }; |
| }; |
| |
| frontend2-dai-link { |
| link-name = "MultiMedia3"; |
| |
| cpu { |
| sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>; |
| }; |
| }; |
| |
| frontend3-dai-link { |
| link-name = "MultiMedia4"; |
| |
| cpu { |
| sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA4>; |
| }; |
| }; |
| |
| sound_link_backend0: backend0-dai-link { |
| link-name = "Primary MI2S"; |
| |
| cpu { |
| sound-dai = <&q6afedai PRIMARY_MI2S_RX>; |
| }; |
| platform { |
| sound-dai = <&q6routing>; |
| }; |
| codec { |
| sound-dai = <&lpass_codec 0>, <&pm8916_codec 0>; |
| }; |
| }; |
| |
| sound_link_backend1: backend1-dai-link { |
| link-name = "Tertiary MI2S"; |
| |
| cpu { |
| sound-dai = <&q6afedai TERTIARY_MI2S_TX>; |
| }; |
| platform { |
| sound-dai = <&q6routing>; |
| }; |
| codec { |
| sound-dai = <&lpass_codec 1>, <&pm8916_codec 1>; |
| }; |
| }; |
| }; |