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		#clock-cells = <0>;
164
165		vcc1-supply = <&vcc_sys>;
166		vcc2-supply = <&vcc_sys>;
167		vcc3-supply = <&vcc_sys>;
168		vcc4-supply = <&vcc_sys>;
169		vcc5-supply = <&vcc_io>;
170		vcc6-supply = <&vcc_io>;
171
172		regulators {
173			vdd_logic: DCDC_REG1 {
174				regulator-name = "vdd_logic";
175				regulator-min-microvolt = <700000>;
176				regulator-max-microvolt = <1350000>;
177				regulator-always-on;
178				regulator-boot-on;
179				regulator-state-mem {
180					regulator-on-in-suspend;
181					regulator-suspend-microvolt = <1000000>;
182				};
183			};
184
185			vdd_arm: DCDC_REG2 {
186				regulator-name = "vdd_arm";
187				regulator-min-microvolt = <700000>;
188				regulator-max-microvolt = <1350000>;
189				regulator-always-on;
190				regulator-boot-on;
191				regulator-state-mem {
192					regulator-on-in-suspend;
193					regulator-suspend-microvolt = <950000>;
194				};
195			};
196
197			vcc_ddr: DCDC_REG3 {
198				regulator-name = "vcc_ddr";
199				regulator-always-on;
200				regulator-boot-on;
201				regulator-state-mem {
202					regulator-on-in-suspend;
203				};
204			};
205
206			vcc_io: DCDC_REG4 {
207				regulator-name = "vcc_io";
208				regulator-min-microvolt = <3300000>;
209				regulator-max-microvolt = <3300000>;
210				regulator-always-on;
211				regulator-boot-on;
212				regulator-state-mem {
213					regulator-on-in-suspend;
214					regulator-suspend-microvolt = <3300000>;
215				};
216			};
217
218			vdd_18: LDO_REG1 {
219				regulator-name = "vdd_18";
220				regulator-min-microvolt = <1800000>;
221				regulator-max-microvolt = <1800000>;
222				regulator-always-on;
223				regulator-boot-on;
224				regulator-state-mem {
225					regulator-on-in-suspend;
226					regulator-suspend-microvolt = <1800000>;
227				};
228			};
229
230			vcc18_emmc: LDO_REG2 {
231				regulator-name = "vcc_18emmc";
232				regulator-min-microvolt = <1800000>;
233				regulator-max-microvolt = <1800000>;
234				regulator-always-on;
235				regulator-boot-on;
236				regulator-state-mem {
237					regulator-on-in-suspend;
238					regulator-suspend-microvolt = <1800000>;
239				};
240			};
241
242			vdd_11: LDO_REG3 {
243				regulator-name = "vdd_11";
244				regulator-min-microvolt = <1100000>;
245				regulator-max-microvolt = <1100000>;
246				regulator-always-on;
247				regulator-boot-on;
248				regulator-state-mem {
249					regulator-on-in-suspend;
250					regulator-suspend-microvolt = <1100000>;
251				};
252			};
253		};
254	};
255};
256
257&i2s0 {
258	status = "okay";
259};
260
261&i2s1 {
262	status = "okay";
263};
264
265&io_domains {
266	vccio1-supply = <&vcc_io>;
267	vccio2-supply = <&vcc18_emmc>;
268	vccio3-supply = <&vcc_io>;
269	vccio4-supply = <&vdd_18>;
270	vccio5-supply = <&vcc_io>;
271	vccio6-supply = <&vdd_18>;
272	pmuio-supply = <&vcc_io>;
273	status = "okay";
274};
275
276&pinctrl {
277	pmic {
278		pmic_int_l: pmic-int-l {
279			rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
280		};
281	};
282
283	usb3 {
284		usb30_host_drv: usb30-host-drv {
285			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
286		};
287	};
288
289	wifi {
290		bt_dis: bt-dis {
291			rockchip,pins = <2 RK_PC5 RK_FUNC_GPIO &pcfg_output_low>;
292		};
293
294		bt_wake_host: bt-wake-host {
295			rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>;
296		};
297
298		chip_en: chip-en {
299			rockchip,pins = <2 RK_PC3 RK_FUNC_GPIO &pcfg_output_low>;
300		};
301
302		host_wake_bt: host-wake-bt {
303			rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_output_high>;
304		};
305
306		wl_dis: wl-dis {
307			rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_output_low>;
308		};
309
310		wl_wake_host: wl-wake-host {
311			rockchip,pins = <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
312		};
313	};
314};
315
316&sdmmc {
317	bus-width = <4>;
318	cap-mmc-highspeed;
319	cap-sd-highspeed;
320	disable-wp;
321	pinctrl-names = "default";
322	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
323	vmmc-supply = <&vcc_io>;
324	vqmmc-supply = <&vcc_io>;
325	status = "okay";
326};
327
328&tsadc {
329	rockchip,hw-tshut-mode = <0>;
330	rockchip,hw-tshut-polarity = <0>;
331	status = "okay";
332};
333
334&uart2 {
335	status = "okay";
336};
337
338&u2phy {
339	status = "okay";
340};
341
342&u2phy_host {
343	status = "okay";
344};
345
346&u2phy_otg {
347	status = "okay";
348};
349
350&usb20_otg {
351	dr_mode = "host";
352	status = "okay";
353};
354
355&usb_host0_ehci {
356	pinctrl-names = "default";
357	pinctrl-0 = <&bt_dis &bt_wake_host &chip_en &host_wake_bt &wl_dis &wl_wake_host>;
358	status = "okay";
359};
360
361&vop {
362	status = "okay";
363};
364
365&vop_mmu {
366	status = "okay";
367};
368