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