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