xref: /linux/arch/arm64/boot/dts/qcom/qcs8550-aim300-aiot.dts (revision e04e2b760ddbe3d7b283a05898c3a029085cd8cd)
1// 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};
316