1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
4 */
5/dts-v1/;
6
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
9#include <dt-bindings/gpio/gpio.h>
10#include "qcs615.dtsi"
11#include "pm8150.dtsi"
12/ {
13	model = "Qualcomm Technologies, Inc. QCS615 Ride";
14	compatible = "qcom,qcs615-ride", "qcom,qcs615";
15	chassis-type = "embedded";
16
17	aliases {
18		mmc0 = &sdhc_1;
19		mmc1 = &sdhc_2;
20		serial0 = &uart0;
21	};
22
23	chosen {
24		stdout-path = "serial0:115200n8";
25	};
26
27	clocks {
28		sleep_clk: sleep-clk {
29			compatible = "fixed-clock";
30			clock-frequency = <32000>;
31			#clock-cells = <0>;
32		};
33
34		xo_board_clk: xo-board-clk {
35			compatible = "fixed-clock";
36			clock-frequency = <38400000>;
37			#clock-cells = <0>;
38		};
39	};
40
41	regulator-usb2-vbus {
42		compatible = "regulator-fixed";
43		regulator-name = "USB2_VBUS";
44		gpio = <&pm8150_gpios 10 GPIO_ACTIVE_HIGH>;
45		pinctrl-0 = <&usb2_en>;
46		pinctrl-names = "default";
47		enable-active-high;
48		regulator-always-on;
49	};
50};
51
52&apps_rsc {
53	regulators-0 {
54		compatible = "qcom,pm8150-rpmh-regulators";
55		qcom,pmic-id = "a";
56
57		vreg_s3a: smps3 {
58			regulator-name = "vreg_s3a";
59			regulator-min-microvolt = <600000>;
60			regulator-max-microvolt = <650000>;
61			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
62		};
63
64		vreg_s4a: smps4 {
65			regulator-name = "vreg_s4a";
66			regulator-min-microvolt = <1800000>;
67			regulator-max-microvolt = <1829000>;
68			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
69		};
70
71		vreg_s5a: smps5 {
72			regulator-name = "vreg_s5a";
73			regulator-min-microvolt = <1896000>;
74			regulator-max-microvolt = <2040000>;
75			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
76		};
77
78		vreg_s6a: smps6 {
79			regulator-name = "vreg_s6a";
80			regulator-min-microvolt = <1304000>;
81			regulator-max-microvolt = <1404000>;
82			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
83		};
84
85		vreg_l1a: ldo1 {
86			regulator-name = "vreg_l1a";
87			regulator-min-microvolt = <488000>;
88			regulator-max-microvolt = <852000>;
89			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
90			regulator-allow-set-load;
91			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
92						   RPMH_REGULATOR_MODE_HPM>;
93		};
94
95		vreg_l2a: ldo2 {
96			regulator-name = "vreg_l2a";
97			regulator-min-microvolt = <1650000>;
98			regulator-max-microvolt = <3100000>;
99			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
100			regulator-allow-set-load;
101			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
102						   RPMH_REGULATOR_MODE_HPM>;
103		};
104
105		vreg_l3a: ldo3 {
106			regulator-name = "vreg_l3a";
107			regulator-min-microvolt = <1000000>;
108			regulator-max-microvolt = <1248000>;
109			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
110			regulator-allow-set-load;
111			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
112						   RPMH_REGULATOR_MODE_HPM>;
113		};
114
115		vreg_l5a: ldo5 {
116			regulator-name = "vreg_l5a";
117			regulator-min-microvolt = <875000>;
118			regulator-max-microvolt = <975000>;
119			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
120			regulator-allow-set-load;
121			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
122						   RPMH_REGULATOR_MODE_HPM>;
123		};
124
125		vreg_l7a: ldo7 {
126			regulator-name = "vreg_l7a";
127			regulator-min-microvolt = <1800000>;
128			regulator-max-microvolt = <1900000>;
129			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
130			regulator-allow-set-load;
131			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
132						   RPMH_REGULATOR_MODE_HPM>;
133		};
134
135		vreg_l8a: ldo8 {
136			regulator-name = "vreg_l8a";
137			regulator-min-microvolt = <1150000>;
138			regulator-max-microvolt = <1350000>;
139			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
140			regulator-allow-set-load;
141			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
142						   RPMH_REGULATOR_MODE_HPM>;
143		};
144
145		vreg_l10a: ldo10 {
146			regulator-name = "vreg_l10a";
147			regulator-min-microvolt = <2950000>;
148			regulator-max-microvolt = <3312000>;
149			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
150			regulator-allow-set-load;
151			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
152						   RPMH_REGULATOR_MODE_HPM>;
153		};
154
155		vreg_l11a: ldo11 {
156			regulator-name = "vreg_l11a";
157			regulator-min-microvolt = <1232000>;
158			regulator-max-microvolt = <1260000>;
159			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
160			regulator-allow-set-load;
161			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
162						   RPMH_REGULATOR_MODE_HPM>;
163		};
164
165		vreg_l12a: ldo12 {
166			regulator-name = "vreg_l12a";
167			regulator-min-microvolt = <1800000>;
168			regulator-max-microvolt = <1890000>;
169			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
170			regulator-allow-set-load;
171			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
172						   RPMH_REGULATOR_MODE_HPM>;
173		};
174
175		vreg_l13a: ldo13 {
176			regulator-name = "vreg_l13a";
177			regulator-min-microvolt = <3000000>;
178			regulator-max-microvolt = <3230000>;
179			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
180			regulator-allow-set-load;
181			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
182						   RPMH_REGULATOR_MODE_HPM>;
183		};
184
185		vreg_l15a: ldo15 {
186			regulator-name = "vreg_l15a";
187			regulator-min-microvolt = <1800000>;
188			regulator-max-microvolt = <1904000>;
189			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
190			regulator-allow-set-load;
191			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
192						   RPMH_REGULATOR_MODE_HPM>;
193		};
194
195		vreg_l16a: ldo16 {
196			regulator-name = "vreg_l16a";
197			regulator-min-microvolt = <3000000>;
198			regulator-max-microvolt = <3312000>;
199			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
200			regulator-allow-set-load;
201			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
202						   RPMH_REGULATOR_MODE_HPM>;
203		};
204
205		vreg_l17a: ldo17 {
206			regulator-name = "vreg_l17a";
207			regulator-min-microvolt = <2950000>;
208			regulator-max-microvolt = <3312000>;
209			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
210		};
211	};
212};
213
214&gcc {
215	clocks = <&rpmhcc RPMH_CXO_CLK>,
216		 <&rpmhcc RPMH_CXO_CLK_A>,
217		 <&sleep_clk>;
218};
219
220&pm8150_gpios {
221	usb2_en: usb2-en-state {
222		pins = "gpio10";
223		function = "normal";
224		output-enable;
225		power-source = <0>;
226	};
227};
228
229&pon_pwrkey {
230	status = "okay";
231};
232
233&pon_resin {
234	linux,code = <KEY_VOLUMEDOWN>;
235
236	status = "okay";
237};
238
239&qupv3_id_0 {
240	status = "okay";
241};
242
243&rpmhcc {
244	clocks = <&xo_board_clk>;
245};
246
247&sdhc_1 {
248	pinctrl-0 = <&sdc1_state_on>;
249	pinctrl-1 = <&sdc1_state_off>;
250	pinctrl-names = "default", "sleep";
251
252	bus-width = <8>;
253	mmc-ddr-1_8v;
254	mmc-hs200-1_8v;
255	mmc-hs400-1_8v;
256	mmc-hs400-enhanced-strobe;
257	vmmc-supply = <&vreg_l17a>;
258	vqmmc-supply = <&vreg_s4a>;
259
260	non-removable;
261	no-sd;
262	no-sdio;
263
264	status = "okay";
265};
266
267&sdhc_2 {
268	pinctrl-0 = <&sdc2_state_on>;
269	pinctrl-1 = <&sdc2_state_off>;
270	pinctrl-names = "default", "sleep";
271
272	bus-width = <4>;
273	cd-gpios = <&tlmm 99 GPIO_ACTIVE_LOW>;
274
275	vmmc-supply = <&vreg_l10a>;
276	vqmmc-supply = <&vreg_s4a>;
277
278	status = "okay";
279};
280
281&uart0 {
282	status = "okay";
283};
284
285&usb_1_hsphy {
286	vdd-supply = <&vreg_l5a>;
287	vdda-pll-supply = <&vreg_l12a>;
288	vdda-phy-dpdm-supply = <&vreg_l13a>;
289
290	status = "okay";
291};
292
293&usb_qmpphy {
294	vdda-phy-supply = <&vreg_l5a>;
295	vdda-pll-supply = <&vreg_l12a>;
296
297	status = "okay";
298};
299
300&usb_1 {
301	status = "okay";
302};
303
304&usb_1_dwc3 {
305	dr_mode = "peripheral";
306};
307
308&usb_hsphy_2 {
309	vdd-supply = <&vreg_l5a>;
310	vdda-pll-supply = <&vreg_l12a>;
311	vdda-phy-dpdm-supply = <&vreg_l13a>;
312
313	status = "okay";
314};
315
316&usb_2 {
317	status = "okay";
318};
319
320&usb_2_dwc3 {
321	dr_mode = "host";
322};
323
324&ufs_mem_hc {
325	reset-gpios = <&tlmm 123 GPIO_ACTIVE_LOW>;
326	vcc-supply = <&vreg_l17a>;
327	vcc-max-microamp = <600000>;
328	vccq2-supply = <&vreg_s4a>;
329	vccq2-max-microamp = <600000>;
330
331	status = "okay";
332};
333
334&ufs_mem_phy {
335	vdda-phy-supply = <&vreg_l5a>;
336	vdda-pll-supply = <&vreg_l12a>;
337
338	status = "okay";
339};
340
341&watchdog {
342	clocks = <&sleep_clk>;
343};
344