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-gxbb-wetek.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2016 Andreas Färber
4  * Copyright (c) 2016 BayLibre, Inc.
5  * Author: Kevin Hilman <khilman@kernel.org>
6  */
7
8 #include "meson-gxbb.dtsi"
9
10 / {
11         aliases {
12                 serial0 = &uart_AO;
13                 ethernet0 = &ethmac;
14         };
15
16         chosen {
17                 stdout-path = "serial0:115200n8";
18         };
19
20         memory@0 {
21                 device_type = "memory";
22                 reg = <0x0 0x0 0x0 0x40000000>;
23         };
24
25         leds {
26                 compatible = "gpio-leds";
27
28                 led-system {
29                         label = "wetek-play:system-status";
30                         gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>;
31                         default-state = "on";
32                         panic-indicator;
33                 };
34         };
35
36         usb_pwr: regulator-usb-pwrs {
37                 compatible = "regulator-fixed";
38
39                 regulator-name = "USB_PWR";
40
41                 regulator-min-microvolt = <5000000>;
42                 regulator-max-microvolt = <5000000>;
43
44                 gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
45                 enable-active-high;
46         };
47
48         vddio_boot: regulator-vddio_boot {
49                 compatible = "regulator-fixed";
50                 regulator-name = "VDDIO_BOOT";
51                 regulator-min-microvolt = <1800000>;
52                 regulator-max-microvolt = <1800000>;
53         };
54
55         vddao_3v3: regulator-vddao_3v3 {
56                 compatible = "regulator-fixed";
57                 regulator-name = "VDDAO_3V3";
58                 regulator-min-microvolt = <3300000>;
59                 regulator-max-microvolt = <3300000>;
60         };
61
62         vddio_ao18: regulator-vddio_ao18 {
63                 compatible = "regulator-fixed";
64                 regulator-name = "VDDIO_AO18";
65                 regulator-min-microvolt = <1800000>;
66                 regulator-max-microvolt = <1800000>;
67         };
68
69         vcc_3v3: regulator-vcc_3v3 {
70                 compatible = "regulator-fixed";
71                 regulator-name = "VCC_3V3";
72                 regulator-min-microvolt = <3300000>;
73                 regulator-max-microvolt = <3300000>;
74         };
75
76         emmc_pwrseq: emmc-pwrseq {
77                 compatible = "mmc-pwrseq-emmc";
78                 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
79         };
80
81         wifi32k: wifi32k {
82                 compatible = "pwm-clock";
83                 #clock-cells = <0>;
84                 clock-frequency = <32768>;
85                 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
86         };
87
88         sdio_pwrseq: sdio-pwrseq {
89                 compatible = "mmc-pwrseq-simple";
90                 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
91                 clocks = <&wifi32k>;
92                 clock-names = "ext_clock";
93         };
94
95         cvbs-connector {
96                 compatible = "composite-video-connector";
97
98                 port {
99                         cvbs_connector_in: endpoint {
100                                 remote-endpoint = <&cvbs_vdac_out>;
101                         };
102                 };
103         };
104
105         hdmi-connector {
106                 compatible = "hdmi-connector";
107                 type = "a";
108
109                 port {
110                         hdmi_connector_in: endpoint {
111                                 remote-endpoint = <&hdmi_tx_tmds_out>;
112                         };
113                 };
114         };
115 };
116
117 &cec_AO {
118         status = "okay";
119         pinctrl-0 = <&ao_cec_pins>;
120         pinctrl-names = "default";
121         hdmi-phandle = <&hdmi_tx>;
122 };
123
124 &cvbs_vdac_port {
125         cvbs_vdac_out: endpoint {
126                 remote-endpoint = <&cvbs_connector_in>;
127         };
128 };
129
130 &ethmac {
131         status = "okay";
132         pinctrl-0 = <&eth_rgmii_pins>;
133         pinctrl-names = "default";
134
135         phy-handle = <&eth_phy0>;
136         phy-mode = "rgmii";
137
138         amlogic,tx-delay-ns = <2>;
139
140         mdio {
141                 compatible = "snps,dwmac-mdio";
142                 #address-cells = <1>;
143                 #size-cells = <0>;
144
145                 eth_phy0: ethernet-phy@0 {
146                         /* Realtek RTL8211F (0x001cc916) */
147                         reg = <0>;
148
149                         reset-assert-us = <10000>;
150                         reset-deassert-us = <80000>;
151                         reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
152
153                         interrupt-parent = <&gpio_intc>;
154                         /* MAC_INTR on GPIOZ_15 */
155                         interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
156                 };
157         };
158 };
159
160 &hdmi_tx {
161         status = "okay";
162         pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
163         pinctrl-names = "default";
164 };
165
166 &hdmi_tx_tmds_port {
167         hdmi_tx_tmds_out: endpoint {
168                 remote-endpoint = <&hdmi_connector_in>;
169         };
170 };
171
172 &ir {
173         status = "okay";
174         pinctrl-0 = <&remote_input_ao_pins>;
175         pinctrl-names = "default";
176 };
177
178 &pwm_ef {
179         status = "okay";
180         pinctrl-0 = <&pwm_e_pins>;
181         pinctrl-names = "default";
182         clocks = <&clkc CLKID_FCLK_DIV4>;
183         clock-names = "clkin0";
184 };
185
186 &saradc {
187         status = "okay";
188         vref-supply = <&vddio_ao18>;
189 };
190
191 /* Wireless SDIO Module */
192 &sd_emmc_a {
193         status = "okay";
194         pinctrl-0 = <&sdio_pins>;
195         pinctrl-1 = <&sdio_clk_gate_pins>;
196         pinctrl-names = "default", "clk-gate";
197         #address-cells = <1>;
198         #size-cells = <0>;
199
200         bus-width = <4>;
201         cap-sd-highspeed;
202         max-frequency = <50000000>;
203
204         non-removable;
205         disable-wp;
206
207         /* WiFi firmware requires power to be kept while in suspend */
208         keep-power-in-suspend;
209
210         mmc-pwrseq = <&sdio_pwrseq>;
211
212         vmmc-supply = <&vddao_3v3>;
213         vqmmc-supply = <&vddio_boot>;
214
215         brcmf: wifi@1 {
216                 reg = <1>;
217                 compatible = "brcm,bcm4329-fmac";
218         };
219 };
220
221 /* SD card */
222 &sd_emmc_b {
223         status = "okay";
224         pinctrl-0 = <&sdcard_pins>;
225         pinctrl-1 = <&sdcard_clk_gate_pins>;
226         pinctrl-names = "default", "clk-gate";
227
228         bus-width = <4>;
229         cap-sd-highspeed;
230         max-frequency = <50000000>;
231         disable-wp;
232
233         cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
234
235         vmmc-supply = <&vddao_3v3>;
236         vqmmc-supply = <&vcc_3v3>;
237 };
238
239 /* eMMC */
240 &sd_emmc_c {
241         status = "okay";
242         pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
243         pinctrl-1 = <&emmc_clk_gate_pins>;
244         pinctrl-names = "default", "clk-gate";
245
246         bus-width = <8>;
247         cap-mmc-highspeed;
248         max-frequency = <200000000>;
249         non-removable;
250         disable-wp;
251         mmc-ddr-1_8v;
252         mmc-hs200-1_8v;
253
254         mmc-pwrseq = <&emmc_pwrseq>;
255         vmmc-supply = <&vcc_3v3>;
256         vqmmc-supply = <&vddio_boot>;
257 };
258
259 /* This is connected to the Bluetooth module: */
260 &uart_A {
261         status = "okay";
262         pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
263         pinctrl-names = "default";
264         uart-has-rtscts;
265
266         bluetooth {
267                 compatible = "brcm,bcm43438-bt";
268                 shutdown-gpios = <&gpio GPIOX_20 GPIO_ACTIVE_HIGH>;
269         };
270 };
271
272 /* This UART is brought out to the DB9 connector */
273 &uart_AO {
274         status = "okay";
275         pinctrl-0 = <&uart_ao_a_pins>;
276         pinctrl-names = "default";
277 };
278
279 &usb0_phy {
280         status = "okay";
281         phy-supply = <&usb_pwr>;
282 };
283
284 &usb0 {
285         status = "okay";
286 };