1// SPDX-License-Identifier: (GPL-2.0+ or MIT)
2/*
3 * Copyright (C) 2019 Clément Péron <peron.clem@gmail.com>
4 */
5
6/dts-v1/;
7
8#include "sun50i-h6.dtsi"
9
10#include <dt-bindings/gpio/gpio.h>
11
12/ {
13	model = "Beelink GS1";
14	compatible = "azw,beelink-gs1", "allwinner,sun50i-h6";
15
16	aliases {
17		ethernet0 = &emac;
18		serial0 = &uart0;
19	};
20
21	chosen {
22		stdout-path = "serial0:115200n8";
23	};
24
25	connector {
26		compatible = "hdmi-connector";
27		type = "a";
28
29		port {
30			hdmi_con_in: endpoint {
31				remote-endpoint = <&hdmi_out_con>;
32			};
33		};
34	};
35
36	leds {
37		compatible = "gpio-leds";
38
39		power {
40			label = "beelink:white:power";
41			gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
42			default-state = "on";
43		};
44	};
45
46	reg_vcc5v: vcc5v {
47		/* board wide 5V supply directly from the DC jack */
48		compatible = "regulator-fixed";
49		regulator-name = "vcc-5v";
50		regulator-min-microvolt = <5000000>;
51		regulator-max-microvolt = <5000000>;
52		regulator-always-on;
53	};
54};
55
56&de {
57	status = "okay";
58};
59
60&ehci0 {
61	status = "okay";
62};
63
64&emac {
65	pinctrl-names = "default";
66	pinctrl-0 = <&ext_rgmii_pins>;
67	phy-mode = "rgmii";
68	phy-handle = <&ext_rgmii_phy>;
69	phy-supply = <&reg_aldo2>;
70	status = "okay";
71};
72
73&hdmi {
74	status = "okay";
75};
76
77&hdmi_out {
78	hdmi_out_con: endpoint {
79		remote-endpoint = <&hdmi_con_in>;
80	};
81};
82
83&mdio {
84	ext_rgmii_phy: ethernet-phy@1 {
85		compatible = "ethernet-phy-ieee802.3-c22";
86		reg = <1>;
87	};
88};
89
90&mmc0 {
91	vmmc-supply = <&reg_cldo1>;
92	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
93	bus-width = <4>;
94	status = "okay";
95};
96
97&mmc2 {
98	vmmc-supply = <&reg_cldo1>;
99	vqmmc-supply = <&reg_bldo2>;
100	non-removable;
101	cap-mmc-hw-reset;
102	bus-width = <8>;
103	status = "okay";
104};
105
106&ohci0 {
107	status = "okay";
108};
109
110&pio {
111	vcc-pd-supply = <&reg_cldo1>;
112	vcc-pg-supply = <&reg_aldo1>;
113};
114
115&r_i2c {
116	status = "okay";
117
118	axp805: pmic@36 {
119		compatible = "x-powers,axp805", "x-powers,axp806";
120		reg = <0x36>;
121		interrupt-parent = <&r_intc>;
122		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
123		interrupt-controller;
124		#interrupt-cells = <1>;
125		x-powers,self-working-mode;
126		vina-supply = <&reg_vcc5v>;
127		vinb-supply = <&reg_vcc5v>;
128		vinc-supply = <&reg_vcc5v>;
129		vind-supply = <&reg_vcc5v>;
130		vine-supply = <&reg_vcc5v>;
131		aldoin-supply = <&reg_vcc5v>;
132		bldoin-supply = <&reg_vcc5v>;
133		cldoin-supply = <&reg_vcc5v>;
134
135		regulators {
136			reg_aldo1: aldo1 {
137				regulator-always-on;
138				regulator-min-microvolt = <3300000>;
139				regulator-max-microvolt = <3300000>;
140				regulator-name = "vcc-pl";
141			};
142
143			reg_aldo2: aldo2 {
144				regulator-min-microvolt = <3300000>;
145				regulator-max-microvolt = <3300000>;
146				regulator-name = "vcc-ac200";
147				regulator-enable-ramp-delay = <100000>;
148			};
149
150			reg_aldo3: aldo3 {
151				regulator-always-on;
152				regulator-min-microvolt = <3300000>;
153				regulator-max-microvolt = <3300000>;
154				regulator-name = "vcc25-dram";
155			};
156
157			reg_bldo1: bldo1 {
158				regulator-always-on;
159				regulator-min-microvolt = <1800000>;
160				regulator-max-microvolt = <1800000>;
161				regulator-name = "vcc-bias-pll";
162			};
163
164			reg_bldo2: bldo2 {
165				regulator-always-on;
166				regulator-min-microvolt = <1800000>;
167				regulator-max-microvolt = <1800000>;
168				regulator-name = "vcc-efuse-pcie-hdmi-io";
169			};
170
171			reg_bldo3: bldo3 {
172				regulator-always-on;
173				regulator-min-microvolt = <1800000>;
174				regulator-max-microvolt = <1800000>;
175				regulator-name = "vcc-dcxoio";
176			};
177
178			bldo4 {
179				/* unused */
180			};
181
182			reg_cldo1: cldo1 {
183				regulator-always-on;
184				regulator-min-microvolt = <3300000>;
185				regulator-max-microvolt = <3300000>;
186				regulator-name = "vcc-3v3";
187			};
188
189			reg_cldo2: cldo2 {
190				regulator-min-microvolt = <3300000>;
191				regulator-max-microvolt = <3300000>;
192				regulator-name = "vcc-wifi-1";
193			};
194
195			reg_cldo3: cldo3 {
196				regulator-min-microvolt = <3300000>;
197				regulator-max-microvolt = <3300000>;
198				regulator-name = "vcc-wifi-2";
199			};
200
201			reg_dcdca: dcdca {
202				regulator-always-on;
203				regulator-min-microvolt = <810000>;
204				regulator-max-microvolt = <1080000>;
205				regulator-name = "vdd-cpu";
206			};
207
208			reg_dcdcc: dcdcc {
209				regulator-min-microvolt = <810000>;
210				regulator-max-microvolt = <1080000>;
211				regulator-name = "vdd-gpu";
212			};
213
214			reg_dcdcd: dcdcd {
215				regulator-always-on;
216				regulator-min-microvolt = <960000>;
217				regulator-max-microvolt = <960000>;
218				regulator-name = "vdd-sys";
219			};
220
221			reg_dcdce: dcdce {
222				regulator-always-on;
223				regulator-min-microvolt = <1200000>;
224				regulator-max-microvolt = <1200000>;
225				regulator-name = "vcc-dram";
226			};
227
228			sw {
229				/* unused */
230			};
231		};
232	};
233};
234
235&r_pio {
236	/*
237	 * PL0 and PL1 are used for PMIC I2C
238	 * don't enable the pl-supply else
239	 * it will fail at boot
240	 *
241	 * vcc-pl-supply = <&reg_aldo1>;
242	 */
243	vcc-pm-supply = <&reg_aldo1>;
244};
245
246&uart0 {
247	pinctrl-names = "default";
248	pinctrl-0 = <&uart0_ph_pins>;
249	status = "okay";
250};
251
252&usb2otg {
253	dr_mode = "host";
254	status = "okay";
255};
256
257&usb2phy {
258	usb0_vbus-supply = <&reg_vcc5v>;
259	status = "okay";
260};
261