Merge tag 'tag-chrome-platform-for-v5.1' of git://git.kernel.org/pub/scm/linux/kernel...
[sfrench/cifs-2.6.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                 blue {
40                         label = "rbox-pro:blue:on";
41                         gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
42                         default-state = "on";
43                 };
44
45                 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         snps,reset-gpio = <&gpio GPIOZ_14 0>;
105         snps,reset-delays-us = <0 10000 1000000>;
106         snps,reset-active-low;
107
108         amlogic,tx-delay-ns = <2>;
109
110         /* External PHY is in RGMII */
111         phy-mode = "rgmii";
112 };
113
114 &external_mdio {
115         external_phy: ethernet-phy@0 {
116                 compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22";
117                 reg = <0>;
118                 max-speed = <1000>;
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 = <100000000>;
147
148         non-removable;
149         disable-wp;
150
151         mmc-pwrseq = <&sdio_pwrseq>;
152
153         vmmc-supply = <&vddao_3v3>;
154         vqmmc-supply = <&vddio_boot>;
155
156         brcmf: brcmf@1 {
157                 reg = <1>;
158                 compatible = "brcm,bcm4329-fmac";
159         };
160 };
161
162 /* SD card */
163 &sd_emmc_b {
164         status = "okay";
165         pinctrl-0 = <&sdcard_pins>;
166         pinctrl-names = "default";
167
168         bus-width = <4>;
169         cap-sd-highspeed;
170         max-frequency = <100000000>;
171         disable-wp;
172
173         cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
174
175         vmmc-supply = <&vddao_3v3>;
176         vqmmc-supply = <&vddio_boot>;
177 };
178
179 /* eMMC */
180 &sd_emmc_c {
181         status = "okay";
182         pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
183         pinctrl-names = "default";
184
185         bus-width = <8>;
186         cap-mmc-highspeed;
187         max-frequency = <200000000>;
188         non-removable;
189         disable-wp;
190         mmc-ddr-1_8v;
191         mmc-hs200-1_8v;
192
193         mmc-pwrseq = <&emmc_pwrseq>;
194         vmmc-supply = <&vcc_3v3>;
195         vqmmc-supply = <&vddio_boot>;
196 };
197
198 &uart_AO {
199         status = "okay";
200         pinctrl-0 = <&uart_ao_a_pins>;
201         pinctrl-names = "default";
202 };