ipq806x: refactor l2 freq scaling patch
[oweals/openwrt.git] / target / linux / ipq806x / files-4.19 / arch / arm / boot / dts / qcom-ipq8065-r7800.dts
1 #include "qcom-ipq8065.dtsi"
2
3 #include <dt-bindings/input/input.h>
4
5 / {
6         model = "Netgear Nighthawk X4S R7800";
7         compatible = "netgear,r7800", "qcom,ipq8065", "qcom,ipq8064";
8
9         memory@0 {
10                 reg = <0x42000000 0x1e000000>;
11                 device_type = "memory";
12         };
13
14         reserved-memory {
15                 #address-cells = <1>;
16                 #size-cells = <1>;
17                 ranges;
18                 rsvd@41200000 {
19                         reg = <0x41200000 0x300000>;
20                         no-map;
21                 };
22
23                 rsvd@5fe00000 {
24                         reg = <0x5fe00000 0x200000>;
25                         reusable;
26                 };
27         };
28
29         aliases {
30                 serial0 = &gsbi4_serial;
31                 mdio-gpio0 = &mdio0;
32
33                 led-boot = &power_white;
34                 led-failsafe = &power_amber;
35                 led-running = &power_white;
36                 led-upgrade = &power_amber;
37                 label-mac-device = &gmac2;
38         };
39
40         chosen {
41                 stdout-path = "serial0:115200n8";
42         };
43
44         soc {
45                 pinmux@800000 {
46                         button_pins: button_pins {
47                                 mux {
48                                         pins = "gpio6", "gpio54", "gpio65";
49                                         function = "gpio";
50                                         drive-strength = <2>;
51                                         bias-pull-up;
52                                 };
53                         };
54
55                         i2c4_pins: i2c4_pinmux {
56                                 mux {
57                                         pins = "gpio12", "gpio13";
58                                         function = "gsbi4";
59                                         drive-strength = <12>;
60                                         bias-disable;
61                                 };
62                         };
63
64                         led_pins: led_pins {
65                                 pins = "gpio7", "gpio8", "gpio9", "gpio22", "gpio23",
66                                         "gpio24","gpio26", "gpio53", "gpio64";
67                                 function = "gpio";
68                                 drive-strength = <2>;
69                                 bias-pull-down;
70                         };
71
72                         nand_pins: nand_pins {
73                                 disable {
74                                         pins = "gpio34", "gpio35", "gpio36",
75                                                "gpio37", "gpio38";
76                                         function = "nand";
77                                         drive-strength = <10>;
78                                         bias-disable;
79                                 };
80
81                                 pullups {
82                                         pins = "gpio39";
83                                         function = "nand";
84                                         drive-strength = <10>;
85                                         bias-pull-up;
86                                 };
87
88                                 hold {
89                                         pins = "gpio40", "gpio41", "gpio42",
90                                                "gpio43", "gpio44", "gpio45",
91                                                "gpio46", "gpio47";
92                                         function = "nand";
93                                         drive-strength = <10>;
94                                         bias-bus-hold;
95                                 };
96                         };
97
98                         mdio0_pins: mdio0_pins {
99                                 mux {
100                                         pins = "gpio0", "gpio1";
101                                         function = "gpio";
102                                         drive-strength = <8>;
103                                         bias-disable;
104                                 };
105
106                                 clk {
107                                         pins = "gpio1";
108                                         input-disable;
109                                 };
110                         };
111
112                         rgmii2_pins: rgmii2_pins {
113                                 mux {
114                                         pins = "gpio27", "gpio28", "gpio29", "gpio30", "gpio31", "gpio32",
115                                                "gpio51", "gpio52", "gpio59", "gpio60", "gpio61", "gpio62" ;
116                                         function = "rgmii2";
117                                         drive-strength = <8>;
118                                         bias-disable;
119                                 };
120
121                                 tx {
122                                         pins = "gpio27", "gpio28", "gpio29", "gpio30", "gpio31", "gpio32" ;
123                                         input-disable;
124                                 };
125                         };
126
127                         spi_pins: spi_pins {
128                                 mux {
129                                         pins = "gpio18", "gpio19", "gpio21";
130                                         function = "gsbi5";
131                                         bias-pull-down;
132                                 };
133
134                                 data {
135                                         pins = "gpio18", "gpio19";
136                                         drive-strength = <10>;
137                                 };
138
139                                 cs {
140                                         pins = "gpio20";
141                                         drive-strength = <10>;
142                                         bias-pull-up;
143                                 };
144
145                                 clk {
146                                         pins = "gpio21";
147                                         drive-strength = <12>;
148                                 };
149                         };
150
151                         spi6_pins: spi6_pins {
152                                 mux {
153                                         pins = "gpio55", "gpio56", "gpio58";
154                                         function = "gsbi6";
155                                         bias-pull-down;
156                                 };
157
158                                 mosi {
159                                         pins = "gpio55";
160                                         drive-strength = <12>;
161                                 };
162
163                                 miso {
164                                         pins = "gpio56";
165                                         drive-strength = <14>;
166                                 };
167
168                                 cs {
169                                         pins = "gpio57";
170                                         drive-strength = <12>;
171                                         bias-pull-up;
172                                 };
173
174                                 clk {
175                                         pins = "gpio58";
176                                         drive-strength = <12>;
177                                 };
178
179                                 reset {
180                                         pins = "gpio33";
181                                         drive-strength = <10>;
182                                         bias-pull-down;
183                                         output-high;
184                                 };
185                         };
186
187                         usb0_pwr_en_pins: usb0_pwr_en_pins {
188                                 mux {
189                                         pins = "gpio15";
190                                         function = "gpio";
191                                         drive-strength = <12>;
192                                         bias-pull-down;
193                                         output-high;
194                                 };
195                         };
196
197                         usb1_pwr_en_pins: usb1_pwr_en_pins {
198                                 mux {
199                                         pins = "gpio16", "gpio68";
200                                         function = "gpio";
201                                         drive-strength = <12>;
202                                         bias-pull-down;
203                                         output-high;
204                                 };
205                         };
206                 };
207
208                 gsbi@16300000 {
209                         qcom,mode = <GSBI_PROT_I2C_UART>;
210                         status = "okay";
211                         serial@16340000 {
212                                 status = "okay";
213                         };
214                         /*
215                          * The i2c device on gsbi4 should not be enabled.
216                          * On ipq806x designs gsbi4 i2c is meant for exclusive
217                          * RPM usage. Turning this on in kernel manifests as
218                          * i2c failure for the RPM.
219                          */
220                 };
221
222                 sata-phy@1b400000 {
223                         status = "okay";
224                 };
225
226                 sata@29000000 {
227                         ports-implemented = <0x1>;
228                         status = "okay";
229                 };
230
231                 usb3_0: usb3@110f8800 {
232                         status = "okay";
233
234                         pinctrl-0 = <&usb0_pwr_en_pins>;
235                         pinctrl-names = "default";
236                 };
237
238                 usb3_1: usb3@100f8800 {
239                         status = "okay";
240
241                         pinctrl-0 = <&usb1_pwr_en_pins>;
242                         pinctrl-names = "default";
243                 };
244
245                 pcie0: pci@1b500000 {
246                         status = "okay";
247
248                         bridge@0,0 {
249                                 reg = <0x00000000 0 0 0 0>;
250                                 #address-cells = <3>;
251                                 #size-cells = <2>;
252                                 ranges;
253
254                                 wifi@1,0 {
255                                         compatible = "pci168c,0046";
256                                         reg = <0x00010000 0 0 0 0>;
257
258                                         mtd-mac-address = <&art 6>;
259                                         mtd-mac-address-increment = <(1)>;
260                                 };
261                         };
262                 };
263
264                 pcie1: pci@1b700000 {
265                         status = "okay";
266                         force_gen1 = <1>;
267
268                         bridge@0,0 {
269                                 reg = <0x00000000 0 0 0 0>;
270                                 #address-cells = <3>;
271                                 #size-cells = <2>;
272                                 ranges;
273
274                                 wifi@1,0 {
275                                         compatible = "pci168c,0046";
276                                         reg = <0x00010000 0 0 0 0>;
277
278                                         mtd-mac-address = <&art 6>;
279                                         mtd-mac-address-increment = <(2)>;
280                                 };
281                         };
282                 };
283
284                 nand@1ac00000 {
285                         status = "okay";
286
287                         pinctrl-0 = <&nand_pins>;
288                         pinctrl-names = "default";
289
290                         cs0 {
291                                 reg = <0>;
292                                 compatible = "qcom,nandcs";
293
294                                 nand-ecc-strength = <4>;
295                                 nand-bus-width = <8>;
296                                 nand-ecc-step-size = <512>;
297
298                                 partitions {
299                                         compatible = "fixed-partitions";
300                                         #address-cells = <1>;
301                                         #size-cells = <1>;
302
303                                         qcadata@0 {
304                                                 label = "qcadata";
305                                                 reg = <0x0000000 0x0c80000>;
306                                                 read-only;
307                                         };
308
309                                         APPSBL@c80000 {
310                                                 label = "APPSBL";
311                                                 reg = <0x0c80000 0x0500000>;
312                                                 read-only;
313                                         };
314
315                                         APPSBLENV@1180000 {
316                                                 label = "APPSBLENV";
317                                                 reg = <0x1180000 0x0080000>;
318                                                 read-only;
319                                         };
320
321                                         art: art@1200000 {
322                                                 label = "art";
323                                                 reg = <0x1200000 0x0140000>;
324                                                 read-only;
325                                         };
326
327                                         artbak: art@1340000 {
328                                                 label = "artbak";
329                                                 reg = <0x1340000 0x0140000>;
330                                                 read-only;
331                                         };
332
333                                         kernel@1480000 {
334                                                 label = "kernel";
335                                                 reg = <0x1480000 0x0400000>;
336                                         };
337
338                                         ubi@1880000 {
339                                                 label = "ubi";
340                                                 reg = <0x1880000 0x6080000>;
341                                         };
342
343                                         reserve@7900000 {
344                                                 label = "reserve";
345                                                 reg = <0x7900000 0x0700000>;
346                                                 read-only;
347                                         };
348                                 };
349                         };
350                 };
351
352                 mdio0: mdio {
353                         compatible = "virtual,mdio-gpio";
354                         #address-cells = <1>;
355                         #size-cells = <0>;
356                         gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>,
357                                 <&qcom_pinmux 0 GPIO_ACTIVE_HIGH>;
358                         pinctrl-0 = <&mdio0_pins>;
359                         pinctrl-names = "default";
360
361
362                         phy0: ethernet-phy@0 {
363                                 reg = <0>;
364                                 qca,ar8327-initvals = <
365                                         0x00004 0x7600000   /* PAD0_MODE */
366                                         0x00008 0x1000000   /* PAD5_MODE */
367                                         0x0000c 0x80        /* PAD6_MODE */
368                                         0x000e4 0xaa545     /* MAC_POWER_SEL */
369                                         0x000e0 0xc74164de  /* SGMII_CTRL */
370                                         0x0007c 0x4e        /* PORT0_STATUS */
371                                         0x00094 0x4e        /* PORT6_STATUS */
372                                         0x00970 0x1e864443  /* QM_PORT0_CTRL0 */
373                                         0x00974 0x000001c6  /* QM_PORT0_CTRL1 */
374                                         0x00978 0x19008643  /* QM_PORT1_CTRL0 */
375                                         0x0097c 0x000001c6  /* QM_PORT1_CTRL1 */
376                                         0x00980 0x19008643  /* QM_PORT2_CTRL0 */
377                                         0x00984 0x000001c6  /* QM_PORT2_CTRL1 */
378                                         0x00988 0x19008643  /* QM_PORT3_CTRL0 */
379                                         0x0098c 0x000001c6  /* QM_PORT3_CTRL1 */
380                                         0x00990 0x19008643  /* QM_PORT4_CTRL0 */
381                                         0x00994 0x000001c6  /* QM_PORT4_CTRL1 */
382                                         0x00998 0x1e864443  /* QM_PORT5_CTRL0 */
383                                         0x0099c 0x000001c6  /* QM_PORT5_CTRL1 */
384                                         0x009a0 0x1e864443  /* QM_PORT6_CTRL0 */
385                                         0x009a4 0x000001c6  /* QM_PORT6_CTRL1 */
386                                         >;
387                                 qca,ar8327-vlans = <
388                                         0x1     0x5e        /* VLAN1 Ports 1/2/3/4/6 */
389                                         0x2     0x21        /* VLAN2 Ports 0/5 */
390                                 >;
391                         };
392
393                         phy4: ethernet-phy@4 {
394                                 reg = <4>;
395                                 qca,ar8327-initvals = <
396                                         0x000e4 0x6a545     /* MAC_POWER_SEL */
397                                         0x0000c 0x80        /* PAD6_MODE */
398                                         >;
399                         };
400                 };
401
402                 gmac1: ethernet@37200000 {
403                         status = "okay";
404                         phy-mode = "rgmii";
405                         qcom,id = <1>;
406                         qcom,phy_mdio_addr = <4>;
407                         qcom,poll_required = <0>;
408                         qcom,rgmii_delay = <1>;
409                         qcom,phy_mii_type = <0>;
410                         qcom,emulation = <0>;
411                         qcom,irq = <255>;
412                         mdiobus = <&mdio0>;
413
414                         pinctrl-0 = <&rgmii2_pins>;
415                         pinctrl-names = "default";
416
417                         mtd-mac-address = <&art 6>;
418
419                         fixed-link {
420                                 speed = <1000>;
421                                 full-duplex;
422                         };
423                 };
424
425                 gmac2: ethernet@37400000 {
426                         status = "okay";
427                         phy-mode = "sgmii";
428                         qcom,id = <2>;
429                         qcom,phy_mdio_addr = <0>;       /* none */
430                         qcom,poll_required = <0>;       /* no polling */
431                         qcom,rgmii_delay = <0>;
432                         qcom,phy_mii_type = <1>;
433                         qcom,emulation = <0>;
434                         qcom,irq = <258>;
435                         mdiobus = <&mdio0>;
436
437                         mtd-mac-address = <&art 0>;
438
439                         fixed-link {
440                                 speed = <1000>;
441                                 full-duplex;
442                         };
443                 };
444         };
445
446         keys {
447                 compatible = "gpio-keys";
448                 pinctrl-0 = <&button_pins>;
449                 pinctrl-names = "default";
450
451                 wifi {
452                         label = "wifi";
453                         gpios = <&qcom_pinmux 6 GPIO_ACTIVE_LOW>;
454                         linux,code = <KEY_RFKILL>;
455                         debounce-interval = <60>;
456                         wakeup-source;
457                 };
458
459                 reset {
460                         label = "reset";
461                         gpios = <&qcom_pinmux 54 GPIO_ACTIVE_LOW>;
462                         linux,code = <KEY_RESTART>;
463                         debounce-interval = <60>;
464                         wakeup-source;
465                 };
466
467                 wps {
468                         label = "wps";
469                         gpios = <&qcom_pinmux 65 GPIO_ACTIVE_LOW>;
470                         linux,code = <KEY_WPS_BUTTON>;
471                         debounce-interval = <60>;
472                         wakeup-source;
473                 };
474         };
475
476         leds {
477                 compatible = "gpio-leds";
478                 pinctrl-0 = <&led_pins>;
479                 pinctrl-names = "default";
480
481                 power_white: power_white {
482                         label = "r7800:white:power";
483                         gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>;
484                         default-state = "keep";
485                 };
486
487                 power_amber: power_amber {
488                         label = "r7800:amber:power";
489                         gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>;
490                 };
491
492                 wan_white {
493                         label = "r7800:white:wan";
494                         gpios = <&qcom_pinmux 22 GPIO_ACTIVE_HIGH>;
495                 };
496
497                 wan_amber {
498                         label = "r7800:amber:wan";
499                         gpios = <&qcom_pinmux 23 GPIO_ACTIVE_HIGH>;
500                 };
501
502                 usb1 {
503                         label = "r7800:white:usb1";
504                         gpios = <&qcom_pinmux 7 GPIO_ACTIVE_HIGH>;
505                 };
506
507                 usb2 {
508                         label = "r7800:white:usb2";
509                         gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>;
510                 };
511
512                 esata {
513                         label = "r7800:white:esata";
514                         gpios = <&qcom_pinmux 26 GPIO_ACTIVE_HIGH>;
515                 };
516
517                 wifi {
518                         label = "r7800:white:wifi";
519                         gpios = <&qcom_pinmux 64 GPIO_ACTIVE_HIGH>;
520                 };
521
522                 wps {
523                         label = "r7800:white:wps";
524                         gpios = <&qcom_pinmux 24 GPIO_ACTIVE_HIGH>;
525                 };
526         };
527 };
528
529 &adm_dma {
530         status = "okay";
531 };