1*8d13bc63SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) 2*8d13bc63SEmmanuel Vadot/* 3*8d13bc63SEmmanuel Vadot * msm8916-modem-qdsp6.dtsi describes the typical modem setup on MSM8916 devices 4*8d13bc63SEmmanuel Vadot * (or similar SoCs) with audio routed via the QDSP6 services provided by the 5*8d13bc63SEmmanuel Vadot * modem firmware. The digital/analog codec in the SoC/PMIC is used by default, 6*8d13bc63SEmmanuel Vadot * but boards can define additional codecs by adding additional backend DAI links. 7*8d13bc63SEmmanuel Vadot */ 8*8d13bc63SEmmanuel Vadot 9*8d13bc63SEmmanuel Vadot#include <dt-bindings/sound/qcom,q6afe.h> 10*8d13bc63SEmmanuel Vadot#include <dt-bindings/sound/qcom,q6asm.h> 11*8d13bc63SEmmanuel Vadot 12*8d13bc63SEmmanuel Vadot&apr { 13*8d13bc63SEmmanuel Vadot status = "okay"; 14*8d13bc63SEmmanuel Vadot}; 15*8d13bc63SEmmanuel Vadot 16*8d13bc63SEmmanuel Vadot&bam_dmux { 17*8d13bc63SEmmanuel Vadot status = "okay"; 18*8d13bc63SEmmanuel Vadot}; 19*8d13bc63SEmmanuel Vadot 20*8d13bc63SEmmanuel Vadot&bam_dmux_dma { 21*8d13bc63SEmmanuel Vadot status = "okay"; 22*8d13bc63SEmmanuel Vadot}; 23*8d13bc63SEmmanuel Vadot 24*8d13bc63SEmmanuel Vadot&lpass { 25*8d13bc63SEmmanuel Vadot status = "reserved"; /* Controlled by QDSP6 */ 26*8d13bc63SEmmanuel Vadot}; 27*8d13bc63SEmmanuel Vadot 28*8d13bc63SEmmanuel Vadot&lpass_codec { 29*8d13bc63SEmmanuel Vadot status = "okay"; 30*8d13bc63SEmmanuel Vadot}; 31*8d13bc63SEmmanuel Vadot 32*8d13bc63SEmmanuel Vadot&mba_mem { 33*8d13bc63SEmmanuel Vadot status = "okay"; 34*8d13bc63SEmmanuel Vadot}; 35*8d13bc63SEmmanuel Vadot 36*8d13bc63SEmmanuel Vadot&mpss { 37*8d13bc63SEmmanuel Vadot status = "okay"; 38*8d13bc63SEmmanuel Vadot}; 39*8d13bc63SEmmanuel Vadot 40*8d13bc63SEmmanuel Vadot&mpss_mem { 41*8d13bc63SEmmanuel Vadot status = "okay"; 42*8d13bc63SEmmanuel Vadot}; 43*8d13bc63SEmmanuel Vadot 44*8d13bc63SEmmanuel Vadot&pm8916_codec { 45*8d13bc63SEmmanuel Vadot status = "okay"; 46*8d13bc63SEmmanuel Vadot}; 47*8d13bc63SEmmanuel Vadot 48*8d13bc63SEmmanuel Vadot&q6afedai { 49*8d13bc63SEmmanuel Vadot dai@16 { 50*8d13bc63SEmmanuel Vadot reg = <PRIMARY_MI2S_RX>; 51*8d13bc63SEmmanuel Vadot qcom,sd-lines = <0 1>; 52*8d13bc63SEmmanuel Vadot }; 53*8d13bc63SEmmanuel Vadot dai@20 { 54*8d13bc63SEmmanuel Vadot reg = <TERTIARY_MI2S_TX>; 55*8d13bc63SEmmanuel Vadot qcom,sd-lines = <0 1>; 56*8d13bc63SEmmanuel Vadot }; 57*8d13bc63SEmmanuel Vadot}; 58*8d13bc63SEmmanuel Vadot 59*8d13bc63SEmmanuel Vadot&q6asmdai { 60*8d13bc63SEmmanuel Vadot dai@0 { 61*8d13bc63SEmmanuel Vadot reg = <0>; 62*8d13bc63SEmmanuel Vadot direction = <Q6ASM_DAI_RX>; 63*8d13bc63SEmmanuel Vadot }; 64*8d13bc63SEmmanuel Vadot dai@1 { 65*8d13bc63SEmmanuel Vadot reg = <1>; 66*8d13bc63SEmmanuel Vadot direction = <Q6ASM_DAI_TX>; 67*8d13bc63SEmmanuel Vadot }; 68*8d13bc63SEmmanuel Vadot dai@2 { 69*8d13bc63SEmmanuel Vadot reg = <2>; 70*8d13bc63SEmmanuel Vadot direction = <Q6ASM_DAI_RX>; 71*8d13bc63SEmmanuel Vadot }; 72*8d13bc63SEmmanuel Vadot dai@3 { 73*8d13bc63SEmmanuel Vadot reg = <3>; 74*8d13bc63SEmmanuel Vadot direction = <Q6ASM_DAI_RX>; 75*8d13bc63SEmmanuel Vadot is-compress-dai; 76*8d13bc63SEmmanuel Vadot }; 77*8d13bc63SEmmanuel Vadot}; 78*8d13bc63SEmmanuel Vadot 79*8d13bc63SEmmanuel Vadot&sound { 80*8d13bc63SEmmanuel Vadot compatible = "qcom,msm8916-qdsp6-sndcard"; 81*8d13bc63SEmmanuel Vadot model = "msm8916"; 82*8d13bc63SEmmanuel Vadot 83*8d13bc63SEmmanuel Vadot pinctrl-0 = <&cdc_pdm_default>; 84*8d13bc63SEmmanuel Vadot pinctrl-1 = <&cdc_pdm_sleep>; 85*8d13bc63SEmmanuel Vadot pinctrl-names = "default", "sleep"; 86*8d13bc63SEmmanuel Vadot 87*8d13bc63SEmmanuel Vadot status = "okay"; 88*8d13bc63SEmmanuel Vadot 89*8d13bc63SEmmanuel Vadot frontend0-dai-link { 90*8d13bc63SEmmanuel Vadot link-name = "MultiMedia1"; 91*8d13bc63SEmmanuel Vadot 92*8d13bc63SEmmanuel Vadot cpu { 93*8d13bc63SEmmanuel Vadot sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>; 94*8d13bc63SEmmanuel Vadot }; 95*8d13bc63SEmmanuel Vadot }; 96*8d13bc63SEmmanuel Vadot 97*8d13bc63SEmmanuel Vadot frontend1-dai-link { 98*8d13bc63SEmmanuel Vadot link-name = "MultiMedia2"; 99*8d13bc63SEmmanuel Vadot 100*8d13bc63SEmmanuel Vadot cpu { 101*8d13bc63SEmmanuel Vadot sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>; 102*8d13bc63SEmmanuel Vadot }; 103*8d13bc63SEmmanuel Vadot }; 104*8d13bc63SEmmanuel Vadot 105*8d13bc63SEmmanuel Vadot frontend2-dai-link { 106*8d13bc63SEmmanuel Vadot link-name = "MultiMedia3"; 107*8d13bc63SEmmanuel Vadot 108*8d13bc63SEmmanuel Vadot cpu { 109*8d13bc63SEmmanuel Vadot sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>; 110*8d13bc63SEmmanuel Vadot }; 111*8d13bc63SEmmanuel Vadot }; 112*8d13bc63SEmmanuel Vadot 113*8d13bc63SEmmanuel Vadot frontend3-dai-link { 114*8d13bc63SEmmanuel Vadot link-name = "MultiMedia4"; 115*8d13bc63SEmmanuel Vadot 116*8d13bc63SEmmanuel Vadot cpu { 117*8d13bc63SEmmanuel Vadot sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA4>; 118*8d13bc63SEmmanuel Vadot }; 119*8d13bc63SEmmanuel Vadot }; 120*8d13bc63SEmmanuel Vadot 121*8d13bc63SEmmanuel Vadot sound_link_backend0: backend0-dai-link { 122*8d13bc63SEmmanuel Vadot link-name = "Primary MI2S"; 123*8d13bc63SEmmanuel Vadot 124*8d13bc63SEmmanuel Vadot cpu { 125*8d13bc63SEmmanuel Vadot sound-dai = <&q6afedai PRIMARY_MI2S_RX>; 126*8d13bc63SEmmanuel Vadot }; 127*8d13bc63SEmmanuel Vadot platform { 128*8d13bc63SEmmanuel Vadot sound-dai = <&q6routing>; 129*8d13bc63SEmmanuel Vadot }; 130*8d13bc63SEmmanuel Vadot codec { 131*8d13bc63SEmmanuel Vadot sound-dai = <&lpass_codec 0>, <&pm8916_codec 0>; 132*8d13bc63SEmmanuel Vadot }; 133*8d13bc63SEmmanuel Vadot }; 134*8d13bc63SEmmanuel Vadot 135*8d13bc63SEmmanuel Vadot sound_link_backend1: backend1-dai-link { 136*8d13bc63SEmmanuel Vadot link-name = "Tertiary MI2S"; 137*8d13bc63SEmmanuel Vadot 138*8d13bc63SEmmanuel Vadot cpu { 139*8d13bc63SEmmanuel Vadot sound-dai = <&q6afedai TERTIARY_MI2S_TX>; 140*8d13bc63SEmmanuel Vadot }; 141*8d13bc63SEmmanuel Vadot platform { 142*8d13bc63SEmmanuel Vadot sound-dai = <&q6routing>; 143*8d13bc63SEmmanuel Vadot }; 144*8d13bc63SEmmanuel Vadot codec { 145*8d13bc63SEmmanuel Vadot sound-dai = <&lpass_codec 1>, <&pm8916_codec 1>; 146*8d13bc63SEmmanuel Vadot }; 147*8d13bc63SEmmanuel Vadot }; 148*8d13bc63SEmmanuel Vadot}; 149