1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
10
11#include "qcs8300.dtsi"
12/ {
13	model = "Qualcomm Technologies, Inc. QCS8300 Ride";
14	compatible = "qcom,qcs8300-ride", "qcom,qcs8300";
15	chassis-type = "embedded";
16
17	aliases {
18		serial0 = &uart7;
19	};
20
21	chosen {
22		stdout-path = "serial0:115200n8";
23	};
24};
25
26&apps_rsc {
27	regulators-0 {
28		compatible = "qcom,pmm8654au-rpmh-regulators";
29		qcom,pmic-id = "a";
30
31		vreg_s4a: smps4 {
32			regulator-name = "vreg_s4a";
33			regulator-min-microvolt = <1800000>;
34			regulator-max-microvolt = <1800000>;
35			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
36		};
37
38		vreg_s9a: smps9 {
39			regulator-name = "vreg_s9a";
40			regulator-min-microvolt = <1352000>;
41			regulator-max-microvolt = <1352000>;
42			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
43		};
44
45		vreg_l3a: ldo3 {
46			regulator-name = "vreg_l3a";
47			regulator-min-microvolt = <1200000>;
48			regulator-max-microvolt = <1200000>;
49			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
50			regulator-allow-set-load;
51			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
52						   RPMH_REGULATOR_MODE_HPM>;
53		};
54
55		vreg_l4a: ldo4 {
56			regulator-name = "vreg_l4a";
57			regulator-min-microvolt = <880000>;
58			regulator-max-microvolt = <912000>;
59			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
60			regulator-allow-set-load;
61			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
62						   RPMH_REGULATOR_MODE_HPM>;
63		};
64
65		vreg_l5a: ldo5 {
66			regulator-name = "vreg_l5a";
67			regulator-min-microvolt = <1200000>;
68			regulator-max-microvolt = <1200000>;
69			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
70			regulator-allow-set-load;
71			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
72						   RPMH_REGULATOR_MODE_HPM>;
73		};
74
75		vreg_l6a: ldo6 {
76			regulator-name = "vreg_l6a";
77			regulator-min-microvolt = <880000>;
78			regulator-max-microvolt = <912000>;
79			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
80			regulator-allow-set-load;
81			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
82						   RPMH_REGULATOR_MODE_HPM>;
83		};
84
85		vreg_l7a: ldo7 {
86			regulator-name = "vreg_l7a";
87			regulator-min-microvolt = <880000>;
88			regulator-max-microvolt = <912000>;
89			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
90			regulator-allow-set-load;
91			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
92						   RPMH_REGULATOR_MODE_HPM>;
93		};
94
95		vreg_l8a: ldo8 {
96			regulator-name = "vreg_l8a";
97			regulator-min-microvolt = <2504000>;
98			regulator-max-microvolt = <2960000>;
99			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
100			regulator-allow-set-load;
101			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
102						   RPMH_REGULATOR_MODE_HPM>;
103		};
104
105		vreg_l9a: ldo9 {
106			regulator-name = "vreg_l9a";
107			regulator-min-microvolt = <2970000>;
108			regulator-max-microvolt = <3072000>;
109			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
110			regulator-allow-set-load;
111			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
112						   RPMH_REGULATOR_MODE_HPM>;
113		};
114	};
115
116	regulators-1 {
117		compatible = "qcom,pmm8654au-rpmh-regulators";
118		qcom,pmic-id = "c";
119
120		vreg_s5c: smps5 {
121			regulator-name = "vreg_s5c";
122			regulator-min-microvolt = <1104000>;
123			regulator-max-microvolt = <1104000>;
124			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
125		};
126
127		vreg_l1c: ldo1 {
128			regulator-name = "vreg_l1c";
129			regulator-min-microvolt = <300000>;
130			regulator-max-microvolt = <500000>;
131			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
132			regulator-allow-set-load;
133			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
134						   RPMH_REGULATOR_MODE_HPM>;
135		};
136
137		vreg_l2c: ldo2 {
138			regulator-name = "vreg_l2c";
139			regulator-min-microvolt = <900000>;
140			regulator-max-microvolt = <904000>;
141			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
142			regulator-allow-set-load;
143			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
144						   RPMH_REGULATOR_MODE_HPM>;
145		};
146
147		vreg_l4c: ldo4 {
148			regulator-name = "vreg_l4c";
149			regulator-min-microvolt = <1200000>;
150			regulator-max-microvolt = <1200000>;
151			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
152			regulator-allow-set-load;
153			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
154						   RPMH_REGULATOR_MODE_HPM>;
155		};
156
157		vreg_l6c: ldo6 {
158			regulator-name = "vreg_l6c";
159			regulator-min-microvolt = <1800000>;
160			regulator-max-microvolt = <1800000>;
161			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
162			regulator-allow-set-load;
163			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
164						   RPMH_REGULATOR_MODE_HPM>;
165		};
166
167		vreg_l7c: ldo7 {
168			regulator-name = "vreg_l7c";
169			regulator-min-microvolt = <1800000>;
170			regulator-max-microvolt = <1800000>;
171			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
172			regulator-allow-set-load;
173			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
174						   RPMH_REGULATOR_MODE_HPM>;
175		};
176
177		vreg_l8c: ldo8 {
178			regulator-name = "vreg_l8c";
179			regulator-min-microvolt = <1800000>;
180			regulator-max-microvolt = <1800000>;
181			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
182			regulator-allow-set-load;
183			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
184						   RPMH_REGULATOR_MODE_HPM>;
185		};
186
187		vreg_l9c: ldo9 {
188			regulator-name = "vreg_l9c";
189			regulator-min-microvolt = <1800000>;
190			regulator-max-microvolt = <1800000>;
191			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
192			regulator-allow-set-load;
193			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
194						   RPMH_REGULATOR_MODE_HPM>;
195		};
196	};
197};
198
199&ethernet0 {
200	phy-mode = "2500base-x";
201	phy-handle = <&phy0>;
202
203	pinctrl-0 = <&ethernet0_default>;
204	pinctrl-names = "default";
205
206	snps,mtl-rx-config = <&mtl_rx_setup>;
207	snps,mtl-tx-config = <&mtl_tx_setup>;
208	snps,ps-speed = <1000>;
209
210	status = "okay";
211
212	mdio {
213		compatible = "snps,dwmac-mdio";
214		#address-cells = <1>;
215		#size-cells = <0>;
216
217		phy0: phy@8 {
218			compatible = "ethernet-phy-id31c3.1c33";
219			reg = <0x8>;
220			device_type = "ethernet-phy";
221			interrupts-extended = <&tlmm 4 IRQ_TYPE_EDGE_FALLING>;
222			reset-gpios = <&tlmm 31 GPIO_ACTIVE_LOW>;
223			reset-assert-us = <11000>;
224			reset-deassert-us = <70000>;
225		};
226	};
227
228	mtl_rx_setup: rx-queues-config {
229		snps,rx-queues-to-use = <4>;
230		snps,rx-sched-sp;
231
232		queue0 {
233			snps,dcb-algorithm;
234			snps,map-to-dma-channel = <0x0>;
235			snps,route-up;
236			snps,priority = <0x1>;
237		};
238
239		queue1 {
240			snps,dcb-algorithm;
241			snps,map-to-dma-channel = <0x1>;
242			snps,route-ptp;
243		};
244
245		queue2 {
246			snps,avb-algorithm;
247			snps,map-to-dma-channel = <0x2>;
248			snps,route-avcp;
249		};
250
251		queue3 {
252			snps,avb-algorithm;
253			snps,map-to-dma-channel = <0x3>;
254			snps,priority = <0xc>;
255		};
256	};
257
258	mtl_tx_setup: tx-queues-config {
259		snps,tx-queues-to-use = <4>;
260		snps,tx-sched-sp;
261
262		queue0 {
263			snps,dcb-algorithm;
264		};
265
266		queue1 {
267			snps,dcb-algorithm;
268		};
269
270		queue2 {
271			snps,avb-algorithm;
272			snps,send_slope = <0x1000>;
273			snps,idle_slope = <0x1000>;
274			snps,high_credit = <0x3e800>;
275			snps,low_credit = <0xffc18000>;
276		};
277
278		queue3 {
279			snps,avb-algorithm;
280			snps,send_slope = <0x1000>;
281			snps,idle_slope = <0x1000>;
282			snps,high_credit = <0x3e800>;
283			snps,low_credit = <0xffc18000>;
284		};
285	};
286};
287
288&qupv3_id_0 {
289	status = "okay";
290};
291
292&remoteproc_adsp {
293	firmware-name = "qcom/qcs8300/adsp.mbn";
294	status = "okay";
295};
296
297&remoteproc_cdsp {
298	firmware-name = "qcom/qcs8300/cdsp0.mbn";
299	status = "okay";
300};
301
302&remoteproc_gpdsp {
303	firmware-name = "qcom/qcs8300/gpdsp0.mbn";
304	status = "okay";
305};
306
307&serdes0 {
308	phy-supply = <&vreg_l5a>;
309	status = "okay";
310};
311
312&tlmm {
313	ethernet0_default: ethernet0-default-state {
314		ethernet0_mdc: ethernet0-mdc-pins {
315			pins = "gpio5";
316			function = "emac0_mdc";
317			drive-strength = <16>;
318			bias-pull-up;
319		};
320
321		ethernet0_mdio: ethernet0-mdio-pins {
322			pins = "gpio6";
323			function = "emac0_mdio";
324			drive-strength = <16>;
325			bias-pull-up;
326		};
327	};
328};
329
330&uart7 {
331	status = "okay";
332};
333
334&ufs_mem_hc {
335	reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
336	vcc-supply = <&vreg_l8a>;
337	vcc-max-microamp = <1100000>;
338	vccq-supply = <&vreg_l4c>;
339	vccq-max-microamp = <1200000>;
340	status = "okay";
341};
342
343&ufs_mem_phy {
344	vdda-phy-supply = <&vreg_l4a>;
345	vdda-pll-supply = <&vreg_l5a>;
346	status = "okay";
347};
348
349&usb_1_hsphy {
350	vdda-pll-supply = <&vreg_l7a>;
351	vdda18-supply = <&vreg_l7c>;
352	vdda33-supply = <&vreg_l9a>;
353
354	status = "okay";
355};
356
357&usb_qmpphy {
358	vdda-phy-supply = <&vreg_l7a>;
359	vdda-pll-supply = <&vreg_l5a>;
360
361	status = "okay";
362};
363
364&usb_1 {
365	status = "okay";
366};
367
368&usb_1_dwc3 {
369	dr_mode = "peripheral";
370};
371