• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 Collabora Ltd.
4 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd.
5 *
6 * Schematics available at https://dl.vamrs.com/products/ficus/docs/hw
7 */
8
9/dts-v1/;
10#include "rk3399.dtsi"
11#include "rk3399-opp.dtsi"
12
13/ {
14	model = "96boards RK3399 Ficus";
15	compatible = "vamrs,ficus", "rockchip,rk3399";
16
17	chosen {
18		stdout-path = "serial2:1500000n8";
19	};
20
21	clkin_gmac: external-gmac-clock {
22		compatible = "fixed-clock";
23		clock-frequency = <125000000>;
24		clock-output-names = "clkin_gmac";
25		#clock-cells = <0>;
26	};
27
28	vcc1v8_s0: vcc1v8-s0 {
29		compatible = "regulator-fixed";
30		regulator-name = "vcc1v8_s0";
31		regulator-min-microvolt = <1800000>;
32		regulator-max-microvolt = <1800000>;
33		regulator-always-on;
34	};
35
36	vcc_sys: vcc-sys {
37		compatible = "regulator-fixed";
38		regulator-name = "vcc_sys";
39		regulator-min-microvolt = <5000000>;
40		regulator-max-microvolt = <5000000>;
41		regulator-always-on;
42	};
43
44	vcc3v3_sys: vcc3v3-sys {
45		compatible = "regulator-fixed";
46		regulator-name = "vcc3v3_sys";
47		regulator-min-microvolt = <3300000>;
48		regulator-max-microvolt = <3300000>;
49		regulator-always-on;
50		vin-supply = <&vcc_sys>;
51	};
52
53	vcc3v3_pcie: vcc3v3-pcie-regulator {
54		compatible = "regulator-fixed";
55		enable-active-high;
56		gpio = <&gpio1 24 GPIO_ACTIVE_HIGH>;
57		pinctrl-names = "default";
58		pinctrl-0 = <&pcie_drv>;
59		regulator-boot-on;
60		regulator-name = "vcc3v3_pcie";
61		regulator-min-microvolt = <3300000>;
62		regulator-max-microvolt = <3300000>;
63		vin-supply = <&vcc3v3_sys>;
64	};
65
66	vcc5v0_host: vcc5v0-host-regulator {
67		compatible = "regulator-fixed";
68		enable-active-high;
69		gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
70		pinctrl-names = "default";
71		pinctrl-0 = <&host_vbus_drv>;
72		regulator-name = "vcc5v0_host";
73		regulator-min-microvolt = <5000000>;
74		regulator-max-microvolt = <5000000>;
75		regulator-always-on;
76		vin-supply = <&vcc_sys>;
77	};
78};
79
80&cpu_l0 {
81	cpu-supply = <&vdd_cpu_l>;
82};
83
84&cpu_l1 {
85	cpu-supply = <&vdd_cpu_l>;
86};
87
88&cpu_l2 {
89	cpu-supply = <&vdd_cpu_l>;
90};
91
92&cpu_l3 {
93	cpu-supply = <&vdd_cpu_l>;
94};
95
96&cpu_b0 {
97	cpu-supply = <&vdd_cpu_b>;
98};
99
100&cpu_b1 {
101	cpu-supply = <&vdd_cpu_b>;
102};
103
104&emmc_phy {
105	status = "okay";
106};
107
108&gmac {
109	assigned-clocks = <&cru SCLK_RMII_SRC>;
110	assigned-clock-parents = <&clkin_gmac>;
111	clock_in_out = "input";
112	phy-supply = <&vcc3v3_sys>;
113	phy-mode = "rgmii";
114	pinctrl-names = "default";
115	pinctrl-0 = <&rgmii_pins>;
116	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
117	snps,reset-active-low;
118	snps,reset-delays-us = <0 10000 50000>;
119	tx_delay = <0x28>;
120	rx_delay = <0x11>;
121	status = "okay";
122};
123
124&hdmi {
125	ddc-i2c-bus = <&i2c3>;
126	pinctrl-names = "default";
127	pinctrl-0 = <&hdmi_cec>;
128	status = "okay";
129};
130
131&i2c0 {
132	clock-frequency = <400000>;
133	i2c-scl-rising-time-ns = <168>;
134	i2c-scl-falling-time-ns = <4>;
135	status = "okay";
136
137	vdd_cpu_b: regulator@40 {
138		compatible = "silergy,syr827";
139		reg = <0x40>;
140		fcs,suspend-voltage-selector = <1>;
141		regulator-name = "vdd_cpu_b";
142		regulator-min-microvolt = <712500>;
143		regulator-max-microvolt = <1500000>;
144		regulator-ramp-delay = <1000>;
145		regulator-always-on;
146		regulator-boot-on;
147		vin-supply = <&vcc_sys>;
148		status = "okay";
149
150		regulator-state-mem {
151			regulator-off-in-suspend;
152		};
153	};
154
155	vdd_gpu: regulator@41 {
156		compatible = "silergy,syr828";
157		reg = <0x41>;
158		fcs,suspend-voltage-selector = <1>;
159		regulator-name = "vdd_gpu";
160		regulator-min-microvolt = <712500>;
161		regulator-max-microvolt = <1500000>;
162		regulator-ramp-delay = <1000>;
163		regulator-always-on;
164		regulator-boot-on;
165		vin-supply = <&vcc_sys>;
166		regulator-state-mem {
167			regulator-off-in-suspend;
168		};
169	};
170
171	rk808: pmic@1b {
172		compatible = "rockchip,rk808";
173		reg = <0x1b>;
174		interrupt-parent = <&gpio1>;
175		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
176		pinctrl-names = "default";
177		pinctrl-0 = <&pmic_int_l>;
178		rockchip,system-power-controller;
179		wakeup-source;
180		#clock-cells = <1>;
181		clock-output-names = "xin32k", "rk808-clkout2";
182
183		vcc1-supply = <&vcc_sys>;
184		vcc2-supply = <&vcc_sys>;
185		vcc3-supply = <&vcc_sys>;
186		vcc4-supply = <&vcc_sys>;
187		vcc6-supply = <&vcc_sys>;
188		vcc7-supply = <&vcc_sys>;
189		vcc8-supply = <&vcc3v3_sys>;
190		vcc9-supply = <&vcc_sys>;
191		vcc10-supply = <&vcc_sys>;
192		vcc11-supply = <&vcc_sys>;
193		vcc12-supply = <&vcc3v3_sys>;
194		vddio-supply = <&vcc_1v8>;
195
196		regulators {
197			vdd_center: DCDC_REG1 {
198				regulator-name = "vdd_center";
199				regulator-min-microvolt = <750000>;
200				regulator-max-microvolt = <1350000>;
201				regulator-always-on;
202				regulator-boot-on;
203				regulator-state-mem {
204					regulator-off-in-suspend;
205				};
206			};
207
208			vdd_cpu_l: DCDC_REG2 {
209				regulator-name = "vdd_cpu_l";
210				regulator-min-microvolt = <750000>;
211				regulator-max-microvolt = <1350000>;
212				regulator-always-on;
213				regulator-boot-on;
214				regulator-state-mem {
215					regulator-off-in-suspend;
216				};
217			};
218
219			vcc_ddr: DCDC_REG3 {
220				regulator-name = "vcc_ddr";
221				regulator-always-on;
222				regulator-boot-on;
223				regulator-state-mem {
224					regulator-on-in-suspend;
225				};
226			};
227
228			vcc_1v8: DCDC_REG4 {
229				regulator-name = "vcc_1v8";
230				regulator-min-microvolt = <1800000>;
231				regulator-max-microvolt = <1800000>;
232				regulator-always-on;
233				regulator-boot-on;
234				regulator-state-mem {
235					regulator-on-in-suspend;
236					regulator-suspend-microvolt = <1800000>;
237				};
238			};
239
240			vcc1v8_dvp: LDO_REG1 {
241				regulator-name = "vcc1v8_dvp";
242				regulator-min-microvolt = <1800000>;
243				regulator-max-microvolt = <1800000>;
244				regulator-always-on;
245				regulator-boot-on;
246				regulator-state-mem {
247					regulator-on-in-suspend;
248					regulator-suspend-microvolt = <1800000>;
249				};
250			};
251
252			vcca1v8_hdmi: LDO_REG2 {
253				regulator-name = "vcca1v8_hdmi";
254				regulator-min-microvolt = <1800000>;
255				regulator-max-microvolt = <1800000>;
256				regulator-always-on;
257				regulator-boot-on;
258				regulator-state-mem {
259					regulator-on-in-suspend;
260					regulator-suspend-microvolt = <1800000>;
261				};
262			};
263
264			vcca_1v8: LDO_REG3 {
265				regulator-name = "vcca_1v8";
266				regulator-min-microvolt = <1800000>;
267				regulator-max-microvolt = <1800000>;
268				regulator-always-on;
269				regulator-boot-on;
270				regulator-state-mem {
271					regulator-on-in-suspend;
272					regulator-suspend-microvolt = <1800000>;
273				};
274			};
275
276			vcc_sd: LDO_REG4 {
277				regulator-name = "vcc_sd";
278				regulator-min-microvolt = <1800000>;
279				regulator-max-microvolt = <3300000>;
280				regulator-always-on;
281				regulator-boot-on;
282				regulator-state-mem {
283					regulator-on-in-suspend;
284					regulator-suspend-microvolt = <3300000>;
285				};
286			};
287
288			vcc3v0_sd: LDO_REG5 {
289				regulator-name = "vcc3v0_sd";
290				regulator-min-microvolt = <3000000>;
291				regulator-max-microvolt = <3000000>;
292				regulator-always-on;
293				regulator-boot-on;
294				regulator-state-mem {
295					regulator-on-in-suspend;
296					regulator-suspend-microvolt = <3000000>;
297				};
298			};
299
300			vcc_1v5: LDO_REG6 {
301				regulator-name = "vcc_1v5";
302				regulator-min-microvolt = <1500000>;
303				regulator-max-microvolt = <1500000>;
304				regulator-always-on;
305				regulator-boot-on;
306				regulator-state-mem {
307					regulator-on-in-suspend;
308					regulator-suspend-microvolt = <1500000>;
309				};
310			};
311
312			vcca0v9_hdmi: LDO_REG7 {
313				regulator-name = "vcca0v9_hdmi";
314				regulator-min-microvolt = <900000>;
315				regulator-max-microvolt = <900000>;
316				regulator-always-on;
317				regulator-boot-on;
318				regulator-state-mem {
319					regulator-on-in-suspend;
320					regulator-suspend-microvolt = <900000>;
321				};
322			};
323
324			vcc_3v0: LDO_REG8 {
325				regulator-name = "vcc_3v0";
326				regulator-min-microvolt = <3000000>;
327				regulator-max-microvolt = <3000000>;
328				regulator-always-on;
329				regulator-boot-on;
330				regulator-state-mem {
331					regulator-on-in-suspend;
332					regulator-suspend-microvolt = <3000000>;
333				};
334			};
335
336			vcc3v3_s3: SWITCH_REG1 {
337				regulator-name = "vcc3v3_s3";
338				regulator-always-on;
339				regulator-boot-on;
340				regulator-state-mem {
341					regulator-on-in-suspend;
342				};
343			};
344
345			vcc3v3_s0: SWITCH_REG2 {
346				regulator-name = "vcc3v3_s0";
347				regulator-always-on;
348				regulator-boot-on;
349				regulator-state-mem {
350					regulator-on-in-suspend;
351				};
352			};
353		};
354	};
355};
356
357&i2c1 {
358	status = "okay";
359};
360
361&i2c2 {
362	status = "okay";
363};
364
365&i2c3 {
366	status = "okay";
367};
368
369&i2c4 {
370	status = "okay";
371};
372
373&io_domains {
374	bt656-supply = <&vcc1v8_s0>; /* bt656_gpio2ab_ms */
375	audio-supply = <&vcc1v8_s0>; /* audio_gpio3d4a_ms */
376	sdmmc-supply = <&vcc_sd>; /* sdmmc_gpio4b_ms */
377	gpio1830-supply = <&vcc_3v0>; /* gpio1833_gpio4cd_ms */
378	status = "okay";
379};
380
381&pcie_phy {
382	status = "okay";
383};
384
385&pcie0 {
386	ep-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_HIGH>;
387	num-lanes = <4>;
388	pinctrl-names = "default";
389	pinctrl-0 = <&pcie_clkreqn_cpm>;
390	vpcie3v3-supply = <&vcc3v3_pcie>;
391	status = "okay";
392};
393
394&pmu_io_domains {
395	pmu1830-supply = <&vcc_1v8>;
396	status = "okay";
397};
398
399&pinctrl {
400	gmac {
401		rgmii_sleep_pins: rgmii-sleep-pins {
402			rockchip,pins =
403				<3 15 RK_FUNC_GPIO &pcfg_output_low>;
404		};
405	};
406
407	sdmmc {
408		sdmmc_bus1: sdmmc-bus1 {
409			rockchip,pins =
410				<4 8 RK_FUNC_1 &pcfg_pull_up_8ma>;
411		};
412
413		sdmmc_bus4: sdmmc-bus4 {
414			rockchip,pins =
415				<4 8 RK_FUNC_1 &pcfg_pull_up_8ma>,
416				<4 9 RK_FUNC_1 &pcfg_pull_up_8ma>,
417				<4 10 RK_FUNC_1 &pcfg_pull_up_8ma>,
418				<4 11 RK_FUNC_1 &pcfg_pull_up_8ma>;
419		};
420
421		sdmmc_clk: sdmmc-clk {
422			rockchip,pins =
423				<4 12 RK_FUNC_1 &pcfg_pull_none_18ma>;
424		};
425
426		sdmmc_cmd: sdmmc-cmd {
427			rockchip,pins =
428				<4 13 RK_FUNC_1 &pcfg_pull_up_8ma>;
429		};
430	};
431
432	pcie {
433		pcie_drv: pcie-drv {
434			rockchip,pins =
435				<1 24 RK_FUNC_GPIO &pcfg_pull_none>;
436			};
437	};
438
439	pmic {
440		pmic_int_l: pmic-int-l {
441			rockchip,pins =
442				<1 21 RK_FUNC_GPIO &pcfg_pull_up>;
443		};
444
445		vsel1_gpio: vsel1-gpio {
446			rockchip,pins =
447				<1 17 RK_FUNC_GPIO &pcfg_pull_down>;
448		};
449
450		vsel2_gpio: vsel2-gpio {
451			rockchip,pins =
452				<1 14 RK_FUNC_GPIO &pcfg_pull_down>;
453		};
454	};
455
456	usb2 {
457		host_vbus_drv: host-vbus-drv {
458			rockchip,pins =
459				<4 27 RK_FUNC_GPIO &pcfg_pull_none>;
460		};
461	};
462};
463
464&pwm2 {
465	status = "okay";
466};
467
468&pwm3 {
469	status = "okay";
470};
471
472&sdhci {
473	bus-width = <8>;
474	mmc-hs400-1_8v;
475	mmc-hs400-enhanced-strobe;
476	non-removable;
477	status = "okay";
478};
479
480&sdmmc {
481	bus-width = <4>;
482	cap-mmc-highspeed;
483	cap-sd-highspeed;
484	clock-frequency = <100000000>;
485	clock-freq-min-max = <100000 100000000>;
486	disable-wp;
487	sd-uhs-sdr104;
488	vqmmc-supply = <&vcc_sd>;
489	card-detect-delay = <800>;
490	pinctrl-names = "default";
491	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
492	status = "okay";
493};
494
495&tcphy0 {
496	status = "okay";
497};
498
499&tcphy1 {
500	status = "okay";
501};
502
503&u2phy0 {
504	status = "okay";
505};
506
507&u2phy1 {
508	status = "okay";
509};
510
511&u2phy0_host {
512	phy-supply = <&vcc5v0_host>;
513	status = "okay";
514};
515
516&u2phy1_host {
517	phy-supply = <&vcc5v0_host>;
518	status = "okay";
519};
520
521&u2phy0_otg {
522	status = "okay";
523};
524
525&u2phy1_otg {
526	status = "okay";
527};
528
529&uart0 {
530	pinctrl-names = "default";
531	pinctrl-0 = <&uart0_xfer &uart0_cts>;
532	status = "okay";
533};
534
535&uart2 {
536	status = "okay";
537};
538
539&usb_host0_ehci {
540	status = "okay";
541};
542
543&usb_host0_ohci {
544	status = "okay";
545};
546
547&usb_host1_ehci {
548	status = "okay";
549};
550
551&usb_host1_ohci {
552	status = "okay";
553};
554
555&usbdrd3_0 {
556	status = "okay";
557};
558
559&usbdrd_dwc3_0 {
560	status = "okay";
561	dr_mode = "host";
562};
563
564&usbdrd3_1 {
565	status = "okay";
566};
567
568&usbdrd_dwc3_1 {
569	status = "okay";
570	dr_mode = "host";
571};
572
573&vopb {
574	status = "okay";
575};
576
577&vopb_mmu {
578	status = "okay";
579};
580
581&vopl {
582	status = "okay";
583};
584
585&vopl_mmu {
586	status = "okay";
587};
588