Linux 6.9-rc1
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / rockchip / rk3328-a1.dts
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 };