1f9010b0eSMarkus Reichl// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2f9010b0eSMarkus Reichl/*
3f9010b0eSMarkus Reichl * Copyright (c) 2017 T-Chip Intelligent Technology Co., Ltd
4f9010b0eSMarkus Reichl * Copyright (c) 2019 Markus Reichl <m.reichl@fivetechno.de>
5f9010b0eSMarkus Reichl */
6f9010b0eSMarkus Reichl
7f9010b0eSMarkus Reichl/dts-v1/;
8f9010b0eSMarkus Reichl#include "rk3399-roc-pc.dtsi"
9f9010b0eSMarkus Reichl
10f9010b0eSMarkus Reichl/ {
11f9010b0eSMarkus Reichl	model = "Firefly ROC-RK3399-PC Mezzanine Board";
12f9010b0eSMarkus Reichl	compatible = "firefly,roc-rk3399-pc-mezzanine", "rockchip,rk3399";
13f9010b0eSMarkus Reichl
14bd77d0adSJagan Teki	/* MP8009 PoE PD */
15bd77d0adSJagan Teki	poe_12v: poe-12v {
16bd77d0adSJagan Teki		compatible = "regulator-fixed";
17bd77d0adSJagan Teki		regulator-name = "poe_12v";
18bd77d0adSJagan Teki		regulator-always-on;
19bd77d0adSJagan Teki		regulator-boot-on;
20bd77d0adSJagan Teki		regulator-min-microvolt = <12000000>;
21bd77d0adSJagan Teki		regulator-max-microvolt = <12000000>;
22bd77d0adSJagan Teki	};
23bd77d0adSJagan Teki
24f9010b0eSMarkus Reichl	vcc3v3_ngff: vcc3v3-ngff {
25f9010b0eSMarkus Reichl		compatible = "regulator-fixed";
26f9010b0eSMarkus Reichl		regulator-name = "vcc3v3_ngff";
27f9010b0eSMarkus Reichl		enable-active-high;
28f9010b0eSMarkus Reichl		gpio = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>;
29f9010b0eSMarkus Reichl		pinctrl-names = "default";
30f9010b0eSMarkus Reichl		pinctrl-0 = <&vcc3v3_ngff_en>;
31f9010b0eSMarkus Reichl		regulator-always-on;
32f9010b0eSMarkus Reichl		regulator-boot-on;
33f9010b0eSMarkus Reichl		regulator-min-microvolt = <3300000>;
34f9010b0eSMarkus Reichl		regulator-max-microvolt = <3300000>;
35bd77d0adSJagan Teki		vin-supply = <&sys_12v>;
36f9010b0eSMarkus Reichl	};
37f9010b0eSMarkus Reichl
38f9010b0eSMarkus Reichl	vcc3v3_pcie: vcc3v3-pcie {
39f9010b0eSMarkus Reichl		compatible = "regulator-fixed";
40f9010b0eSMarkus Reichl		regulator-name = "vcc3v3_pcie";
41f9010b0eSMarkus Reichl		enable-active-high;
42f9010b0eSMarkus Reichl		gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>;
43f9010b0eSMarkus Reichl		pinctrl-names = "default";
44f9010b0eSMarkus Reichl		pinctrl-0 = <&vcc3v3_pcie_en>;
45f9010b0eSMarkus Reichl		regulator-min-microvolt = <3300000>;
46f9010b0eSMarkus Reichl		regulator-max-microvolt = <3300000>;
47bd77d0adSJagan Teki		vin-supply = <&sys_12v>;
48f9010b0eSMarkus Reichl	};
49f9010b0eSMarkus Reichl};
50f9010b0eSMarkus Reichl
51bd77d0adSJagan Teki&sys_12v {
52bd77d0adSJagan Teki	vin-supply = <&poe_12v>;
53bd77d0adSJagan Teki};
54bd77d0adSJagan Teki
55f9010b0eSMarkus Reichl&pcie_phy {
56f9010b0eSMarkus Reichl	status = "okay";
57f9010b0eSMarkus Reichl};
58f9010b0eSMarkus Reichl
59f9010b0eSMarkus Reichl&pcie0 {
60f9010b0eSMarkus Reichl	ep-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
61f9010b0eSMarkus Reichl	num-lanes = <4>;
62f9010b0eSMarkus Reichl	pinctrl-names = "default";
63f9010b0eSMarkus Reichl	pinctrl-0 = <&pcie_perst>;
64f9010b0eSMarkus Reichl	vpcie3v3-supply = <&vcc3v3_pcie>;
65ec5b0af7SMarkus Reichl	vpcie1v8-supply = <&vcc1v8_pmu>;
66ec5b0af7SMarkus Reichl	vpcie0v9-supply = <&vcca_0v9>;
67f9010b0eSMarkus Reichl	status = "okay";
68f9010b0eSMarkus Reichl};
69f9010b0eSMarkus Reichl
70f9010b0eSMarkus Reichl&pinctrl {
71f9010b0eSMarkus Reichl	ngff {
72f9010b0eSMarkus Reichl		vcc3v3_ngff_en: vcc3v3-ngff-en {
73f9010b0eSMarkus Reichl			rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
74f9010b0eSMarkus Reichl		};
75f9010b0eSMarkus Reichl	};
76f9010b0eSMarkus Reichl
77f9010b0eSMarkus Reichl	pcie {
78f9010b0eSMarkus Reichl		vcc3v3_pcie_en: vcc3v3-pcie-en {
79f9010b0eSMarkus Reichl			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
80f9010b0eSMarkus Reichl		};
81f9010b0eSMarkus Reichl
82f9010b0eSMarkus Reichl		pcie_perst: pcie-perst {
83f9010b0eSMarkus Reichl			rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
84f9010b0eSMarkus Reichl		};
85f9010b0eSMarkus Reichl	};
86f9010b0eSMarkus Reichl};
87cf3c5397SMarkus Reichl
88cf3c5397SMarkus Reichl&sdio0 {
89cf3c5397SMarkus Reichl	bus-width = <4>;
90cf3c5397SMarkus Reichl	cap-sd-highspeed;
91cf3c5397SMarkus Reichl	cap-sdio-irq;
92cf3c5397SMarkus Reichl	keep-power-in-suspend;
93cf3c5397SMarkus Reichl	mmc-pwrseq = <&sdio_pwrseq>;
94cf3c5397SMarkus Reichl	non-removable;
95cf3c5397SMarkus Reichl	pinctrl-names = "default";
96cf3c5397SMarkus Reichl	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
97cf3c5397SMarkus Reichl	sd-uhs-sdr104;
98cf3c5397SMarkus Reichl	vmmc-supply = <&vcc3v3_ngff>;
99cf3c5397SMarkus Reichl	vqmmc-supply = <&vcc_1v8>;
100cf3c5397SMarkus Reichl	status = "okay";
101cf3c5397SMarkus Reichl};
102cf3c5397SMarkus Reichl
103cf3c5397SMarkus Reichl&uart0 {
104cf3c5397SMarkus Reichl	pinctrl-names = "default";
105cf3c5397SMarkus Reichl	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
106cf3c5397SMarkus Reichl	status = "okay";
107cf3c5397SMarkus Reichl};
108