ipq40xx: drop ESSEDMA + AR40xx DTS nodes
[openwrt/staging/jow.git] / target / linux / ipq40xx / files / arch / arm / boot / dts / qcom-ipq4019-wifi.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3 * Copyright (c) 2016, 2018 The Linux Foundation. All rights reserved.
4 * Copyright (c) 2016 Google, Inc
5 */
6
7 #include "qcom-ipq4019.dtsi"
8 #include <dt-bindings/input/input.h>
9 #include <dt-bindings/gpio/gpio.h>
10 #include <dt-bindings/leds/common.h>
11
12 / {
13 model = "Google WiFi (Gale)";
14 compatible = "google,wifi", "google,gale-v2", "qcom,ipq4019";
15
16 chosen {
17 /*
18 * rootwait: in case we're booting from slow/async USB storage.
19 */
20 bootargs-append = " rootwait";
21 stdout-path = &blsp1_uart1;
22 };
23
24 memory {
25 device_type = "memory";
26 reg = <0x80000000 0x20000000>; /* 512MB */
27 };
28 };
29
30 &tlmm {
31 fw_pinmux {
32 wp {
33 pins = "gpio53";
34 output-low;
35 };
36 recovery {
37 pins = "gpio57";
38 bias-none;
39 };
40 developer {
41 pins = "gpio41";
42 bias-none;
43 };
44 };
45
46 reset802_15_4 {
47 pins = "gpio60";
48 };
49
50 led_reset {
51 pins = "gpio22";
52 output-high;
53 };
54
55 sys_reset {
56 pins = "gpio19";
57 output-high;
58 };
59
60 rx_active {
61 pins = "gpio43";
62 bias-pull,down;
63 };
64
65 spi_0_pins: spi_0_pinmux {
66 pinmux {
67 function = "blsp_spi0";
68 pins = "gpio13", "gpio14","gpio15";
69 };
70 pinmux_cs {
71 function = "gpio";
72 pins = "gpio12";
73 };
74 pinconf {
75 pins = "gpio13", "gpio14","gpio15";
76 drive-strength = <12>;
77 bias-disable;
78 };
79 pinconf_cs {
80 pins = "gpio12";
81 drive-strength = <2>;
82 bias-disable;
83 output-high;
84 };
85 };
86
87 spi_1_pins: spi_1_pinmux {
88 pinmux {
89 function = "blsp_spi1";
90 pins = "gpio44", "gpio46","gpio47";
91 };
92 pinmux_cs {
93 function = "gpio";
94 pins = "gpio45";
95 };
96 pinconf {
97 pins = "gpio44", "gpio46","gpio47";
98 drive-strength = <12>;
99 bias-disable;
100 };
101 pinconf_cs {
102 pins = "gpio45";
103 drive-strength = <2>;
104 bias-disable;
105 output-high;
106 };
107 };
108
109 serial_0_pins: serial0_pinmux {
110 mux {
111 pins = "gpio16", "gpio17";
112 function = "blsp_uart0";
113 bias-disable;
114 };
115 };
116
117 serial_1_pins: serial1_pinmux {
118 mux {
119 pins = "gpio8", "gpio9", "gpio10", "gpio11";
120 function = "blsp_uart1";
121 bias-disable;
122 };
123 };
124
125 i2c_0_pins: i2c_0_pinmux {
126 mux {
127 pins = "gpio20", "gpio21";
128 function = "blsp_i2c0";
129 drive-open-drain;
130 };
131 };
132
133 i2c_1_pins: i2c_1_pinmux {
134 mux {
135 pins = "gpio34", "gpio35";
136 function = "blsp_i2c1";
137 drive-open-drain;
138 };
139 };
140
141 sd_0_pins: sd_0_pinmux {
142 sd0 {
143 pins = "gpio23", "gpio24", "gpio25", "gpio26", "gpio29", "gpio30", "gpio31", "gpio32";
144 function = "sdio";
145 drive-strength = <10>;
146 bias-pull-up;
147 pull-up-res = <0>;
148 };
149 sdclk {
150 pins = "gpio27";
151 function = "sdio";
152 drive-strength = <2>;
153 bias-pull-up;
154 pull-up-res = <0>;
155 };
156 sdcmd {
157 pins = "gpio28";
158 function = "sdio";
159 drive-strength = <10>;
160 bias-pull-up;
161 pull-up-res = <0>;
162 };
163 };
164
165 mdio_pins: mdio_pinmux {
166 mux_1 {
167 pins = "gpio6";
168 function = "mdio";
169 bias-disable;
170 };
171 mux_2 {
172 pins = "gpio7";
173 function = "mdc";
174 bias-disable;
175 };
176 mux_3 {
177 pins = "gpio40";
178 function = "gpio";
179 bias-disable;
180 output-high;
181 };
182 };
183
184 wifi1_1_pins: wifi2_pinmux {
185 mux {
186 pins = "gpio58";
187 output-low;
188 };
189 };
190 };
191
192 &blsp_dma {
193 status = "okay";
194 };
195
196 &blsp1_i2c3 {
197 pinctrl-0 = <&i2c_0_pins>;
198 pinctrl-names = "default";
199 status = "okay";
200
201 tpm@20 {
202 compatible = "infineon,slb9645tt";
203 reg = <0x20>;
204 powered-while-suspended;
205 };
206 };
207
208 &blsp1_i2c4 {
209 pinctrl-0 = <&i2c_1_pins>;
210 pinctrl-names = "default";
211 status = "okay";
212
213 led-controller@32 {
214 #address-cells = <1>;
215 #size-cells = <0>;
216 compatible = "national,lp5523";
217 reg = <0x32>;
218 clock-mode = /bits/ 8 <1>;
219
220 #if 1
221 led@0 {
222 reg = <0>;
223 chan-name = "LED0_Red";
224 led-cur = /bits/ 8 <0x64>;
225 max-cur = /bits/ 8 <0x78>;
226 color = <LED_COLOR_ID_RED>;
227 };
228
229 led@1 {
230 reg = <1>;
231 chan-name = "LED0_Green";
232 led-cur = /bits/ 8 <0x64>;
233 max-cur = /bits/ 8 <0x78>;
234 color = <LED_COLOR_ID_GREEN>;
235 };
236
237 led@2 {
238 reg = <2>;
239 chan-name = "LED0_Blue";
240 led-cur = /bits/ 8 <0x64>;
241 max-cur = /bits/ 8 <0x78>;
242 color = <LED_COLOR_ID_BLUE>;
243 };
244 #else
245 /*
246 * openwrt isn't ready to handle multi-intensity leds yet
247 * # echo 255 255 255 > /sys/class/leds/tricolor/multi_intensity
248 * # echo 255 > /sys/class/leds/tricolor/brightness
249 */
250 multi-led@2 {
251 reg = <2>;
252 color = <LED_COLOR_ID_RGB>;
253 #address-cells = <1>;
254 #size-cells = <0>;
255
256 led@0 {
257 reg = <0>;
258 chan-name = "tricolor";
259 led-cur = /bits/ 8 <0x64>;
260 max-cur = /bits/ 8 <0x78>;
261 color = <LED_COLOR_ID_RED>;
262 };
263
264 led@1 {
265 reg = <1>;
266 chan-name = "tricolor";
267 led-cur = /bits/ 8 <0x64>;
268 max-cur = /bits/ 8 <0x78>;
269 color = <LED_COLOR_ID_GREEN>;
270 };
271
272 led@2 {
273 reg = <2>;
274 chan-name = "tricolor";
275 led-cur = /bits/ 8 <0x64>;
276 max-cur = /bits/ 8 <0x78>;
277 color = <LED_COLOR_ID_BLUE>;
278 };
279 };
280 #endif
281 };
282 };
283
284 &blsp1_spi1 {
285 pinctrl-0 = <&spi_0_pins>;
286 pinctrl-names = "default";
287 status = "okay";
288 cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
289
290 flash@0 {
291 compatible = "jedec,spi-nor";
292 reg = <0>;
293 spi-max-frequency = <24000000>;
294 };
295 };
296
297 &blsp1_spi2 {
298 pinctrl-0 = <&spi_1_pins>;
299 pinctrl-names = "default";
300 status = "okay";
301 cs-gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
302
303 /*
304 * This "spidev" was included in the manufacturer device tree. I
305 * suspect it's the (unused; and removed from later HW spins) Zigbee
306 * radio -- SiliconLabs EM3581 Zigbee? There's no driver or binding for
307 * this at the moment.
308 */
309 spidev@0 {
310 compatible = "spidev";
311 reg = <0>;
312 spi-max-frequency = <24000000>;
313 };
314 };
315
316 &blsp1_uart1 {
317 pinctrl-0 = <&serial_0_pins>;
318 pinctrl-names = "default";
319 status = "okay";
320 };
321
322 &blsp1_uart2 {
323 pinctrl-0 = <&serial_1_pins>;
324 pinctrl-names = "default";
325 status = "okay";
326 };
327
328 &mdio {
329 status = "okay";
330 pinctrl-0 = <&mdio_pins>;
331 pinctrl-names = "default";
332 };
333
334 &prng {
335 status = "okay";
336 };
337
338 &sdhci {
339 status = "okay";
340 pinctrl-0 = <&sd_0_pins>;
341 pinctrl-names = "default";
342 clock-frequency = <192000000>;
343 vqmmc-supply = <&vqmmc>;
344 non-removable;
345 };
346
347 &usb2 {
348 status = "okay";
349 };
350
351 &usb2_hs_phy {
352 status = "okay";
353 };
354
355 &usb3 {
356 status = "okay";
357 };
358
359 &usb3_ss_phy {
360 status = "okay";
361 };
362
363 &usb3_hs_phy {
364 status = "okay";
365 };
366
367 &vqmmc {
368 status = "okay";
369 };
370
371 &watchdog {
372 status = "okay";
373 };
374
375 &wifi0 {
376 status = "okay";
377 qcom,ath10k-calibration-variant = "GO_GALE";
378 };
379
380 &wifi1 {
381 status = "okay";
382 pinctrl-0 = <&wifi1_1_pins>;
383 pinctrl-names = "default";
384 qcom,ath10k-calibration-variant = "GO_GALE";
385 };