Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / amlogic / meson-gxm-rbox-pro.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2016-2017 Andreas Färber
4  *
5  * Based on nexbox-a1:
6  *
7  * Copyright (c) 2016 BayLibre, SAS.
8  * Author: Neil Armstrong <narmstrong@baylibre.com>
9  *
10  * Copyright (c) 2016 Endless Computers, Inc.
11  * Author: Carlo Caione <carlo@endlessm.com>
12  */
13
14 /dts-v1/;
15
16 #include "meson-gxm.dtsi"
17
18 / {
19         compatible = "kingnovel,r-box-pro", "amlogic,s912", "amlogic,meson-gxm";
20         model = "R-Box Pro";
21
22         aliases {
23                 serial0 = &uart_AO;
24                 ethernet0 = &ethmac;
25         };
26
27         chosen {
28                 stdout-path = "serial0:115200n8";
29         };
30
31         memory@0 {
32                 device_type = "memory";
33                 reg = <0x0 0x0 0x0 0x80000000>; /* 2 GiB or 3 GiB */
34         };
35
36         leds {
37                 compatible = "gpio-leds";
38
39                 led-blue {
40                         label = "rbox-pro:blue:on";
41                         gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
42                         default-state = "on";
43                 };
44
45                 led-red {
46                         label = "rbox-pro:red:standby";
47                         gpios = <&gpio GPIODV_28 GPIO_ACTIVE_HIGH>;
48                         default-state = "off";
49                         retain-state-suspended;
50                         panic-indicator;
51                 };
52         };
53
54         vddio_boot: regulator-vddio-boot {
55                 compatible = "regulator-fixed";
56                 regulator-name = "VDDIO_BOOT";
57                 regulator-min-microvolt = <1800000>;
58                 regulator-max-microvolt = <1800000>;
59         };
60
61         vddao_3v3: regulator-vddao-3v3 {
62                 compatible = "regulator-fixed";
63                 regulator-name = "VDDAO_3V3";
64                 regulator-min-microvolt = <3300000>;
65                 regulator-max-microvolt = <3300000>;
66         };
67
68         vcc_3v3: regulator-vcc-3v3 {
69                 compatible = "regulator-fixed";
70                 regulator-name = "VCC_3V3";
71                 regulator-min-microvolt = <3300000>;
72                 regulator-max-microvolt = <3300000>;
73         };
74
75         emmc_pwrseq: emmc-pwrseq {
76                 compatible = "mmc-pwrseq-emmc";
77                 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
78         };
79
80         wifi32k: wifi32k {
81                 compatible = "pwm-clock";
82                 #clock-cells = <0>;
83                 clock-frequency = <32768>;
84                 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
85         };
86
87         sdio_pwrseq: sdio-pwrseq {
88                 compatible = "mmc-pwrseq-simple";
89                 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
90                 clocks = <&wifi32k>;
91                 clock-names = "ext_clock";
92         };
93 };
94
95 &ethmac {
96         status = "okay";
97
98         pinctrl-0 = <&eth_pins>;
99         pinctrl-names = "default";
100
101         /* Select external PHY by default */
102         phy-handle = <&external_phy>;
103
104         amlogic,tx-delay-ns = <2>;
105
106         /* External PHY is in RGMII */
107         phy-mode = "rgmii";
108 };
109
110 &external_mdio {
111         external_phy: ethernet-phy@0 {
112                 /* Realtek RTL8211F (0x001cc916) */
113                 reg = <0>;
114                 max-speed = <1000>;
115
116                 reset-assert-us = <10000>;
117                 reset-deassert-us = <30000>;
118                 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
119         };
120 };
121
122 &ir {
123         status = "okay";
124         pinctrl-0 = <&remote_input_ao_pins>;
125         pinctrl-names = "default";
126 };
127
128 &pwm_ef {
129         status = "okay";
130         pinctrl-0 = <&pwm_e_pins>;
131         pinctrl-names = "default";
132         clocks = <&clkc CLKID_FCLK_DIV4>;
133         clock-names = "clkin0";
134 };
135
136 /* Wireless SDIO Module */
137 &sd_emmc_a {
138         status = "okay";
139         pinctrl-0 = <&sdio_pins>;
140         pinctrl-names = "default";
141         #address-cells = <1>;
142         #size-cells = <0>;
143
144         bus-width = <4>;
145         cap-sd-highspeed;
146         max-frequency = <50000000>;
147
148         non-removable;
149         disable-wp;
150
151         /* WiFi firmware requires power to be kept while in suspend */
152         keep-power-in-suspend;
153
154         mmc-pwrseq = <&sdio_pwrseq>;
155
156         vmmc-supply = <&vddao_3v3>;
157         vqmmc-supply = <&vddio_boot>;
158
159         brcmf: brcmf@1 {
160                 reg = <1>;
161                 compatible = "brcm,bcm4329-fmac";
162         };
163 };
164
165 /* SD card */
166 &sd_emmc_b {
167         status = "okay";
168         pinctrl-0 = <&sdcard_pins>;
169         pinctrl-names = "default";
170
171         bus-width = <4>;
172         cap-sd-highspeed;
173         max-frequency = <50000000>;
174         disable-wp;
175
176         cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
177
178         vmmc-supply = <&vddao_3v3>;
179         vqmmc-supply = <&vddio_boot>;
180 };
181
182 /* eMMC */
183 &sd_emmc_c {
184         status = "okay";
185         pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
186         pinctrl-names = "default";
187
188         bus-width = <8>;
189         cap-mmc-highspeed;
190         max-frequency = <200000000>;
191         non-removable;
192         disable-wp;
193         mmc-ddr-1_8v;
194         mmc-hs200-1_8v;
195
196         mmc-pwrseq = <&emmc_pwrseq>;
197         vmmc-supply = <&vcc_3v3>;
198         vqmmc-supply = <&vddio_boot>;
199 };
200
201 &uart_AO {
202         status = "okay";
203         pinctrl-0 = <&uart_ao_a_pins>;
204         pinctrl-names = "default";
205 };