blob: 0399616226330b17d0076460c116f4ae27b4b00f [file] [log] [blame]
Tom Rini93743d22024-04-01 09:08:13 -04001// 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};