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