blob: 824183e515da6434caedf89dd6fd206988690cf5 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// 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 {
Tom Rini93743d22024-04-01 09:08:13 -040012 ethernet0 = &gmac2io;
Tom Rini53633a82024-02-29 12:33:36 -050013 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};