18abbd235SStephan Gerhold// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) 28abbd235SStephan Gerhold/* 38abbd235SStephan Gerhold * msm8916-modem-qdsp6.dtsi describes the typical modem setup on MSM8916 devices 48abbd235SStephan Gerhold * (or similar SoCs) with audio routed via the QDSP6 services provided by the 58abbd235SStephan Gerhold * modem firmware. The digital/analog codec in the SoC/PMIC is used by default, 68abbd235SStephan Gerhold * but boards can define additional codecs by adding additional backend DAI links. 78abbd235SStephan Gerhold */ 88abbd235SStephan Gerhold 98abbd235SStephan Gerhold#include <dt-bindings/sound/qcom,q6afe.h> 108abbd235SStephan Gerhold#include <dt-bindings/sound/qcom,q6asm.h> 118abbd235SStephan Gerhold 128abbd235SStephan Gerhold&apr { 138abbd235SStephan Gerhold status = "okay"; 148abbd235SStephan Gerhold}; 158abbd235SStephan Gerhold 168abbd235SStephan Gerhold&bam_dmux { 178abbd235SStephan Gerhold status = "okay"; 188abbd235SStephan Gerhold}; 198abbd235SStephan Gerhold 208abbd235SStephan Gerhold&bam_dmux_dma { 218abbd235SStephan Gerhold status = "okay"; 228abbd235SStephan Gerhold}; 238abbd235SStephan Gerhold 248abbd235SStephan Gerhold&lpass { 258abbd235SStephan Gerhold status = "reserved"; /* Controlled by QDSP6 */ 268abbd235SStephan Gerhold}; 278abbd235SStephan Gerhold 288abbd235SStephan Gerhold&lpass_codec { 298abbd235SStephan Gerhold status = "okay"; 308abbd235SStephan Gerhold}; 318abbd235SStephan Gerhold 328abbd235SStephan Gerhold&mba_mem { 338abbd235SStephan Gerhold status = "okay"; 348abbd235SStephan Gerhold}; 358abbd235SStephan Gerhold 368abbd235SStephan Gerhold&mpss { 378abbd235SStephan Gerhold status = "okay"; 388abbd235SStephan Gerhold}; 398abbd235SStephan Gerhold 408abbd235SStephan Gerhold&mpss_mem { 418abbd235SStephan Gerhold status = "okay"; 428abbd235SStephan Gerhold}; 438abbd235SStephan Gerhold 448abbd235SStephan Gerhold&pm8916_codec { 458abbd235SStephan Gerhold status = "okay"; 468abbd235SStephan Gerhold}; 478abbd235SStephan Gerhold 488abbd235SStephan Gerhold&q6afedai { 498abbd235SStephan Gerhold dai@16 { 508abbd235SStephan Gerhold reg = <PRIMARY_MI2S_RX>; 518abbd235SStephan Gerhold qcom,sd-lines = <0 1>; 528abbd235SStephan Gerhold }; 538abbd235SStephan Gerhold dai@20 { 548abbd235SStephan Gerhold reg = <TERTIARY_MI2S_TX>; 558abbd235SStephan Gerhold qcom,sd-lines = <0 1>; 568abbd235SStephan Gerhold }; 578abbd235SStephan Gerhold}; 588abbd235SStephan Gerhold 598abbd235SStephan Gerhold&q6asmdai { 608abbd235SStephan Gerhold dai@0 { 61*0c5b5976SLuca Weiss reg = <MSM_FRONTEND_DAI_MULTIMEDIA1>; 628abbd235SStephan Gerhold direction = <Q6ASM_DAI_RX>; 638abbd235SStephan Gerhold }; 648abbd235SStephan Gerhold dai@1 { 65*0c5b5976SLuca Weiss reg = <MSM_FRONTEND_DAI_MULTIMEDIA2>; 668abbd235SStephan Gerhold direction = <Q6ASM_DAI_TX>; 678abbd235SStephan Gerhold }; 688abbd235SStephan Gerhold dai@2 { 69*0c5b5976SLuca Weiss reg = <MSM_FRONTEND_DAI_MULTIMEDIA3>; 708abbd235SStephan Gerhold direction = <Q6ASM_DAI_RX>; 718abbd235SStephan Gerhold }; 728abbd235SStephan Gerhold dai@3 { 73*0c5b5976SLuca Weiss reg = <MSM_FRONTEND_DAI_MULTIMEDIA4>; 748abbd235SStephan Gerhold direction = <Q6ASM_DAI_RX>; 758abbd235SStephan Gerhold is-compress-dai; 768abbd235SStephan Gerhold }; 778abbd235SStephan Gerhold}; 788abbd235SStephan Gerhold 798abbd235SStephan Gerhold&sound { 808abbd235SStephan Gerhold compatible = "qcom,msm8916-qdsp6-sndcard"; 818abbd235SStephan Gerhold model = "msm8916"; 828abbd235SStephan Gerhold 838abbd235SStephan Gerhold pinctrl-0 = <&cdc_pdm_default>; 848abbd235SStephan Gerhold pinctrl-1 = <&cdc_pdm_sleep>; 858abbd235SStephan Gerhold pinctrl-names = "default", "sleep"; 868abbd235SStephan Gerhold 878abbd235SStephan Gerhold status = "okay"; 888abbd235SStephan Gerhold 898abbd235SStephan Gerhold frontend0-dai-link { 908abbd235SStephan Gerhold link-name = "MultiMedia1"; 918abbd235SStephan Gerhold 928abbd235SStephan Gerhold cpu { 938abbd235SStephan Gerhold sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>; 948abbd235SStephan Gerhold }; 958abbd235SStephan Gerhold }; 968abbd235SStephan Gerhold 978abbd235SStephan Gerhold frontend1-dai-link { 988abbd235SStephan Gerhold link-name = "MultiMedia2"; 998abbd235SStephan Gerhold 1008abbd235SStephan Gerhold cpu { 1018abbd235SStephan Gerhold sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>; 1028abbd235SStephan Gerhold }; 1038abbd235SStephan Gerhold }; 1048abbd235SStephan Gerhold 1058abbd235SStephan Gerhold frontend2-dai-link { 1068abbd235SStephan Gerhold link-name = "MultiMedia3"; 1078abbd235SStephan Gerhold 1088abbd235SStephan Gerhold cpu { 1098abbd235SStephan Gerhold sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>; 1108abbd235SStephan Gerhold }; 1118abbd235SStephan Gerhold }; 1128abbd235SStephan Gerhold 1138abbd235SStephan Gerhold frontend3-dai-link { 1148abbd235SStephan Gerhold link-name = "MultiMedia4"; 1158abbd235SStephan Gerhold 1168abbd235SStephan Gerhold cpu { 1178abbd235SStephan Gerhold sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA4>; 1188abbd235SStephan Gerhold }; 1198abbd235SStephan Gerhold }; 1208abbd235SStephan Gerhold 1218abbd235SStephan Gerhold sound_link_backend0: backend0-dai-link { 1228abbd235SStephan Gerhold link-name = "Primary MI2S"; 1238abbd235SStephan Gerhold 1248abbd235SStephan Gerhold cpu { 1258abbd235SStephan Gerhold sound-dai = <&q6afedai PRIMARY_MI2S_RX>; 1268abbd235SStephan Gerhold }; 1278abbd235SStephan Gerhold platform { 1288abbd235SStephan Gerhold sound-dai = <&q6routing>; 1298abbd235SStephan Gerhold }; 1308abbd235SStephan Gerhold codec { 1318abbd235SStephan Gerhold sound-dai = <&lpass_codec 0>, <&pm8916_codec 0>; 1328abbd235SStephan Gerhold }; 1338abbd235SStephan Gerhold }; 1348abbd235SStephan Gerhold 1358abbd235SStephan Gerhold sound_link_backend1: backend1-dai-link { 1368abbd235SStephan Gerhold link-name = "Tertiary MI2S"; 1378abbd235SStephan Gerhold 1388abbd235SStephan Gerhold cpu { 1398abbd235SStephan Gerhold sound-dai = <&q6afedai TERTIARY_MI2S_TX>; 1408abbd235SStephan Gerhold }; 1418abbd235SStephan Gerhold platform { 1428abbd235SStephan Gerhold sound-dai = <&q6routing>; 1438abbd235SStephan Gerhold }; 1448abbd235SStephan Gerhold codec { 1458abbd235SStephan Gerhold sound-dai = <&lpass_codec 1>, <&pm8916_codec 1>; 1468abbd235SStephan Gerhold }; 1478abbd235SStephan Gerhold }; 1488abbd235SStephan Gerhold}; 149