xref: /freebsd/sys/contrib/device-tree/src/arm64/rockchip/rk3328-evb.dts (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd
4 */
5
6/dts-v1/;
7#include "rk3328.dtsi"
8
9/ {
10	model = "Rockchip RK3328 EVB";
11	compatible = "rockchip,rk3328-evb", "rockchip,rk3328";
12
13	chosen {
14		stdout-path = "serial2:1500000n8";
15	};
16
17	dc_12v: dc-12v {
18		compatible = "regulator-fixed";
19		regulator-name = "dc_12v";
20		regulator-always-on;
21		regulator-boot-on;
22		regulator-min-microvolt = <12000000>;
23		regulator-max-microvolt = <12000000>;
24	};
25
26	sdio_pwrseq: sdio-pwrseq {
27		compatible = "mmc-pwrseq-simple";
28		pinctrl-names = "default";
29		pinctrl-0 = <&wifi_enable_h>;
30
31		/*
32		 * On the module itself this is one of these (depending
33		 * on the actual card populated):
34		 * - SDIO_RESET_L_WL_REG_ON
35		 * - PDN (power down when low)
36		 */
37		reset-gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
38	};
39
40	vcc_sd: sdmmc-regulator {
41		compatible = "regulator-fixed";
42		gpio = <&gpio0 30 GPIO_ACTIVE_LOW>;
43		pinctrl-names = "default";
44		pinctrl-0 = <&sdmmc0m1_pin>;
45		regulator-name = "vcc_sd";
46		regulator-min-microvolt = <3300000>;
47		regulator-max-microvolt = <3300000>;
48		vin-supply = <&vcc_io>;
49	};
50
51	vcc_sys: vcc-sys {
52		compatible = "regulator-fixed";
53		regulator-name = "vcc_sys";
54		regulator-always-on;
55		regulator-boot-on;
56		regulator-min-microvolt = <5000000>;
57		regulator-max-microvolt = <5000000>;
58		vin-supply = <&dc_12v>;
59	};
60
61	vcc_phy: vcc-phy-regulator {
62		compatible = "regulator-fixed";
63		regulator-name = "vcc_phy";
64		regulator-always-on;
65		regulator-boot-on;
66	};
67};
68
69&cpu0 {
70	cpu-supply = <&vdd_arm>;
71};
72
73&emmc {
74	bus-width = <8>;
75	cap-mmc-highspeed;
76	non-removable;
77	pinctrl-names = "default";
78	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
79	status = "okay";
80};
81
82&gmac2phy {
83	phy-supply = <&vcc_phy>;
84	clock_in_out = "output";
85	assigned-clock-rate = <50000000>;
86	assigned-clocks = <&cru SCLK_MAC2PHY>;
87	assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>;
88	status = "okay";
89};
90
91&i2c1 {
92	status = "okay";
93
94	rk805: pmic@18 {
95		compatible = "rockchip,rk805";
96		reg = <0x18>;
97		interrupt-parent = <&gpio2>;
98		interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
99		#clock-cells = <1>;
100		clock-output-names = "xin32k", "rk805-clkout2";
101		gpio-controller;
102		#gpio-cells = <2>;
103		pinctrl-names = "default";
104		pinctrl-0 = <&pmic_int_l>;
105		rockchip,system-power-controller;
106		wakeup-source;
107
108		vcc1-supply = <&vcc_sys>;
109		vcc2-supply = <&vcc_sys>;
110		vcc3-supply = <&vcc_sys>;
111		vcc4-supply = <&vcc_sys>;
112		vcc5-supply = <&vcc_io>;
113		vcc6-supply = <&vcc_io>;
114
115		regulators {
116			vdd_logic: DCDC_REG1 {
117				regulator-name = "vdd_logic";
118				regulator-min-microvolt = <712500>;
119				regulator-max-microvolt = <1450000>;
120				regulator-always-on;
121				regulator-boot-on;
122				regulator-state-mem {
123					regulator-on-in-suspend;
124					regulator-suspend-microvolt = <1000000>;
125				};
126			};
127
128			vdd_arm: DCDC_REG2 {
129				regulator-name = "vdd_arm";
130				regulator-min-microvolt = <712500>;
131				regulator-max-microvolt = <1450000>;
132				regulator-always-on;
133				regulator-boot-on;
134				regulator-state-mem {
135					regulator-on-in-suspend;
136					regulator-suspend-microvolt = <950000>;
137				};
138			};
139
140			vcc_ddr: DCDC_REG3 {
141				regulator-name = "vcc_ddr";
142				regulator-always-on;
143				regulator-boot-on;
144				regulator-state-mem {
145					regulator-on-in-suspend;
146				};
147			};
148
149			vcc_io: DCDC_REG4 {
150				regulator-name = "vcc_io";
151				regulator-min-microvolt = <3300000>;
152				regulator-max-microvolt = <3300000>;
153				regulator-always-on;
154				regulator-boot-on;
155				regulator-state-mem {
156					regulator-on-in-suspend;
157					regulator-suspend-microvolt = <3300000>;
158				};
159			};
160
161			vcc_18: LDO_REG1 {
162				regulator-name = "vcc_18";
163				regulator-min-microvolt = <1800000>;
164				regulator-max-microvolt = <1800000>;
165				regulator-always-on;
166				regulator-boot-on;
167				regulator-state-mem {
168					regulator-on-in-suspend;
169					regulator-suspend-microvolt = <1800000>;
170				};
171			};
172
173			vcc18_emmc: LDO_REG2 {
174				regulator-name = "vcc18_emmc";
175				regulator-min-microvolt = <1800000>;
176				regulator-max-microvolt = <1800000>;
177				regulator-always-on;
178				regulator-boot-on;
179				regulator-state-mem {
180					regulator-on-in-suspend;
181					regulator-suspend-microvolt = <1800000>;
182				};
183			};
184
185			vdd_10: LDO_REG3 {
186				regulator-name = "vdd_10";
187				regulator-min-microvolt = <1000000>;
188				regulator-max-microvolt = <1000000>;
189				regulator-always-on;
190				regulator-boot-on;
191				regulator-state-mem {
192					regulator-on-in-suspend;
193					regulator-suspend-microvolt = <1000000>;
194				};
195			};
196		};
197	};
198};
199
200&pinctrl {
201	pmic {
202		pmic_int_l: pmic-int-l {
203			rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
204		};
205	};
206
207	sdio-pwrseq {
208		wifi_enable_h: wifi-enable-h {
209		rockchip,pins =
210			<1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
211		};
212	};
213};
214
215&sdio {
216	bus-width = <4>;
217	cap-sd-highspeed;
218	cap-sdio-irq;
219	keep-power-in-suspend;
220	max-frequency = <150000000>;
221	mmc-pwrseq = <&sdio_pwrseq>;
222	non-removable;
223	pinctrl-names = "default";
224	pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
225	status = "okay";
226};
227
228&sdmmc {
229	bus-width = <4>;
230	cap-mmc-highspeed;
231	cap-sd-highspeed;
232	disable-wp;
233	max-frequency = <150000000>;
234	pinctrl-names = "default";
235	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
236	vmmc-supply = <&vcc_sd>;
237	status = "okay";
238};
239
240&tsadc {
241	status = "okay";
242};
243
244&uart2 {
245	status = "okay";
246};
247
248&u2phy {
249	status = "okay";
250};
251
252&u2phy_host {
253	status = "okay";
254};
255
256&u2phy_otg {
257	status = "okay";
258};
259
260&usb20_otg {
261	status = "okay";
262};
263
264&usb_host0_ehci {
265	status = "okay";
266};
267
268&usb_host0_ohci {
269	status = "okay";
270};
271