Merge tag 'ieee802154-for-davem-2020-09-08' of git://git.kernel.org/pub/scm/linux...
[linux-2.6-microblaze.git] / arch / arm / boot / dts / meson8b-ec100.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2018 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
4  */
5
6 /dts-v1/;
7
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/input/input.h>
10
11 #include "meson8b.dtsi"
12
13 / {
14         model = "Endless Computers Endless Mini";
15         compatible = "endless,ec100", "amlogic,meson8b";
16
17         aliases {
18                 serial0 = &uart_AO;
19         };
20
21         chosen {
22                 stdout-path = "serial0:115200n8";
23         };
24
25         memory {
26                 device_type = "memory";
27                 reg = <0x40000000 0x40000000>;
28         };
29
30         emmc_pwrseq: emmc-pwrseq {
31                 compatible = "mmc-pwrseq-emmc";
32                 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
33         };
34
35         gpio-keys {
36                 compatible = "gpio-keys-polled";
37                 #address-cells = <1>;
38                 #size-cells = <0>;
39                 poll-interval = <100>;
40
41                 pal-switch {
42                         label = "pal";
43                         linux,input-type = <EV_SW>;
44                         linux,code = <KEY_SWITCHVIDEOMODE>;
45                         gpios = <&gpio GPIOH_7 GPIO_ACTIVE_LOW>;
46                 };
47
48                 ntsc-switch {
49                         label = "ntsc";
50                         linux,input-type = <EV_SW>;
51                         linux,code = <KEY_SWITCHVIDEOMODE>;
52                         gpios = <&gpio GPIOH_8 GPIO_ACTIVE_HIGH>;
53                 };
54
55                 power-button {
56                         label = "power";
57                         linux,code = <KEY_POWER>;
58                         gpios = <&gpio GPIOH_9 GPIO_ACTIVE_LOW>;
59                 };
60         };
61
62         gpio-poweroff {
63                 compatible = "gpio-poweroff";
64                 /*
65                  * shutdown is managed by the EC (embedded micro-controller)
66                  * which is configured through GPIOAO_2 (poweroff GPIO) and
67                  * GPIOAO_7 (power LED, which has to go LOW as well).
68                  */
69                 gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
70                 timeout-ms = <20000>;
71         };
72
73         iio-hwmon {
74                 compatible = "iio-hwmon";
75                 io-channels = <&saradc 8>;
76         };
77
78         leds {
79                 compatible = "gpio-leds";
80
81                 power {
82                         label = "ec100:red:power";
83                         /*
84                          * Needs to go LOW (together with the poweroff GPIO)
85                          * during shutdown to allow the EC (embedded
86                          * micro-controller) to shutdown the system. Setting
87                          * the output to LOW signals the EC to start a
88                          * "breathing"/pulsing effect until the power is fully
89                          * turned off.
90                          */
91                         gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_HIGH>;
92                         default-state = "on";
93                 };
94         };
95
96         rtc32k_xtal: rtc32k-xtal-clk {
97                 /* X2 in the schematics */
98                 compatible = "fixed-clock";
99                 clock-frequency = <32768>;
100                 clock-output-names = "RTC32K";
101                 #clock-cells = <0>;
102         };
103
104         usb_vbus: regulator-usb-vbus {
105                 /*
106                  * Silergy SY6288CCAC-GP 2A Power Distribution Switch.
107                  */
108                 compatible = "regulator-fixed";
109
110                 regulator-name = "USB_VBUS";
111
112                 regulator-min-microvolt = <5000000>;
113                 regulator-max-microvolt = <5000000>;
114
115                 vin-supply = <&vcc_5v>;
116
117                 /*
118                  * signal name from the schematics: USB_PWR_EN
119                  */
120                 gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
121                 enable-active-high;
122         };
123
124         vcc_5v: regulator-vcc5v {
125                 /*
126                  * supplied by the main power input which called PWR_5V_STB
127                  * in the schematics
128                  */
129                 compatible = "regulator-fixed";
130
131                 regulator-name = "VCC5V";
132
133                 regulator-min-microvolt = <5000000>;
134                 regulator-max-microvolt = <5000000>;
135
136                 /*
137                  * signal name from the schematics: 3V3_5V_EN
138                  */
139                 gpio = <&gpio GPIODV_29 GPIO_ACTIVE_LOW>;
140
141                 regulator-boot-on;
142                 regulator-always-on;
143         };
144
145         vcck: regulator-vcck {
146                 /*
147                  * Silergy SY8089AAC-GP 2A continuous, 3A peak, 1MHz
148                  * Synchronous Step Down Regulator.
149                  */
150                 compatible = "pwm-regulator";
151
152                 regulator-name = "VCCK";
153                 regulator-min-microvolt = <860000>;
154                 regulator-max-microvolt = <1140000>;
155
156                 vin-supply = <&vcc_5v>;
157
158                 pwms = <&pwm_cd 0 1148 0>;
159                 pwm-dutycycle-range = <100 0>;
160
161                 regulator-boot-on;
162                 regulator-always-on;
163         };
164
165         vcc_1v8: regulator-vcc1v8 {
166                 /*
167                  * ABLIC S-1339D18-M5001-GP
168                  */
169                 compatible = "regulator-fixed";
170
171                 regulator-name = "VCC1V8";
172                 regulator-min-microvolt = <1800000>;
173                 regulator-max-microvolt = <1800000>;
174
175                 vin-supply = <&vcc_3v3>;
176         };
177
178         vcc_3v3: regulator-vcc3v3 {
179                 /*
180                  * Silergy SY8089AAC-GP 2A continuous, 3A peak, 1MHz
181                  * Synchronous Step Down Regulator. Also called
182                  * VDDIO_AO3.3V in the schematics.
183                  */
184                 compatible = "regulator-fixed";
185
186                 regulator-name = "VCC3V3";
187                 regulator-min-microvolt = <3300000>;
188                 regulator-max-microvolt = <3300000>;
189
190                 vin-supply = <&vcc_5v>;
191         };
192
193         vcc_ddr3: regulator-vcc-ddr3 {
194                 /*
195                  * Silergy SY8089AAC-GP 2A continuous, 3A peak, 1MHz
196                  * Synchronous Step Down Regulator. Also called
197                  * DDR3_1.5V in the schematics.
198                  */
199                 compatible = "regulator-fixed";
200
201                 regulator-name = "VCC_DDR3_1V5";
202                 regulator-min-microvolt = <1500000>;
203                 regulator-max-microvolt = <1500000>;
204
205                 vin-supply = <&vcc_5v>;
206
207                 regulator-boot-on;
208                 regulator-always-on;
209         };
210
211         vcc_rtc: regulator-vcc-rtc {
212                 /*
213                  * Global Mixed-mode Technology Inc. G918T12U-GP
214                  */
215                 compatible = "regulator-fixed";
216
217                 regulator-name = "VCC_RTC";
218                 regulator-min-microvolt = <900000>;
219                 regulator-max-microvolt = <900000>;
220
221                 /*
222                  * When the board is powered then the input is VCC3V3,
223                  * otherwise power is taken from the coin cell battery.
224                  */
225                 vin-supply = <&vcc_3v3>;
226         };
227
228         vddee: regulator-vddee {
229                 /*
230                  * Silergy SY8089AAC-GP 2A continuous, 3A peak, 1MHz
231                  * Synchronous Step Down Regulator. Also called VDDAO
232                  * in a part of the schematics.
233                  */
234                 compatible = "pwm-regulator";
235
236                 regulator-name = "VDDEE";
237                 regulator-min-microvolt = <860000>;
238                 regulator-max-microvolt = <1140000>;
239
240                 vin-supply = <&vcc_5v>;
241
242                 pwms = <&pwm_cd 1 1148 0>;
243                 pwm-dutycycle-range = <100 0>;
244
245                 regulator-boot-on;
246                 regulator-always-on;
247         };
248 };
249
250 &cpu0 {
251         cpu-supply = <&vcck>;
252 };
253
254 &ethmac {
255         status = "okay";
256
257         pinctrl-0 = <&eth_rmii_pins>;
258         pinctrl-names = "default";
259
260         phy-handle = <&eth_phy0>;
261         phy-mode = "rmii";
262
263         mdio {
264                 compatible = "snps,dwmac-mdio";
265                 #address-cells = <1>;
266                 #size-cells = <0>;
267
268                 eth_phy0: ethernet-phy@0 {
269                         /* IC Plus IP101A/G (0x02430c54) */
270                         reg = <0>;
271
272                         reset-assert-us = <10000>;
273                         reset-deassert-us = <10000>;
274                         reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
275
276                         icplus,select-interrupt;
277                         interrupt-parent = <&gpio_intc>;
278                         /* GPIOH_3 */
279                         interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
280                 };
281         };
282 };
283
284 &i2c_A {
285         status = "okay";
286         pinctrl-0 = <&i2c_a_pins>;
287         pinctrl-names = "default";
288
289         rt5640: codec@1c {
290                 compatible = "realtek,rt5640";
291                 reg = <0x1c>;
292                 interrupt-parent = <&gpio_intc>;
293                 interrupts = <13 IRQ_TYPE_EDGE_BOTH>; /* GPIOAO_13 */
294                 realtek,in1-differential;
295         };
296 };
297
298 &mali {
299         mali-supply = <&vddee>;
300 };
301
302 &saradc {
303         status = "okay";
304         vref-supply = <&vcc_1v8>;
305 };
306
307 &sdhc {
308         status = "okay";
309
310         pinctrl-0 = <&sdxc_c_pins>;
311         pinctrl-names = "default";
312
313         bus-width = <8>;
314         max-frequency = <50000000>;
315
316         cap-mmc-highspeed;
317         disable-wp;
318         non-removable;
319         no-sdio;
320
321         mmc-pwrseq = <&emmc_pwrseq>;
322
323         vmmc-supply = <&vcc_3v3>;
324         vqmmc-supply = <&vcc_3v3>;
325 };
326
327 &sdio {
328         status = "okay";
329
330         pinctrl-0 = <&sd_b_pins>;
331         pinctrl-names = "default";
332
333         /* SD card */
334         sd_card_slot: slot@1 {
335                 compatible = "mmc-slot";
336                 reg = <1>;
337                 status = "okay";
338
339                 bus-width = <4>;
340                 no-sdio;
341                 cap-mmc-highspeed;
342                 cap-sd-highspeed;
343                 disable-wp;
344
345                 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
346
347                 vmmc-supply = <&vcc_3v3>;
348         };
349 };
350
351 &gpio_ao {
352         gpio-line-names = "Linux_TX", "Linux_RX",
353                           "SLP_S5_N", "USB2_OC_FLAG#",
354                           "HUB_RST", "USB_PWR_EN",
355                           "I2S_IN", "SLP_S1_N",
356                           "TCK", "TMS", "TDI", "TDO",
357                           "HDMI_CEC", "5640_IRQ",
358                           "MUTE", "S805_TEST#";
359 };
360
361 &gpio {
362         gpio-line-names = /* Bank GPIOX */
363                           "WIFI_SD_D0", "WIFI_SD_D1", "WIFI_SD_D2",
364                           "WIFI_SD_D3", "BTPCM_DOUT", "BTPCM_DIN",
365                           "BTPCM_SYNC", "BTPCM_CLK", "WIFI_SD_CLK",
366                           "WIFI_SD_CMD", "WIFI_32K", "WIFI_PWREN",
367                           "UART_B_TX", "UART_B_RX", "UART_B_CTS_N",
368                           "UART_B_RTS_N", "BT_EN", "WIFI_WAKE_HOST",
369                           /* Bank GPIOY */
370                           "", "", "", "", "", "", "", "", "", "",
371                           "", "",
372                           /* Bank GPIODV */
373                           "VCCK_PWM_C", "I2C_SDA_A", "I2C_SCL_A",
374                           "I2C_SDA_B", "I2C_SCL_B", "VDDEE_PWM_D",
375                           "VDDEE_PWM 3V3_5V_EN",
376                           /* Bank GPIOH */
377                           "HDMI_HPD", "HDMI_I2C_SDA", "HDMI_I2C_SCL",
378                           "RMII_IRQ", "RMII_RST#", "RMII_TXD1",
379                           "RMII_TXD0", "AV_select_1", "AV_select_2",
380                           "MCU_Control_S",
381                           /* Bank CARD */
382                           "SD_D1_B", "SD_D0_B", "SD_CLK_8726MX",
383                           "SD_CMD_8726MX", "SD_D3_B", "SD_D2_B",
384                           "CARD_EN_DET (CARD_DET)",
385                           /* Bank BOOT */
386                           "NAND_D0 (EMMC)", "NAND_D1 (EMMC)",
387                           "NAND_D2 (EMMC)", "NAND_D3 (EMMC)",
388                           "NAND_D4 (EMMC)", "NAND_D5 (EMMC)",
389                           "NAND_D6 (EMMC)", "NAND_D7 (EMMC)",
390                           "NAND_CS1 (EMMC)", "NAND_CS2 iNAND_RS1 (EMMC)",
391                           "NAND_nR/B iNAND_CMD (EMMC)", "NAND_ALE (EMMC)",
392                           "NAND_CLE (EMMC)", "nRE_S1 NAND_nRE (EMMC)",
393                           "nWE_S1 NAND_nWE (EMMC)",  "", "", "SPI_CS",
394                           /* Bank DIF */
395                           "RMII_RXD1", "RMII_RXD0", "RMII_CRS_DV",
396                           "RMII_50M_IN", "GPIODIF_4", "GPIODIF_5",
397                           "RMII_TXEN", "CPUETH_25MOUT", "RMII_MDC",
398                           "RMII_MDIO";
399 };
400
401 &pwm_cd {
402         status = "okay";
403         pinctrl-0 = <&pwm_c1_pins>, <&pwm_d_pins>;
404         pinctrl-names = "default";
405         clocks = <&xtal>, <&xtal>;
406         clock-names = "clkin0", "clkin1";
407 };
408
409 &rtc {
410         status = "okay";
411         clocks = <&rtc32k_xtal>;
412         vdd-supply = <&vcc_rtc>;
413 };
414
415 /* exposed through the pin headers labeled "URDUG1" on the top of the PCB */
416 &uart_AO {
417         status = "okay";
418         pinctrl-0 = <&uart_ao_a_pins>;
419         pinctrl-names = "default";
420 };
421
422 /*
423  * connected to the Bluetooth part of the RTL8723BS SDIO wifi / Bluetooth
424  * combo chip. This is only available on the variant with 2GB RAM.
425  */
426 &uart_B {
427         status = "okay";
428         pinctrl-0 = <&uart_b0_pins>, <&uart_b0_cts_rts_pins>;
429         pinctrl-names = "default";
430         uart-has-rtscts;
431 };
432
433 &usb1 {
434         status = "okay";
435         vbus-supply = <&usb_vbus>;
436 };
437
438 &usb1_phy {
439         status = "okay";
440 };