blob: 649b146dfff804914759000c5e8d4e5e498ccc84 [file] [log] [blame]
Jernej Skrabec463304d2021-01-06 18:02:56 +01001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2// Copyright (C) 2019 Clément Péron <peron.clem@gmail.com>
Clément Péron71a91772019-04-12 16:15:26 +02003
4/dts-v1/;
5
6#include "sun50i-h6.dtsi"
Jernej Skrabec463304d2021-01-06 18:02:56 +01007#include "sun50i-h6-cpu-opp.dtsi"
Clément Péron71a91772019-04-12 16:15:26 +02008
9#include <dt-bindings/gpio/gpio.h>
10
11/ {
12 model = "Beelink GS1";
13 compatible = "azw,beelink-gs1", "allwinner,sun50i-h6";
14
15 aliases {
Clément Péron725089c2019-08-25 18:04:18 +020016 ethernet0 = &emac;
Clément Péron71a91772019-04-12 16:15:26 +020017 serial0 = &uart0;
18 };
19
20 chosen {
21 stdout-path = "serial0:115200n8";
22 };
23
Clément Péron725089c2019-08-25 18:04:18 +020024 connector {
25 compatible = "hdmi-connector";
26 type = "a";
Jernej Skrabec463304d2021-01-06 18:02:56 +010027 ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
Clément Péron725089c2019-08-25 18:04:18 +020028
29 port {
30 hdmi_con_in: endpoint {
31 remote-endpoint = <&hdmi_out_con>;
32 };
33 };
34 };
35
Jernej Skrabec463304d2021-01-06 18:02:56 +010036 ext_osc32k: ext_osc32k_clk {
37 #clock-cells = <0>;
38 compatible = "fixed-clock";
39 clock-frequency = <32768>;
40 clock-output-names = "ext_osc32k";
41 };
42
Clément Péron71a91772019-04-12 16:15:26 +020043 leds {
44 compatible = "gpio-leds";
45
Andre Przywara787f5a02021-05-25 01:20:25 +010046 led {
Clément Péron71a91772019-04-12 16:15:26 +020047 label = "beelink:white:power";
48 gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
49 default-state = "on";
50 };
51 };
52
53 reg_vcc5v: vcc5v {
54 /* board wide 5V supply directly from the DC jack */
55 compatible = "regulator-fixed";
56 regulator-name = "vcc-5v";
57 regulator-min-microvolt = <5000000>;
58 regulator-max-microvolt = <5000000>;
59 regulator-always-on;
60 };
Jernej Skrabec463304d2021-01-06 18:02:56 +010061
62 sound-spdif {
63 compatible = "simple-audio-card";
64 simple-audio-card,name = "sun50i-h6-spdif";
65
66 simple-audio-card,cpu {
67 sound-dai = <&spdif>;
68 };
69
70 simple-audio-card,codec {
71 sound-dai = <&spdif_out>;
72 };
73 };
74
75 spdif_out: spdif-out {
76 #sound-dai-cells = <0>;
77 compatible = "linux,spdif-dit";
78 };
79};
80
81&cpu0 {
82 cpu-supply = <&reg_dcdca>;
Clément Péron71a91772019-04-12 16:15:26 +020083};
84
Clément Péron725089c2019-08-25 18:04:18 +020085&de {
86 status = "okay";
87};
88
Jernej Skrabec463304d2021-01-06 18:02:56 +010089&dwc3 {
90 status = "okay";
91};
92
Clément Péron725089c2019-08-25 18:04:18 +020093&ehci0 {
94 status = "okay";
95};
96
97&emac {
98 pinctrl-names = "default";
99 pinctrl-0 = <&ext_rgmii_pins>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100100 phy-mode = "rgmii-id";
Clément Péron725089c2019-08-25 18:04:18 +0200101 phy-handle = <&ext_rgmii_phy>;
102 phy-supply = <&reg_aldo2>;
103 status = "okay";
104};
105
Jernej Skrabec463304d2021-01-06 18:02:56 +0100106&gpu {
107 mali-supply = <&reg_dcdcc>;
108 status = "okay";
109};
110
Clément Péron725089c2019-08-25 18:04:18 +0200111&hdmi {
112 status = "okay";
113};
114
115&hdmi_out {
116 hdmi_out_con: endpoint {
117 remote-endpoint = <&hdmi_con_in>;
118 };
119};
120
121&mdio {
122 ext_rgmii_phy: ethernet-phy@1 {
123 compatible = "ethernet-phy-ieee802.3-c22";
124 reg = <1>;
125 };
126};
127
Clément Péron71a91772019-04-12 16:15:26 +0200128&mmc0 {
129 vmmc-supply = <&reg_cldo1>;
130 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
131 bus-width = <4>;
132 status = "okay";
133};
134
135&mmc2 {
136 vmmc-supply = <&reg_cldo1>;
137 vqmmc-supply = <&reg_bldo2>;
138 non-removable;
139 cap-mmc-hw-reset;
140 bus-width = <8>;
141 status = "okay";
142};
143
Clément Péron725089c2019-08-25 18:04:18 +0200144&ohci0 {
145 status = "okay";
146};
147
148&pio {
149 vcc-pd-supply = <&reg_cldo1>;
150 vcc-pg-supply = <&reg_aldo1>;
151};
152
Samuel Holland399a01f2022-04-27 15:31:31 -0500153&r_ir {
154 linux,rc-map-name = "rc-beelink-gs1";
155 status = "okay";
156};
157
158&r_pio {
159 /*
160 * FIXME: We can't add that supply for now since it would
161 * create a circular dependency between pinctrl, the regulator
162 * and the RSB Bus.
163 *
164 * vcc-pl-supply = <&reg_aldo1>;
165 */
166 vcc-pm-supply = <&reg_aldo1>;
167};
168
169&r_rsb {
Clément Péron71a91772019-04-12 16:15:26 +0200170 status = "okay";
171
Samuel Holland399a01f2022-04-27 15:31:31 -0500172 axp805: pmic@745 {
Clément Péron71a91772019-04-12 16:15:26 +0200173 compatible = "x-powers,axp805", "x-powers,axp806";
Samuel Holland399a01f2022-04-27 15:31:31 -0500174 reg = <0x745>;
Clément Péron71a91772019-04-12 16:15:26 +0200175 interrupt-parent = <&r_intc>;
176 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
177 interrupt-controller;
178 #interrupt-cells = <1>;
179 x-powers,self-working-mode;
180 vina-supply = <&reg_vcc5v>;
181 vinb-supply = <&reg_vcc5v>;
182 vinc-supply = <&reg_vcc5v>;
183 vind-supply = <&reg_vcc5v>;
184 vine-supply = <&reg_vcc5v>;
185 aldoin-supply = <&reg_vcc5v>;
186 bldoin-supply = <&reg_vcc5v>;
187 cldoin-supply = <&reg_vcc5v>;
188
189 regulators {
190 reg_aldo1: aldo1 {
191 regulator-always-on;
192 regulator-min-microvolt = <3300000>;
193 regulator-max-microvolt = <3300000>;
194 regulator-name = "vcc-pl";
195 };
196
197 reg_aldo2: aldo2 {
198 regulator-min-microvolt = <3300000>;
199 regulator-max-microvolt = <3300000>;
200 regulator-name = "vcc-ac200";
201 regulator-enable-ramp-delay = <100000>;
202 };
203
204 reg_aldo3: aldo3 {
205 regulator-always-on;
206 regulator-min-microvolt = <3300000>;
207 regulator-max-microvolt = <3300000>;
208 regulator-name = "vcc25-dram";
209 };
210
211 reg_bldo1: bldo1 {
212 regulator-always-on;
213 regulator-min-microvolt = <1800000>;
214 regulator-max-microvolt = <1800000>;
215 regulator-name = "vcc-bias-pll";
216 };
217
218 reg_bldo2: bldo2 {
219 regulator-always-on;
220 regulator-min-microvolt = <1800000>;
221 regulator-max-microvolt = <1800000>;
222 regulator-name = "vcc-efuse-pcie-hdmi-io";
223 };
224
225 reg_bldo3: bldo3 {
226 regulator-always-on;
227 regulator-min-microvolt = <1800000>;
228 regulator-max-microvolt = <1800000>;
229 regulator-name = "vcc-dcxoio";
230 };
231
232 bldo4 {
233 /* unused */
234 };
235
236 reg_cldo1: cldo1 {
237 regulator-always-on;
238 regulator-min-microvolt = <3300000>;
239 regulator-max-microvolt = <3300000>;
240 regulator-name = "vcc-3v3";
241 };
242
243 reg_cldo2: cldo2 {
244 regulator-min-microvolt = <3300000>;
245 regulator-max-microvolt = <3300000>;
246 regulator-name = "vcc-wifi-1";
247 };
248
249 reg_cldo3: cldo3 {
250 regulator-min-microvolt = <3300000>;
251 regulator-max-microvolt = <3300000>;
252 regulator-name = "vcc-wifi-2";
253 };
254
255 reg_dcdca: dcdca {
256 regulator-always-on;
257 regulator-min-microvolt = <810000>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100258 regulator-max-microvolt = <1160000>;
259 regulator-ramp-delay = <2500>;
Clément Péron71a91772019-04-12 16:15:26 +0200260 regulator-name = "vdd-cpu";
261 };
262
263 reg_dcdcc: dcdcc {
Jernej Skrabec463304d2021-01-06 18:02:56 +0100264 regulator-enable-ramp-delay = <32000>;
Clément Péron71a91772019-04-12 16:15:26 +0200265 regulator-min-microvolt = <810000>;
266 regulator-max-microvolt = <1080000>;
Jernej Skrabec463304d2021-01-06 18:02:56 +0100267 regulator-ramp-delay = <2500>;
Clément Péron71a91772019-04-12 16:15:26 +0200268 regulator-name = "vdd-gpu";
269 };
270
271 reg_dcdcd: dcdcd {
272 regulator-always-on;
273 regulator-min-microvolt = <960000>;
274 regulator-max-microvolt = <960000>;
275 regulator-name = "vdd-sys";
276 };
277
278 reg_dcdce: dcdce {
279 regulator-always-on;
280 regulator-min-microvolt = <1200000>;
281 regulator-max-microvolt = <1200000>;
282 regulator-name = "vcc-dram";
283 };
284
285 sw {
286 /* unused */
287 };
288 };
289 };
290};
291
Jernej Skrabec463304d2021-01-06 18:02:56 +0100292&spdif {
293 status = "okay";
294};
295
Clément Péron71a91772019-04-12 16:15:26 +0200296&uart0 {
297 pinctrl-names = "default";
298 pinctrl-0 = <&uart0_ph_pins>;
299 status = "okay";
300};
Clément Péron725089c2019-08-25 18:04:18 +0200301
302&usb2otg {
303 dr_mode = "host";
304 status = "okay";
305};
306
307&usb2phy {
308 usb0_vbus-supply = <&reg_vcc5v>;
309 status = "okay";
310};
Jernej Skrabec463304d2021-01-06 18:02:56 +0100311
312&usb3phy {
313 status = "okay";
314};