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