1// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
2// Copyright (c) 2017-2019 Arm Ltd.
3
4/dts-v1/;
5#include "rk3328.dtsi"
6
7/ {
8	model = "Beelink A1";
9	compatible = "azw,beelink-a1", "rockchip,rk3328";
10
11	aliases {
12		ethernet0 = &gmac2io;
13		mmc0 = &sdmmc;
14		mmc1 = &emmc;
15	};
16
17	/*
18	 * UART pins, as viewed with bottom of case removed:
19	 *
20	 *           Front
21	 *        /-------
22	 *  L    / o <- Gnd
23	 *  e   / o <-- Rx
24	 *  f  / o <--- Tx
25	 *  t / o <---- +3.3v
26	 *    |
27	 */
28	chosen {
29		stdout-path = "serial2:1500000n8";
30	};
31
32	gmac_clkin: external-gmac-clock {
33		compatible = "fixed-clock";
34		clock-frequency = <125000000>;
35		clock-output-names = "gmac_clkin";
36		#clock-cells = <0>;
37	};
38
39	vcc_host_5v: usb3-current-switch {
40		compatible = "regulator-fixed";
41		enable-active-high;
42		gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
43		pinctrl-names = "default";
44		pinctrl-0 = <&usb30_host_drv>;
45		regulator-name = "vcc_host_5v";
46		vin-supply = <&vcc_sys>;
47	};
48
49	vcc_sys: vcc-sys {
50		compatible = "regulator-fixed";
51		regulator-name = "vcc_sys";
52		regulator-min-microvolt = <5000000>;
53		regulator-max-microvolt = <5000000>;
54	};
55
56	ir-receiver {
57		compatible = "gpio-ir-receiver";
58		gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>;
59		linux,rc-map-name = "rc-beelink-gs1";
60	};
61};
62
63&analog_sound {
64	simple-audio-card,name = "Analog A/V";
65	status = "okay";
66};
67
68&codec {
69	mute-gpios = <&grf_gpio 0 GPIO_ACTIVE_LOW>;
70	status = "okay";
71};
72
73&cpu0 {
74	cpu-supply = <&vdd_arm>;
75};
76
77&cpu1 {
78	cpu-supply = <&vdd_arm>;
79};
80
81&cpu2 {
82	cpu-supply = <&vdd_arm>;
83};
84
85&cpu3 {
86	cpu-supply = <&vdd_arm>;
87};
88
89&emmc {
90	bus-width = <8>;
91	cap-mmc-highspeed;
92	mmc-ddr-1_8v;
93	mmc-hs200-1_8v;
94	no-sd;
95	no-sdio;
96	non-removable;
97	pinctrl-names = "default";
98	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
99	vmmc-supply = <&vcc_io>;
100	vqmmc-supply = <&vcc18_emmc>;
101	status = "okay";
102};
103
104&gmac2io {
105	assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
106	assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
107	clock_in_out = "input";
108	phy-handle = <&rtl8211f>;
109	phy-mode = "rgmii";
110	phy-supply = <&vcc_io>;
111	pinctrl-names = "default";
112	pinctrl-0 = <&rgmiim1_pins>;
113	snps,aal;
114	snps,pbl = <0x4>;
115	tx_delay = <0x26>;
116	rx_delay = <0x11>;
117	status = "okay";
118
119	mdio {
120		compatible = "snps,dwmac-mdio";
121		#address-cells = <1>;
122		#size-cells = <0>;
123
124		rtl8211f: ethernet-phy@0 {
125			reg = <0>;
126			reset-assert-us = <10000>;
127			reset-deassert-us = <30000>;
128			reset-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_LOW>;
129		};
130	};
131};
132
133&gpu {
134	mali-supply = <&vdd_logic>;
135};
136
137&hdmi {
138	status = "okay";
139};
140
141&hdmiphy {
142	status = "okay";
143};
144
145&hdmi_sound {
146	status = "okay";
147};
148
149&i2c1 {
150	clock-frequency = <1000000>;
151	i2c-scl-falling-time-ns = <5>;
152	i2c-scl-rising-time-ns = <83>;
153	status = "okay";
154
155	pmic@18 {
156		compatible = "rockchip,rk805";
157		reg = <0x18>;
158		interrupt-parent = <&gpio2>;
159		interrupts = <RK_PA6 IRQ_TYPE_LEVEL_LOW>;
160		pinctrl-names = "default";
161		pinctrl-0 = <&pmic_int_l>;
162		rockchip,system-power-controller;
163		wakeup-source;
164		#clock-cells = <0>;
165
166		vcc1-supply = <&vcc_sys>;
167		vcc2-supply = <&vcc_sys>;
168		vcc3-supply = <&vcc_sys>;
169		vcc4-supply = <&vcc_sys>;
170		vcc5-supply = <&vcc_io>;
171		vcc6-supply = <&vcc_io>;
172
173		regulators {
174			vdd_logic: DCDC_REG1 {
175				regulator-name = "vdd_logic";
176				regulator-min-microvolt = <700000>;
177				regulator-max-microvolt = <1350000>;
178				regulator-always-on;
179				regulator-boot-on;
180				regulator-state-mem {
181					regulator-on-in-suspend;
182					regulator-suspend-microvolt = <1000000>;
183				};
184			};
185
186			vdd_arm: DCDC_REG2 {
187				regulator-name = "vdd_arm";
188				regulator-min-microvolt = <700000>;
189				regulator-max-microvolt = <1350000>;
190				regulator-always-on;
191				regulator-boot-on;
192				regulator-state-mem {
193					regulator-on-in-suspend;
194					regulator-suspend-microvolt = <950000>;
195				};
196			};
197
198			vcc_ddr: DCDC_REG3 {
199				regulator-name = "vcc_ddr";
200				regulator-always-on;
201				regulator-boot-on;
202				regulator-state-mem {
203					regulator-on-in-suspend;
204				};
205			};
206
207			vcc_io: DCDC_REG4 {
208				regulator-name = "vcc_io";
209				regulator-min-microvolt = <3300000>;
210				regulator-max-microvolt = <3300000>;
211				regulator-always-on;
212				regulator-boot-on;
213				regulator-state-mem {
214					regulator-on-in-suspend;
215					regulator-suspend-microvolt = <3300000>;
216				};
217			};
218
219			vdd_18: LDO_REG1 {
220				regulator-name = "vdd_18";
221				regulator-min-microvolt = <1800000>;
222				regulator-max-microvolt = <1800000>;
223				regulator-always-on;
224				regulator-boot-on;
225				regulator-state-mem {
226					regulator-on-in-suspend;
227					regulator-suspend-microvolt = <1800000>;
228				};
229			};
230
231			vcc18_emmc: LDO_REG2 {
232				regulator-name = "vcc_18emmc";
233				regulator-min-microvolt = <1800000>;
234				regulator-max-microvolt = <1800000>;
235				regulator-always-on;
236				regulator-boot-on;
237				regulator-state-mem {
238					regulator-on-in-suspend;
239					regulator-suspend-microvolt = <1800000>;
240				};
241			};
242
243			vdd_11: LDO_REG3 {
244				regulator-name = "vdd_11";
245				regulator-min-microvolt = <1100000>;
246				regulator-max-microvolt = <1100000>;
247				regulator-always-on;
248				regulator-boot-on;
249				regulator-state-mem {
250					regulator-on-in-suspend;
251					regulator-suspend-microvolt = <1100000>;
252				};
253			};
254		};
255	};
256};
257
258&i2s0 {
259	status = "okay";
260};
261
262&i2s1 {
263	status = "okay";
264};
265
266&io_domains {
267	vccio1-supply = <&vcc_io>;
268	vccio2-supply = <&vcc18_emmc>;
269	vccio3-supply = <&vcc_io>;
270	vccio4-supply = <&vdd_18>;
271	vccio5-supply = <&vcc_io>;
272	vccio6-supply = <&vdd_18>;
273	pmuio-supply = <&vcc_io>;
274	status = "okay";
275};
276
277&pinctrl {
278	pmic {
279		pmic_int_l: pmic-int-l {
280			rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
281		};
282	};
283
284	usb3 {
285		usb30_host_drv: usb30-host-drv {
286			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
287		};
288	};
289
290	wifi {
291		bt_dis: bt-dis {
292			rockchip,pins = <2 RK_PC5 RK_FUNC_GPIO &pcfg_output_low>;
293		};
294
295		bt_wake_host: bt-wake-host {
296			rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>;
297		};
298
299		chip_en: chip-en {
300			rockchip,pins = <2 RK_PC3 RK_FUNC_GPIO &pcfg_output_low>;
301		};
302
303		host_wake_bt: host-wake-bt {
304			rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_output_high>;
305		};
306
307		wl_dis: wl-dis {
308			rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_output_low>;
309		};
310
311		wl_wake_host: wl-wake-host {
312			rockchip,pins = <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
313		};
314	};
315};
316
317&sdmmc {
318	bus-width = <4>;
319	cap-mmc-highspeed;
320	cap-sd-highspeed;
321	disable-wp;
322	pinctrl-names = "default";
323	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
324	vmmc-supply = <&vcc_io>;
325	vqmmc-supply = <&vcc_io>;
326	status = "okay";
327};
328
329&tsadc {
330	rockchip,hw-tshut-mode = <0>;
331	rockchip,hw-tshut-polarity = <0>;
332	status = "okay";
333};
334
335&uart2 {
336	status = "okay";
337};
338
339&u2phy {
340	status = "okay";
341};
342
343&u2phy_host {
344	status = "okay";
345};
346
347&u2phy_otg {
348	status = "okay";
349};
350
351&usb20_otg {
352	dr_mode = "host";
353	status = "okay";
354};
355
356&usb_host0_ehci {
357	pinctrl-names = "default";
358	pinctrl-0 = <&bt_dis &bt_wake_host &chip_en &host_wake_bt &wl_dis &wl_wake_host>;
359	status = "okay";
360};
361
362&vop {
363	status = "okay";
364};
365
366&vop_mmu {
367	status = "okay";
368};
369