e0bb968f5bb4603da7d9948d57a41630ed6b2136
[openwrt/openwrt.git] / target / linux / ipq40xx / files-4.14 / arch / arm / boot / dts / qcom-ipq4018-rt-ac58u.dts
1 /* Copyright (c) 2015, The Linux Foundation. All rights reserved.
2 *
3 * Permission to use, copy, modify, and/or distribute this software for any
4 * purpose with or without fee is hereby granted, provided that the above
5 * copyright notice and this permission notice appear in all copies.
6 *
7 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14 *
15 */
16
17 #include "qcom-ipq4019.dtsi"
18 #include "qcom-ipq4019-bus.dtsi"
19 #include <dt-bindings/gpio/gpio.h>
20 #include <dt-bindings/input/input.h>
21 #include <dt-bindings/soc/qcom,tcsr.h>
22
23 / {
24 model = "ASUS RT-AC58U";
25 compatible = "asus,rt-ac58u", "qcom,ipq4019";
26
27 memory {
28 device_type = "memory";
29 reg = <0x80000000 0x8000000>;
30 };
31
32 aliases {
33 led-boot = &power;
34 led-failsafe = &power;
35 led-running = &power;
36 led-upgrade = &power;
37 };
38
39 soc {
40 mdio@90000 {
41 status = "okay";
42 };
43
44 ess-psgmii@98000 {
45 status = "okay";
46 };
47
48 tcsr@1949000 {
49 compatible = "qcom,tcsr";
50 reg = <0x1949000 0x100>;
51 qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
52 };
53
54 tcsr@194b000 {
55 compatible = "qcom,tcsr";
56 reg = <0x194b000 0x100>;
57 qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
58 };
59
60 ess_tcsr@1953000 {
61 compatible = "qcom,tcsr";
62 reg = <0x1953000 0x1000>;
63 qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
64 };
65
66 tcsr@1957000 {
67 compatible = "qcom,tcsr";
68 reg = <0x1957000 0x100>;
69 qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
70 };
71
72 usb2@60f8800 {
73 status = "okay";
74 };
75
76 serial@78af000 {
77 pinctrl-0 = <&serial_pins>;
78 pinctrl-names = "default";
79 status = "okay";
80 };
81
82 usb3@8af8800 {
83 status = "okay";
84 };
85
86 crypto@8e3a000 {
87 status = "okay";
88 };
89
90 wifi@a000000 {
91 status = "okay";
92 qcom,ath10k-calibration-variant = "ASUS-RT-AC58U";
93 };
94
95 wifi@a800000 {
96 status = "okay";
97 qcom,ath10k-calibration-variant = "ASUS-RT-AC58U";
98 };
99
100 watchdog@b017000 {
101 status = "okay";
102 };
103
104 ess-switch@c000000 {
105 status = "okay";
106 };
107
108 edma@c080000 {
109 status = "okay";
110 };
111 };
112
113 gpio-keys {
114 compatible = "gpio-keys";
115
116 reset {
117 label = "reset";
118 gpios = <&tlmm 4 GPIO_ACTIVE_LOW>;
119 linux,code = <KEY_RESTART>;
120 };
121
122 wps {
123 label = "wps";
124 gpios = <&tlmm 63 GPIO_ACTIVE_LOW>;
125 linux,code = <KEY_WPS_BUTTON>;
126 };
127 };
128
129 gpio-leds {
130 compatible = "gpio-leds";
131
132 power: status {
133 label = "rt-ac58u:blue:status";
134 gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>;
135 };
136
137 wan {
138 label = "rt-ac58u:blue:wan";
139 gpios = <&tlmm 1 GPIO_ACTIVE_HIGH>;
140 };
141
142 wlan2G {
143 label = "rt-ac58u:blue:wlan2G";
144 gpios = <&tlmm 58 GPIO_ACTIVE_HIGH>;
145 };
146
147 wan5G {
148 label = "rt-ac58u:blue:wlan5G";
149 gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>;
150 };
151
152 usb {
153 label = "rt-ac58u:blue:usb";
154 gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
155 };
156
157 lan {
158 label = "rt-ac58u:blue:lan";
159 gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>;
160 };
161 };
162 };
163
164 &cryptobam {
165 status = "okay";
166 };
167
168 &blsp_dma {
169 status = "okay";
170 };
171
172 &tlmm {
173 serial_pins: serial_pinmux {
174 mux {
175 pins = "gpio60", "gpio61";
176 function = "blsp_uart0";
177 bias-disable;
178 };
179 };
180
181 spi_0_pins: spi_0_pinmux {
182 mux {
183 function = "blsp_spi0";
184 pins = "gpio55", "gpio56", "gpio57";
185 drive-strength = <12>;
186 bias-disable;
187 };
188
189 mux_cs {
190 function = "gpio";
191 pins = "gpio54", "gpio59";
192 drive-strength = <2>;
193 bias-disable;
194 output-high;
195 };
196 };
197 };
198
199 &spi_0 { /* BLSP1 QUP1 */
200 pinctrl-0 = <&spi_0_pins>;
201 pinctrl-names = "default";
202 status = "okay";
203 cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>,
204 <&tlmm 59 GPIO_ACTIVE_HIGH>;
205
206 m25p80@0 {
207 #address-cells = <1>;
208 #size-cells = <0>;
209 /*
210 * U-boot looks for "n25q128a11" node,
211 * if we don't have it, it will spit out the following warning:
212 * "ipq: fdt fixup unable to find compatible node".
213 */
214 compatible = "jedec,spi-nor";
215 reg = <0>;
216 linux,modalias = "m25p80", "mx25l1606e", "n25q128a11";
217 spi-max-frequency = <24000000>;
218
219 partitions {
220 compatible = "fixed-partitions";
221 #address-cells = <1>;
222 #size-cells = <1>;
223
224 partition0@0 {
225 label = "SBL1";
226 reg = <0x00000000 0x00040000>;
227 read-only;
228 };
229 partition1@40000 {
230 label = "MIBIB";
231 reg = <0x00040000 0x00020000>;
232 read-only;
233 };
234 partition2@60000 {
235 label = "QSEE";
236 reg = <0x00060000 0x00060000>;
237 read-only;
238 };
239 partition3@c0000 {
240 label = "CDT";
241 reg = <0x000c0000 0x00010000>;
242 read-only;
243 };
244 partition4@d0000 {
245 label = "DDRPARAMS";
246 reg = <0x000d0000 0x00010000>;
247 read-only;
248 };
249 partition5@e0000 {
250 label = "APPSBLENV"; /* uboot env*/
251 reg = <0x000e0000 0x00010000>;
252 read-only;
253 };
254 partition5@f0000 {
255 label = "APPSBL"; /* uboot */
256 reg = <0x000f0000 0x00080000>;
257 read-only;
258 };
259 partition5@170000 {
260 label = "ART";
261 reg = <0x00170000 0x00010000>;
262 read-only;
263 };
264 /* 0x00180000 - 0x00200000 unused */
265 };
266 };
267
268 mt29f@1 {
269 #address-cells = <1>;
270 #size-cells = <0>;
271 compatible = "spinand,mt29f";
272 reg = <1>;
273 spi-max-frequency = <24000000>;
274
275 partitions {
276 compatible = "fixed-partitions";
277 #address-cells = <1>;
278 #size-cells = <1>;
279
280 partition0@0 {
281 label = "ubi";
282 reg = <0x00000000 0x08000000>;
283 };
284 };
285 };
286 };
287
288 &usb3_ss_phy {
289 status = "okay";
290 };
291
292 &usb3_hs_phy {
293 status = "okay";
294 };
295
296 &usb2_hs_phy {
297 status = "okay";
298 };