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