Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[sfrench/cifs-2.6.git] / arch / arm64 / boot / dts / allwinner / sun50i-h6-beelink-gs1.dts
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 };