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
14*5dcbe7e3SHeiko Stuebner	aliases {
15*5dcbe7e3SHeiko Stuebner		mmc2 = &sdio0;
16*5dcbe7e3SHeiko Stuebner	};
17*5dcbe7e3SHeiko Stuebner
18bd77d0adSJagan Teki	/* MP8009 PoE PD */
19bd77d0adSJagan Teki	poe_12v: poe-12v {
20bd77d0adSJagan Teki		compatible = "regulator-fixed";
21bd77d0adSJagan Teki		regulator-name = "poe_12v";
22bd77d0adSJagan Teki		regulator-always-on;
23bd77d0adSJagan Teki		regulator-boot-on;
24bd77d0adSJagan Teki		regulator-min-microvolt = <12000000>;
25bd77d0adSJagan Teki		regulator-max-microvolt = <12000000>;
26bd77d0adSJagan Teki	};
27bd77d0adSJagan Teki
28f9010b0eSMarkus Reichl	vcc3v3_ngff: vcc3v3-ngff {
29f9010b0eSMarkus Reichl		compatible = "regulator-fixed";
30f9010b0eSMarkus Reichl		regulator-name = "vcc3v3_ngff";
31f9010b0eSMarkus Reichl		enable-active-high;
32f9010b0eSMarkus Reichl		gpio = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>;
33f9010b0eSMarkus Reichl		pinctrl-names = "default";
34f9010b0eSMarkus Reichl		pinctrl-0 = <&vcc3v3_ngff_en>;
35f9010b0eSMarkus Reichl		regulator-always-on;
36f9010b0eSMarkus Reichl		regulator-boot-on;
37f9010b0eSMarkus Reichl		regulator-min-microvolt = <3300000>;
38f9010b0eSMarkus Reichl		regulator-max-microvolt = <3300000>;
39bd77d0adSJagan Teki		vin-supply = <&sys_12v>;
40f9010b0eSMarkus Reichl	};
41f9010b0eSMarkus Reichl
42f9010b0eSMarkus Reichl	vcc3v3_pcie: vcc3v3-pcie {
43f9010b0eSMarkus Reichl		compatible = "regulator-fixed";
44f9010b0eSMarkus Reichl		regulator-name = "vcc3v3_pcie";
45f9010b0eSMarkus Reichl		enable-active-high;
46f9010b0eSMarkus Reichl		gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>;
47f9010b0eSMarkus Reichl		pinctrl-names = "default";
48f9010b0eSMarkus Reichl		pinctrl-0 = <&vcc3v3_pcie_en>;
49f9010b0eSMarkus Reichl		regulator-min-microvolt = <3300000>;
50f9010b0eSMarkus Reichl		regulator-max-microvolt = <3300000>;
51bd77d0adSJagan Teki		vin-supply = <&sys_12v>;
52f9010b0eSMarkus Reichl	};
53f9010b0eSMarkus Reichl};
54f9010b0eSMarkus Reichl
55bd77d0adSJagan Teki&sys_12v {
56bd77d0adSJagan Teki	vin-supply = <&poe_12v>;
57bd77d0adSJagan Teki};
58bd77d0adSJagan Teki
59f9010b0eSMarkus Reichl&pcie_phy {
60f9010b0eSMarkus Reichl	status = "okay";
61f9010b0eSMarkus Reichl};
62f9010b0eSMarkus Reichl
63f9010b0eSMarkus Reichl&pcie0 {
64f9010b0eSMarkus Reichl	ep-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
65f9010b0eSMarkus Reichl	num-lanes = <4>;
66f9010b0eSMarkus Reichl	pinctrl-names = "default";
67f9010b0eSMarkus Reichl	pinctrl-0 = <&pcie_perst>;
68f9010b0eSMarkus Reichl	vpcie3v3-supply = <&vcc3v3_pcie>;
69ec5b0af7SMarkus Reichl	vpcie1v8-supply = <&vcc1v8_pmu>;
70ec5b0af7SMarkus Reichl	vpcie0v9-supply = <&vcca_0v9>;
71f9010b0eSMarkus Reichl	status = "okay";
72f9010b0eSMarkus Reichl};
73f9010b0eSMarkus Reichl
74f9010b0eSMarkus Reichl&pinctrl {
75f9010b0eSMarkus Reichl	ngff {
76f9010b0eSMarkus Reichl		vcc3v3_ngff_en: vcc3v3-ngff-en {
77f9010b0eSMarkus Reichl			rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
78f9010b0eSMarkus Reichl		};
79f9010b0eSMarkus Reichl	};
80f9010b0eSMarkus Reichl
81f9010b0eSMarkus Reichl	pcie {
82f9010b0eSMarkus Reichl		vcc3v3_pcie_en: vcc3v3-pcie-en {
83f9010b0eSMarkus Reichl			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
84f9010b0eSMarkus Reichl		};
85f9010b0eSMarkus Reichl
86f9010b0eSMarkus Reichl		pcie_perst: pcie-perst {
87f9010b0eSMarkus Reichl			rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
88f9010b0eSMarkus Reichl		};
89f9010b0eSMarkus Reichl	};
90f9010b0eSMarkus Reichl};
91cf3c5397SMarkus Reichl
92cf3c5397SMarkus Reichl&sdio0 {
93cf3c5397SMarkus Reichl	bus-width = <4>;
94cf3c5397SMarkus Reichl	cap-sd-highspeed;
95cf3c5397SMarkus Reichl	cap-sdio-irq;
96cf3c5397SMarkus Reichl	keep-power-in-suspend;
97cf3c5397SMarkus Reichl	mmc-pwrseq = <&sdio_pwrseq>;
98cf3c5397SMarkus Reichl	non-removable;
99cf3c5397SMarkus Reichl	pinctrl-names = "default";
100cf3c5397SMarkus Reichl	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
101cf3c5397SMarkus Reichl	sd-uhs-sdr104;
102cf3c5397SMarkus Reichl	vmmc-supply = <&vcc3v3_ngff>;
103cf3c5397SMarkus Reichl	vqmmc-supply = <&vcc_1v8>;
104cf3c5397SMarkus Reichl	status = "okay";
105cf3c5397SMarkus Reichl};
106cf3c5397SMarkus Reichl
107cf3c5397SMarkus Reichl&uart0 {
108cf3c5397SMarkus Reichl	pinctrl-names = "default";
109cf3c5397SMarkus Reichl	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
110cf3c5397SMarkus Reichl	status = "okay";
111cf3c5397SMarkus Reichl};
112