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		ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
29
30		port {
31			hdmi_con_in: endpoint {
32				remote-endpoint = <&hdmi_out_con>;
33			};
34		};
35	};
36
37	leds {
38		compatible = "gpio-leds";
39
40		power {
41			label = "beelink:white:power";
42			gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
43			default-state = "on";
44		};
45	};
46
47	reg_vcc5v: vcc5v {
48		/* board wide 5V supply directly from the DC jack */
49		compatible = "regulator-fixed";
50		regulator-name = "vcc-5v";
51		regulator-min-microvolt = <5000000>;
52		regulator-max-microvolt = <5000000>;
53		regulator-always-on;
54	};
55
56	sound-spdif {
57		compatible = "simple-audio-card";
58		simple-audio-card,name = "sun50i-h6-spdif";
59
60		simple-audio-card,cpu {
61			sound-dai = <&spdif>;
62		};
63
64		simple-audio-card,codec {
65			sound-dai = <&spdif_out>;
66		};
67	};
68
69	spdif_out: spdif-out {
70		#sound-dai-cells = <0>;
71		compatible = "linux,spdif-dit";
72	};
73};
74
75&de {
76	status = "okay";
77};
78
79&ehci0 {
80	status = "okay";
81};
82
83&emac {
84	pinctrl-names = "default";
85	pinctrl-0 = <&ext_rgmii_pins>;
86	phy-mode = "rgmii";
87	phy-handle = <&ext_rgmii_phy>;
88	phy-supply = <&reg_aldo2>;
89	status = "okay";
90};
91
92&hdmi {
93	status = "okay";
94};
95
96&hdmi_out {
97	hdmi_out_con: endpoint {
98		remote-endpoint = <&hdmi_con_in>;
99	};
100};
101
102&mdio {
103	ext_rgmii_phy: ethernet-phy@1 {
104		compatible = "ethernet-phy-ieee802.3-c22";
105		reg = <1>;
106	};
107};
108
109&mmc0 {
110	vmmc-supply = <&reg_cldo1>;
111	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
112	bus-width = <4>;
113	status = "okay";
114};
115
116&mmc2 {
117	vmmc-supply = <&reg_cldo1>;
118	vqmmc-supply = <&reg_bldo2>;
119	non-removable;
120	cap-mmc-hw-reset;
121	bus-width = <8>;
122	status = "okay";
123};
124
125&ohci0 {
126	status = "okay";
127};
128
129&pio {
130	vcc-pd-supply = <&reg_cldo1>;
131	vcc-pg-supply = <&reg_aldo1>;
132};
133
134&r_i2c {
135	status = "okay";
136
137	axp805: pmic@36 {
138		compatible = "x-powers,axp805", "x-powers,axp806";
139		reg = <0x36>;
140		interrupt-parent = <&r_intc>;
141		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
142		interrupt-controller;
143		#interrupt-cells = <1>;
144		x-powers,self-working-mode;
145		vina-supply = <&reg_vcc5v>;
146		vinb-supply = <&reg_vcc5v>;
147		vinc-supply = <&reg_vcc5v>;
148		vind-supply = <&reg_vcc5v>;
149		vine-supply = <&reg_vcc5v>;
150		aldoin-supply = <&reg_vcc5v>;
151		bldoin-supply = <&reg_vcc5v>;
152		cldoin-supply = <&reg_vcc5v>;
153
154		regulators {
155			reg_aldo1: aldo1 {
156				regulator-always-on;
157				regulator-min-microvolt = <3300000>;
158				regulator-max-microvolt = <3300000>;
159				regulator-name = "vcc-pl";
160			};
161
162			reg_aldo2: aldo2 {
163				regulator-min-microvolt = <3300000>;
164				regulator-max-microvolt = <3300000>;
165				regulator-name = "vcc-ac200";
166				regulator-enable-ramp-delay = <100000>;
167			};
168
169			reg_aldo3: aldo3 {
170				regulator-always-on;
171				regulator-min-microvolt = <3300000>;
172				regulator-max-microvolt = <3300000>;
173				regulator-name = "vcc25-dram";
174			};
175
176			reg_bldo1: bldo1 {
177				regulator-always-on;
178				regulator-min-microvolt = <1800000>;
179				regulator-max-microvolt = <1800000>;
180				regulator-name = "vcc-bias-pll";
181			};
182
183			reg_bldo2: bldo2 {
184				regulator-always-on;
185				regulator-min-microvolt = <1800000>;
186				regulator-max-microvolt = <1800000>;
187				regulator-name = "vcc-efuse-pcie-hdmi-io";
188			};
189
190			reg_bldo3: bldo3 {
191				regulator-always-on;
192				regulator-min-microvolt = <1800000>;
193				regulator-max-microvolt = <1800000>;
194				regulator-name = "vcc-dcxoio";
195			};
196
197			bldo4 {
198				/* unused */
199			};
200
201			reg_cldo1: cldo1 {
202				regulator-always-on;
203				regulator-min-microvolt = <3300000>;
204				regulator-max-microvolt = <3300000>;
205				regulator-name = "vcc-3v3";
206			};
207
208			reg_cldo2: cldo2 {
209				regulator-min-microvolt = <3300000>;
210				regulator-max-microvolt = <3300000>;
211				regulator-name = "vcc-wifi-1";
212			};
213
214			reg_cldo3: cldo3 {
215				regulator-min-microvolt = <3300000>;
216				regulator-max-microvolt = <3300000>;
217				regulator-name = "vcc-wifi-2";
218			};
219
220			reg_dcdca: dcdca {
221				regulator-always-on;
222				regulator-min-microvolt = <810000>;
223				regulator-max-microvolt = <1080000>;
224				regulator-name = "vdd-cpu";
225			};
226
227			reg_dcdcc: dcdcc {
228				regulator-min-microvolt = <810000>;
229				regulator-max-microvolt = <1080000>;
230				regulator-name = "vdd-gpu";
231			};
232
233			reg_dcdcd: dcdcd {
234				regulator-always-on;
235				regulator-min-microvolt = <960000>;
236				regulator-max-microvolt = <960000>;
237				regulator-name = "vdd-sys";
238			};
239
240			reg_dcdce: dcdce {
241				regulator-always-on;
242				regulator-min-microvolt = <1200000>;
243				regulator-max-microvolt = <1200000>;
244				regulator-name = "vcc-dram";
245			};
246
247			sw {
248				/* unused */
249			};
250		};
251	};
252};
253
254&r_ir {
255	status = "okay";
256};
257
258&r_pio {
259	/*
260	 * PL0 and PL1 are used for PMIC I2C
261	 * don't enable the pl-supply else
262	 * it will fail at boot
263	 *
264	 * vcc-pl-supply = <&reg_aldo1>;
265	 */
266	vcc-pm-supply = <&reg_aldo1>;
267};
268
269&spdif {
270	status = "okay";
271};
272
273&uart0 {
274	pinctrl-names = "default";
275	pinctrl-0 = <&uart0_ph_pins>;
276	status = "okay";
277};
278
279&usb2otg {
280	dr_mode = "host";
281	status = "okay";
282};
283
284&usb2phy {
285	usb0_vbus-supply = <&reg_vcc5v>;
286	status = "okay";
287};
288