xref: /freebsd-src/sys/contrib/device-tree/src/arm64/qcom/msm8916-modem-qdsp6.dtsi (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
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