blob: 2e2e46f214c77b78c28984e924ac42dcde51196f [file] [log] [blame]
Tom Rini6b642ac2024-10-01 12:20:28 -06001// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved.
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/leds/common.h>
9#include "qcs8550-aim300.dtsi"
10#include "pm8010.dtsi"
11#include "pmr735d_a.dtsi"
12#include "pmr735d_b.dtsi"
13
14/ {
15 model = "Qualcomm Technologies, Inc. QCS8550 AIM300 AIOT";
16 compatible = "qcom,qcs8550-aim300-aiot", "qcom,qcs8550-aim300", "qcom,qcs8550",
17 "qcom,sm8550";
18
19 aliases {
20 serial0 = &uart7;
21 };
22
23 chosen {
24 stdout-path = "serial0:115200n8";
25 };
26
27 gpio-keys {
28 compatible = "gpio-keys";
29
30 pinctrl-0 = <&volume_up_n>;
31 pinctrl-names = "default";
32
33 key-volume-up {
34 label = "Volume Up";
35 debounce-interval = <15>;
36 gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
37 linux,code = <KEY_VOLUMEUP>;
38 linux,can-disable;
39 wakeup-source;
40 };
41 };
42
43 pmic-glink {
44 compatible = "qcom,sm8550-pmic-glink", "qcom,pmic-glink";
45 #address-cells = <1>;
46 #size-cells = <0>;
47 orientation-gpios = <&tlmm 11 GPIO_ACTIVE_HIGH>;
48
49 connector@0 {
50 compatible = "usb-c-connector";
51 reg = <0>;
52 power-role = "dual";
53 data-role = "dual";
54
55 ports {
56 #address-cells = <1>;
57 #size-cells = <0>;
58
59 port@0 {
60 reg = <0>;
61
62 pmic_glink_hs_in: endpoint {
63 remote-endpoint = <&usb_1_dwc3_hs>;
64 };
65 };
66
67 port@1 {
68 reg = <1>;
69
70 pmic_glink_ss_in: endpoint {
71 remote-endpoint = <&redriver_ss_out>;
72 };
73 };
74
75 port@2 {
76 reg = <2>;
77
78 pmic_glink_sbu: endpoint {
79 remote-endpoint = <&fsa4480_sbu_mux>;
80 };
81 };
82 };
83 };
84 };
85
86 vph_pwr: regulator-vph-pwr {
87 compatible = "regulator-fixed";
88 regulator-name = "vph_pwr";
89 regulator-min-microvolt = <3700000>;
90 regulator-max-microvolt = <3700000>;
91
92 regulator-always-on;
93 regulator-boot-on;
94 };
95};
96
97&apps_rsc {
98 regulators-0 {
99 vdd-bob1-supply = <&vph_pwr>;
100 vdd-bob2-supply = <&vph_pwr>;
101 };
102
103 regulators-3 {
104 vdd-s4-supply = <&vph_pwr>;
105 vdd-s5-supply = <&vph_pwr>;
106 };
107
108 regulators-4 {
109 vdd-s4-supply = <&vph_pwr>;
110 };
111
112 regulators-5 {
113 vdd-s1-supply = <&vph_pwr>;
114 vdd-s2-supply = <&vph_pwr>;
115 vdd-s3-supply = <&vph_pwr>;
116 vdd-s4-supply = <&vph_pwr>;
117 vdd-s5-supply = <&vph_pwr>;
118 vdd-s6-supply = <&vph_pwr>;
119 };
120};
121
122&i2c_hub_2 {
123 status = "okay";
124
125 typec-mux@42 {
126 compatible = "fcs,fsa4480";
127 reg = <0x42>;
128
129 vcc-supply = <&vreg_bob1>;
130
131 mode-switch;
132 orientation-switch;
133
134 port {
135 fsa4480_sbu_mux: endpoint {
136 remote-endpoint = <&pmic_glink_sbu>;
137 };
138 };
139 };
140
141 typec-retimer@1c {
142 compatible = "onnn,nb7vpq904m";
143 reg = <0x1c>;
144
145 vcc-supply = <&vreg_l15b_1p8>;
146
147 orientation-switch;
148 retimer-switch;
149
150 ports {
151 #address-cells = <1>;
152 #size-cells = <0>;
153
154 port@0 {
155 reg = <0>;
156
157 redriver_ss_out: endpoint {
158 remote-endpoint = <&pmic_glink_ss_in>;
159 };
160 };
161
162 port@1 {
163 reg = <1>;
164
165 redriver_ss_in: endpoint {
166 data-lanes = <3 2 1 0>;
167 remote-endpoint = <&usb_dp_qmpphy_out>;
168 };
169 };
170 };
171 };
172};
173
174&mdss_dsi0 {
175 status = "okay";
176
177 panel@0 {
178 compatible = "visionox,vtdr6130";
179 reg = <0>;
180
181 pinctrl-0 = <&dsi_active>, <&te_default>;
182 pinctrl-1 = <&dsi_suspend>, <&te_default>;
183 pinctrl-names = "default", "sleep";
184
185 reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
186
187 vci-supply = <&vreg_l13b_3p0>;
188 vdd-supply = <&vreg_l11b_1p2>;
189 vddio-supply = <&vreg_l12b_1p8>;
190
191 port {
192 panel0_in: endpoint {
193 remote-endpoint = <&mdss_dsi0_out>;
194 };
195 };
196 };
197};
198
199&mdss_dsi0_out {
200 remote-endpoint = <&panel0_in>;
201 data-lanes = <0 1 2 3>;
202};
203
204&mdss_dsi0_phy {
205 status = "okay";
206};
207
208&pcie0 {
209 status = "okay";
210};
211
212&pcie0_phy {
213 status = "okay";
214};
215
216&pcie1 {
217 status = "okay";
218};
219
220&pcie1_phy {
221 status = "okay";
222};
223
224&pm8550_gpios {
225 volume_up_n: volume-up-n-state {
226 pins = "gpio6";
227 function = "normal";
228 power-source = <1>;
229 bias-pull-up;
230 input-enable;
231 };
232};
233
234&pon_pwrkey {
235 status = "okay";
236};
237
238&pon_resin {
239 linux,code = <KEY_VOLUMEDOWN>;
240
241 status = "okay";
242};
243
244&qupv3_id_0 {
245 status = "okay";
246};
247
248&remoteproc_adsp {
249 firmware-name = "qcom/qcs8550/adsp.mbn",
250 "qcom/qcs8550/adsp_dtb.mbn";
251 status = "okay";
252};
253
254&remoteproc_cdsp {
255 firmware-name = "qcom/qcs8550/cdsp.mbn",
256 "qcom/qcs8550/cdsp_dtb.mbn";
257 status = "okay";
258};
259
260&swr1 {
261 status = "okay";
262};
263
264&swr2 {
265 status = "okay";
266};
267
268&tlmm {
269 gpio-reserved-ranges = <32 8>;
270
271 dsi_active: dsi-active-state {
272 pins = "gpio133";
273 function = "gpio";
274 drive-strength = <8>;
275 bias-disable;
276 };
277
278 dsi_suspend: dsi-suspend-state {
279 pins = "gpio133";
280 function = "gpio";
281 drive-strength = <2>;
282 bias-pull-down;
283 };
284
285 te_default: te-default-state {
286 pins = "gpio86";
287 function = "mdp_vsync";
288 drive-strength = <2>;
289 bias-pull-down;
290 };
291};
292
293&uart7 {
294 status = "okay";
295};
296
297&usb_1 {
298 status = "okay";
299};
300
301&usb_1_dwc3_hs {
302 remote-endpoint = <&pmic_glink_hs_in>;
303};
304
305&usb_1_hsphy {
306 status = "okay";
307};
308
309&usb_dp_qmpphy {
310 status = "okay";
311};
312
313&usb_dp_qmpphy_out {
314 remote-endpoint = <&redriver_ss_in>;
315};