24e5dc2809afc14556f28cdaab4b2e50384963b4
[oweals/openwrt.git] / target / linux / ipq40xx / files-4.19 / arch / arm / boot / dts / qcom-ipq4029-ap-303.dts
1 // SPDX-License-Identifier: GPL-2.0 OR MIT
2
3 #include "qcom-ipq4019.dtsi"
4 #include <dt-bindings/gpio/gpio.h>
5 #include <dt-bindings/input/input.h>
6 #include <dt-bindings/soc/qcom,tcsr.h>
7
8 / {
9         model = "Aruba AP-303";
10         compatible = "aruba,ap-303";
11
12         aliases {
13                 led-boot = &led_system_green;
14                 led-failsafe = &led_system_red;
15                 led-running = &led_system_green;
16                 led-upgrade = &led_system_red;
17         };
18
19         memory {
20                 device_type = "memory";
21                 reg = <0x80000000 0x10000000>;
22         };
23
24         soc {
25                 rng@22000 {
26                         status = "okay";
27                 };
28
29                 mdio@90000 {
30                         status = "okay";
31                         pinctrl-0 = <&mdio_pins>;
32                         pinctrl-names = "default";
33
34                         /delete-node/ ethernet-phy@0;
35                         /delete-node/ ethernet-phy@2;
36                         /delete-node/ ethernet-phy@3;
37                         /delete-node/ ethernet-phy@4;
38
39                         ethernet-phy@5 {
40                                 reg = <0x5>;
41                         };
42                 };
43
44                 counter@4a1000 {
45                         compatible = "qcom,qca-gcnt";
46                         reg = <0x4a1000 0x4>;
47                 };
48
49                 ess_tcsr@1953000 {
50                         compatible = "qcom,tcsr";
51                         reg = <0x1953000 0x1000>;
52                         qcom,ess-interface-select = <TCSR_ESS_PSGMII_RGMII5>;
53                 };
54
55                 tcsr@1949000 {
56                         compatible = "qcom,tcsr";
57                         reg = <0x1949000 0x100>;
58                         qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
59                 };
60
61                 tcsr@1957000 {
62                         compatible = "qcom,tcsr";
63                         reg = <0x1957000 0x100>;
64                         qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
65                 };
66
67                 crypto@8e3a000 {
68                         status = "okay";
69                 };
70
71                 watchdog@b017000 {
72                         status = "okay";
73                 };
74
75                 ess-switch@c000000 {
76                         switch_mac_mode = <0x3>; /* mac mode for RGMII RMII */
77                         switch_lan_bmp = <0x0>; /* lan port bitmap */
78                         switch_wan_bmp = <0x10>; /* wan port bitmap */
79                 };
80
81                 edma@c080000 {
82                         qcom,single-phy;
83                         qcom,num_gmac = <1>;
84                         phy-mode = "rgmii-id";
85                         status = "okay";
86                 };
87
88                 i2c_0: i2c@78b7000 {
89                         pinctrl-0 = <&i2c_0_pins>;
90                         pinctrl-names = "default";
91                         status = "ok";
92
93                         tpm@29 {
94                                 /* No Driver */
95                                 compatible = "atmel,at97sc3203";
96                                 reg = <0x29>;
97                                 read-only;
98                         };
99                 };
100         };
101
102         leds {
103                 compatible = "gpio-leds";
104
105                 wifi_green {
106                         label = "ap-303:green:wifi";
107                         gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
108                         linux,default-trigger = "phy0tpt";
109                 };
110
111                 wifi_amber {
112                         label = "ap-303:amber:wifi";
113                         gpios = <&tlmm 40 GPIO_ACTIVE_HIGH>;
114                         linux,default-trigger = "phy1tpt";
115                 };
116
117                 led_system_red: system_red {
118                         label = "ap-303:red:system";
119                         gpios = <&tlmm 46 GPIO_ACTIVE_HIGH>;
120                 };
121
122                 led_system_green: system_green {
123                         label = "ap-303:green:system";
124                         gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
125                 };
126         };
127
128         keys {
129                 compatible = "gpio-keys";
130
131                 reset {
132                         label = "Reset button";
133                         gpios = <&tlmm 50 GPIO_ACTIVE_LOW>;
134                         linux,code = <KEY_RESTART>;
135                 };
136         };
137 };
138
139 &blsp_dma {
140         status = "okay";
141 };
142
143 &blsp1_uart1 {
144         /* Texas Instruments CC2540T BLE radio */
145         pinctrl-0 = <&serial_0_pins>;
146         pinctrl-names = "default";
147         status = "okay";
148 };
149
150 &blsp1_uart2 {
151         pinctrl-0 = <&serial_1_pins>;
152         pinctrl-names = "default";
153         status = "okay";
154 };
155
156 &cryptobam {
157         status = "okay";
158 };
159
160 &gmac0 {
161         qcom,phy_mdio_addr = <5>;
162         qcom,poll_required = <1>;
163         vlan_tag = <0 0x20>;
164 };
165
166 &qpic_bam {
167         status = "okay";
168 };
169
170 &tlmm {
171         /*
172          * In addition to the Pins listed below,
173          * the following GPIOs have "features":
174          * 54 - out - active low to force HW reset
175          * 41 - out - active low to reset TPM
176          * 43 - out - active low to reset BLE radio
177          * 19 - in  - active high when DC powered
178          */
179         mdio_pins: mdio_pinmux {
180                 mux_1 {
181                         pins = "gpio6";
182                         function = "mdio";
183                         bias-pull-up;
184                 };
185                 mux_2 {
186                         pins = "gpio7";
187                         function = "mdc";
188                         bias-pull-up;
189                 };
190         };
191
192         nand_pins: nand_pins {
193                 pullups {
194                         pins = "gpio53", "gpio58", "gpio59";
195                         function = "qpic";
196                         bias-pull-up;
197                 };
198
199                 pulldowns {
200                         pins = "gpio54", "gpio55", "gpio56",
201                                 "gpio57", "gpio60", "gpio61",
202                                 "gpio62", "gpio63", "gpio64",
203                                 "gpio65", "gpio66", "gpio67",
204                                 "gpio68", "gpio69";
205                         function = "qpic";
206                         bias-pull-down;
207                 };
208         };
209
210         spi_0_pins: spi_0_pinmux {
211                 pin {
212                         function = "blsp_spi0";
213                         pins = "gpio13", "gpio14", "gpio15";
214                         drive-strength = <12>;
215                         bias-disable;
216                 };
217                 pin_cs {
218                         function = "gpio";
219                         pins = "gpio12";
220                         drive-strength = <2>;
221                         bias-disable;
222                         output-high;
223                 };
224         };
225         i2c_0_pins: i2c_0_pinmux {
226                 mux {
227                         pins = "gpio10", "gpio11";
228                         function = "blsp_i2c0";
229                         drive-strength = <4>;
230                         bias-disable;
231                 };
232         };
233
234         serial_0_pins: serial_0_pinmux {
235                 mux {
236                         pins = "gpio16", "gpio17";
237                         function = "blsp_uart0";
238                         bias-disable;
239                 };
240         };
241
242         serial_1_pins: serial_1_pinmux {
243                 mux {
244                         pins = "gpio8", "gpio9";
245                         function = "blsp_uart1";
246                         bias-disable;
247                 };
248         };
249
250         phy-reset {
251                 line-name = "PHY-reset";
252                 gpios = <42 GPIO_ACTIVE_HIGH>;
253                 gpio-hog;
254                 output-high;
255         };
256 };
257
258 &nand {
259         pinctrl-0 = <&nand_pins>;
260         pinctrl-names = "default";
261         status = "okay";
262
263         nand@0 {
264                 partitions {
265                         compatible = "fixed-partitions";
266                         #address-cells = <1>;
267                         #size-cells = <1>;
268
269                         partition@0 {
270                                 /* 'aos0' in Aruba firmware */
271                                 label = "aos0";
272                                 reg = <0x0 0x2000000>;
273                                 read-only;
274                         };
275
276                         partition@2000000 {
277                                 /* 'aos1' in AVM firmware */
278                                 label = "ubi";
279                                 reg = <0x2000000 0x2000000>;
280                         };
281
282                         partition@4000000 {
283                                 label = "aruba-ubifs";
284                                 reg = <0x4000000 0x4000000>;
285                                 read-only;
286                         };
287                 };
288         };
289 };
290
291 &blsp1_spi1 {
292         pinctrl-0 = <&spi_0_pins>;
293         pinctrl-names = "default";
294         status = "okay";
295         cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
296
297         flash@0 {
298                 compatible = "jedec,spi-nor";
299                 reg = <0>;
300                 spi-max-frequency = <24000000>;
301
302                 partitions {
303                         compatible = "fixed-partitions";
304                         #address-cells = <1>;
305                         #size-cells = <1>;
306
307                         /*
308                          * There is no partition map for the NOR flash
309                          * in the stock firmware.
310                          *
311                          * All partitions here are based on offsets
312                          * found in the U-Boot GPL code and information
313                          * from smem.
314                          */
315
316                         partition@0 {
317                                 label = "sbl1";
318                                 reg = <0x0 0x40000>;
319                                 read-only;
320                         };
321
322                         partition@40000 {
323                                 label = "mibib";
324                                 reg = <0x40000 0x20000>;
325                                 read-only;
326                         };
327
328                         partition@60000 {
329                                 label = "qsee";
330                                 reg = <0x60000 0x60000>;
331                                 read-only;
332                         };
333
334                         partition@c0000 {
335                                 label = "cdt";
336                                 reg = <0xc0000 0x10000>;
337                                 read-only;
338                         };
339
340                         partition@d0000 {
341                                 label = "ddrparams";
342                                 reg = <0xd0000 0x10000>;
343                                 read-only;
344                         };
345
346                         partition@e0000 {
347                                 label = "ART";
348                                 reg = <0xe0000 0x10000>;
349                                 read-only;
350                         };
351
352                         partition@f0000 {
353                                 label = "appsbl";
354                                 reg = <0xf0000 0xf0000>;
355                                 read-only;
356                         };
357
358                         partition@1e0000 {
359                                 label = "mfginfo";
360                                 reg = <0x1e0000 0x10000>;
361                                 read-only;
362                         };
363
364                         partition@1f0000 {
365                                 label = "apcd";
366                                 reg = <0x1f0000 0x10000>;
367                                 read-only;
368                         };
369
370                         partition@200000 {
371                                 label = "osss";
372                                 reg = <0x200000 0x180000>;
373                                 read-only;
374                         };
375
376                         partition@380000 {
377                                 /* This is empty */
378                                 label = "appsblenv";
379                                 reg = <0x380000 0x10000>;
380                                 read-only;
381                         };
382
383                         partition@390000 {
384                                 label = "pds";
385                                 reg = <0x390000 0x10000>;
386                                 read-only;
387                         };
388
389                         partition@3a0000 {
390                                 label = "fcache";
391                                 reg = <0x3a0000 0x10000>;
392                                 read-only;
393                         };
394
395                         partition@3b0000 {
396                                 /* Called osss1 in smem */
397                                 label = "u-boot-env-bak";
398                                 reg = <0x3b0000 0x10000>;
399                                 read-only;
400                         };
401
402                         partition@3f0000 {
403                                 label = "u-boot-env";
404                                 reg = <0x3f0000 0x10000>;
405                                 read-only;
406                         };
407                 };
408         };
409 };
410
411 &wifi0 {
412         status = "okay";
413         qcom,ath10k-calibration-variant = "Aruba-AP-303";
414 };
415
416 &wifi1 {
417         status = "okay";
418         qcom,ath10k-calibration-variant = "Aruba-AP-303";
419 };