Merge tag 'timers-urgent-2020-12-27' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / amlogic / meson-g12b-w400.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2019 BayLibre, SAS
4  * Author: Neil Armstrong <narmstrong@baylibre.com>
5  * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
6  */
7
8 /dts-v1/;
9
10 #include "meson-g12b.dtsi"
11 #include "meson-g12b-s922x.dtsi"
12 #include <dt-bindings/input/input.h>
13 #include <dt-bindings/gpio/meson-g12a-gpio.h>
14
15 / {
16         aliases {
17                 serial0 = &uart_AO;
18                 ethernet0 = &ethmac;
19         };
20
21         chosen {
22                 stdout-path = "serial0:115200n8";
23         };
24
25         memory@0 {
26                 device_type = "memory";
27                 reg = <0x0 0x0 0x0 0x40000000>;
28         };
29
30         emmc_pwrseq: emmc-pwrseq {
31                 compatible = "mmc-pwrseq-emmc";
32                 reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
33         };
34
35         sdio_pwrseq: sdio-pwrseq {
36                 compatible = "mmc-pwrseq-simple";
37                 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
38                 clocks = <&wifi32k>;
39                 clock-names = "ext_clock";
40         };
41
42         flash_1v8: regulator-flash_1v8 {
43                 compatible = "regulator-fixed";
44                 regulator-name = "FLASH_1V8";
45                 regulator-min-microvolt = <1800000>;
46                 regulator-max-microvolt = <1800000>;
47                 vin-supply = <&vcc_3v3>;
48                 regulator-always-on;
49         };
50
51         main_12v: regulator-main_12v {
52                 compatible = "regulator-fixed";
53                 regulator-name = "12V";
54                 regulator-min-microvolt = <12000000>;
55                 regulator-max-microvolt = <12000000>;
56                 regulator-always-on;
57         };
58
59         vcc_5v: regulator-vcc_5v {
60                 compatible = "regulator-fixed";
61                 regulator-name = "VCC_5V";
62                 regulator-min-microvolt = <5000000>;
63                 regulator-max-microvolt = <5000000>;
64                 vin-supply = <&main_12v>;
65
66                 gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
67                 enable-active-high;
68         };
69
70         vcc_1v8: regulator-vcc_1v8 {
71                 compatible = "regulator-fixed";
72                 regulator-name = "VCC_1V8";
73                 regulator-min-microvolt = <1800000>;
74                 regulator-max-microvolt = <1800000>;
75                 vin-supply = <&vcc_3v3>;
76                 regulator-always-on;
77         };
78
79         vcc_3v3: regulator-vcc_3v3 {
80                 compatible = "regulator-fixed";
81                 regulator-name = "VCC_3V3";
82                 regulator-min-microvolt = <3300000>;
83                 regulator-max-microvolt = <3300000>;
84                 vin-supply = <&vddao_3v3>;
85                 regulator-always-on;
86                 /* FIXME: actually controlled by VDDCPU_B_EN */
87         };
88
89         vddcpu_a: regulator-vddcpu-a {
90                 /*
91                  * MP1653 Regulator.
92                  */
93                 compatible = "pwm-regulator";
94
95                 regulator-name = "VDDCPU_A";
96                 regulator-min-microvolt = <721000>;
97                 regulator-max-microvolt = <1022000>;
98
99                 vin-supply = <&main_12v>;
100
101                 pwms = <&pwm_ab 0 1250 0>;
102                 pwm-dutycycle-range = <100 0>;
103
104                 regulator-boot-on;
105                 regulator-always-on;
106         };
107
108         vddcpu_b: regulator-vddcpu-b {
109                 /*
110                  * MP1652 Regulator.
111                  */
112                 compatible = "pwm-regulator";
113
114                 regulator-name = "VDDCPU_B";
115                 regulator-min-microvolt = <721000>;
116                 regulator-max-microvolt = <1022000>;
117
118                 vin-supply = <&main_12v>;
119
120                 pwms = <&pwm_AO_cd 1 1250 0>;
121                 pwm-dutycycle-range = <100 0>;
122
123                 regulator-boot-on;
124                 regulator-always-on;
125         };
126
127         usb1_pow: regulator-usb1-pow {
128                 compatible = "regulator-fixed";
129                 regulator-name = "USB1_POW";
130                 regulator-min-microvolt = <5000000>;
131                 regulator-max-microvolt = <5000000>;
132                 vin-supply = <&vcc_5v>;
133
134                 /* connected to SY6280A Power Switch */
135                 gpio = <&gpio GPIOA_8 GPIO_ACTIVE_HIGH>;
136                 enable-active-high;
137         };
138
139         usb_pwr_en: regulator-usb-pwr-en {
140                 compatible = "regulator-fixed";
141                 regulator-name = "USB_PWR_EN";
142                 regulator-min-microvolt = <5000000>;
143                 regulator-max-microvolt = <5000000>;
144                 vin-supply = <&vcc_5v>;
145
146                 /* Connected to USB3 Type-A Port power enable */
147                 gpio = <&gpio GPIOAO_7 GPIO_ACTIVE_HIGH>;
148                 enable-active-high;
149         };
150
151         vddao_1v8: regulator-vddao-1v8 {
152                 compatible = "regulator-fixed";
153                 regulator-name = "VDDAO_1V8";
154                 regulator-min-microvolt = <1800000>;
155                 regulator-max-microvolt = <1800000>;
156                 vin-supply = <&vddao_3v3>;
157                 regulator-always-on;
158         };
159
160         vddao_3v3: regulator-vddao-3v3 {
161                 compatible = "regulator-fixed";
162                 regulator-name = "VDDAO_3V3";
163                 regulator-min-microvolt = <3300000>;
164                 regulator-max-microvolt = <3300000>;
165                 vin-supply = <&main_12v>;
166                 regulator-always-on;
167         };
168
169         cvbs-connector {
170                 compatible = "composite-video-connector";
171
172                 port {
173                         cvbs_connector_in: endpoint {
174                                 remote-endpoint = <&cvbs_vdac_out>;
175                         };
176                 };
177         };
178
179         hdmi-connector {
180                 compatible = "hdmi-connector";
181                 type = "a";
182
183                 port {
184                         hdmi_connector_in: endpoint {
185                                 remote-endpoint = <&hdmi_tx_tmds_out>;
186                         };
187                 };
188         };
189
190         wifi32k: wifi32k {
191                 compatible = "pwm-clock";
192                 #clock-cells = <0>;
193                 clock-frequency = <32768>;
194                 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
195         };
196 };
197
198 &cec_AO {
199         pinctrl-0 = <&cec_ao_a_h_pins>;
200         pinctrl-names = "default";
201         status = "disabled";
202         hdmi-phandle = <&hdmi_tx>;
203 };
204
205 &cecb_AO {
206         pinctrl-0 = <&cec_ao_b_h_pins>;
207         pinctrl-names = "default";
208         status = "okay";
209         hdmi-phandle = <&hdmi_tx>;
210 };
211
212 &cpu0 {
213         cpu-supply = <&vddcpu_b>;
214         operating-points-v2 = <&cpu_opp_table_0>;
215         clocks = <&clkc CLKID_CPU_CLK>;
216         clock-latency = <50000>;
217 };
218
219 &cpu1 {
220         cpu-supply = <&vddcpu_b>;
221         operating-points-v2 = <&cpu_opp_table_0>;
222         clocks = <&clkc CLKID_CPU_CLK>;
223         clock-latency = <50000>;
224 };
225
226 &cpu100 {
227         cpu-supply = <&vddcpu_a>;
228         operating-points-v2 = <&cpub_opp_table_1>;
229         clocks = <&clkc CLKID_CPUB_CLK>;
230         clock-latency = <50000>;
231 };
232
233 &cpu101 {
234         cpu-supply = <&vddcpu_a>;
235         operating-points-v2 = <&cpub_opp_table_1>;
236         clocks = <&clkc CLKID_CPUB_CLK>;
237         clock-latency = <50000>;
238 };
239
240 &cpu102 {
241         cpu-supply = <&vddcpu_a>;
242         operating-points-v2 = <&cpub_opp_table_1>;
243         clocks = <&clkc CLKID_CPUB_CLK>;
244         clock-latency = <50000>;
245 };
246
247 &cpu103 {
248         cpu-supply = <&vddcpu_a>;
249         operating-points-v2 = <&cpub_opp_table_1>;
250         clocks = <&clkc CLKID_CPUB_CLK>;
251         clock-latency = <50000>;
252 };
253
254 &cvbs_vdac_port {
255         cvbs_vdac_out: endpoint {
256                 remote-endpoint = <&cvbs_connector_in>;
257         };
258 };
259
260 &ext_mdio {
261         external_phy: ethernet-phy@0 {
262                 /* Realtek RTL8211F (0x001cc916) */
263                 reg = <0>;
264                 max-speed = <1000>;
265
266                 reset-assert-us = <10000>;
267                 reset-deassert-us = <80000>;
268                 reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
269
270                 interrupt-parent = <&gpio_intc>;
271                 /* MAC_INTR on GPIOZ_14 */
272                 interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
273         };
274 };
275
276 &ethmac {
277         pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
278         pinctrl-names = "default";
279         status = "okay";
280         phy-mode = "rgmii";
281         phy-handle = <&external_phy>;
282         amlogic,tx-delay-ns = <2>;
283 };
284
285 &hdmi_tx {
286         status = "okay";
287         pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
288         pinctrl-names = "default";
289         hdmi-supply = <&vcc_5v>;
290 };
291
292 &hdmi_tx_tmds_port {
293         hdmi_tx_tmds_out: endpoint {
294                 remote-endpoint = <&hdmi_connector_in>;
295         };
296 };
297
298 &ir {
299         status = "okay";
300         pinctrl-0 = <&remote_input_ao_pins>;
301         pinctrl-names = "default";
302 };
303
304 &pwm_ab {
305         pinctrl-0 = <&pwm_a_e_pins>;
306         pinctrl-names = "default";
307         clocks = <&xtal>;
308         clock-names = "clkin0";
309         status = "okay";
310 };
311
312 &pwm_AO_cd {
313         pinctrl-0 = <&pwm_ao_d_e_pins>;
314         pinctrl-names = "default";
315         clocks = <&xtal>;
316         clock-names = "clkin1";
317         status = "okay";
318 };
319
320 &pwm_ef {
321         pinctrl-0 = <&pwm_e_pins>;
322         pinctrl-names = "default";
323         clocks = <&xtal>;
324         clock-names = "clkin0";
325         status = "okay";
326 };
327
328 /* SDIO */
329 &sd_emmc_a {
330         status = "okay";
331         pinctrl-0 = <&sdio_pins>;
332         pinctrl-1 = <&sdio_clk_gate_pins>;
333         pinctrl-names = "default", "clk-gate";
334         #address-cells = <1>;
335         #size-cells = <0>;
336
337         bus-width = <4>;
338         cap-sd-highspeed;
339         max-frequency = <100000000>;
340
341         /* WiFi firmware requires power to be kept while in suspend */
342         keep-power-in-suspend;
343
344         non-removable;
345         disable-wp;
346
347         mmc-pwrseq = <&sdio_pwrseq>;
348
349         vmmc-supply = <&vddao_3v3>;
350         vqmmc-supply = <&vddao_1v8>;
351
352         brcmf: wifi@1 {
353                 reg = <1>;
354                 compatible = "brcm,bcm4329-fmac";
355         };
356 };
357
358 /* SD card */
359 &sd_emmc_b {
360         status = "okay";
361         pinctrl-0 = <&sdcard_c_pins>;
362         pinctrl-1 = <&sdcard_clk_gate_c_pins>;
363         pinctrl-names = "default", "clk-gate";
364
365         bus-width = <4>;
366         cap-sd-highspeed;
367         max-frequency = <50000000>;
368         disable-wp;
369
370         cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
371         vmmc-supply = <&vddao_3v3>;
372         vqmmc-supply = <&vddao_3v3>;
373 };
374
375 /* eMMC */
376 &sd_emmc_c {
377         status = "okay";
378         pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
379         pinctrl-1 = <&emmc_clk_gate_pins>;
380         pinctrl-names = "default", "clk-gate";
381
382         bus-width = <8>;
383         cap-mmc-highspeed;
384         max-frequency = <100000000>;
385         disable-wp;
386
387         mmc-pwrseq = <&emmc_pwrseq>;
388         vmmc-supply = <&vcc_3v3>;
389         vqmmc-supply = <&flash_1v8>;
390 };
391
392 &uart_A {
393         status = "okay";
394         pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
395         pinctrl-names = "default";
396         uart-has-rtscts;
397
398         bluetooth {
399                 compatible = "brcm,bcm43438-bt";
400                 shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
401                 max-speed = <2000000>;
402                 clocks = <&wifi32k>;
403                 clock-names = "lpo";
404         };
405 };
406
407 &uart_AO {
408         status = "okay";
409         pinctrl-0 = <&uart_ao_a_pins>;
410         pinctrl-names = "default";
411 };
412
413 &usb {
414         status = "okay";
415         dr_mode = "host";
416         vbus-supply = <&usb_pwr_en>;
417 };
418
419 &usb2_phy0 {
420         phy-supply = <&usb1_pow>;
421 };
422
423 &usb2_phy1 {
424         phy-supply = <&usb1_pow>;
425 };