ath79: add support for TP-Link RE450 v2
[oweals/openwrt.git] / target / linux / ath79 / dts / qca9563_tl-re450-v2.dts
1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2 /dts-v1/;
3
4 #include <dt-bindings/gpio/gpio.h>
5 #include <dt-bindings/input/input.h>
6
7 #include "qca956x.dtsi"
8
9 / {
10         compatible = "tplink,re450-v2", "qca,qca9563";
11         model = "TP-Link RE450 v2";
12
13         chosen {
14                 bootargs = "console=ttyS0,115200n8";
15         };
16
17         aliases {
18                 led-status = &system;
19                 mdio-gpio0 = &mdio2;
20         };
21
22         leds {
23                 compatible = "gpio-leds";
24
25                 system: power {
26                         label = "tp-link:blue:power";
27                         gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
28                 };
29
30                 wlan2g {
31                         label = "tp-link:blue:wlan2g";
32                         gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
33                         default-state = "off";
34                         linux,default-trigger = "phy1tpt";
35                 };
36
37                 wlan5g {
38                         label = "tp-link:blue:wlan5g";
39                         gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
40                         default-state = "off";
41                         linux,default-trigger = "phy0tpt";
42                 };
43
44                 lan_link {
45                         label = "tp-link:green:lan_link";
46                         gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
47                         default-state = "off";
48                 };
49
50                 lan_data {
51                         label = "tp-link:green:lan_data";
52                         gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
53                         default-state = "off";
54                 };
55
56                 wps_blue {
57                         label = "tp-link:blue:wps";
58                         gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
59                         default-state = "off";
60                 };
61
62                 wps_red {
63                         label = "tp-link:red:wps";
64                         gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
65                         default-state = "off";
66                 };
67         };
68
69         keys {
70                 compatible = "gpio-keys";
71                 #address-cells = <1>;
72                 #size-cells = <0>;
73
74                 reset {
75                         label = "Reset button";
76                         linux,code = <KEY_RESTART>;
77                         gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
78                         debounce-interval = <60>;
79                 };
80
81                 power {
82                         label = "Power button";
83                         linux,code = <KEY_POWER>;
84                         gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
85                         debounce-interval = <60>;
86                 };
87
88                 leds {
89                         label = "LED control button";
90                         linux,code = <BTN_0>;
91                         gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
92                         debounce-interval = <60>;
93                 };
94
95                 wps {
96                         label = "WPS button";
97                         linux,code = <KEY_WPS_BUTTON>;
98                         gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
99                         debounce-interval = <60>;
100                 };
101         };
102
103         mdio2: mdio {
104                 compatible = "virtual,mdio-gpio";
105
106                 gpios = <&gpio 3 GPIO_ACTIVE_HIGH>, /* MDC */
107                         <&gpio 4 GPIO_ACTIVE_HIGH>; /* MDIO */
108                 #address-cells = <1>;
109                 #size-cells = <0>;
110
111                 phy0: ethernet-phy@4 {
112                         reg = <4>;
113                         device_type = "ethernet-phy";
114                         reset-gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
115                 };
116         };
117 };
118
119 &pcie {
120         status = "okay";
121 };
122
123 &uart {
124         status = "okay";
125 };
126
127 &gpio {
128         status = "okay";
129 };
130
131 &spi {
132         status = "okay";
133         num-cs = <1>;
134
135         flash@0 {
136                 #address-cells = <1>;
137                 #size-cells = <1>;
138                 compatible = "jedec,spi-nor";
139                 reg = <0>;
140                 spi-max-frequency = <25000000>;
141
142                 partitions {
143                         compatible = "fixed-partitions";
144                         #address-cells = <1>;
145                         #size-cells = <1>;
146
147                         partition@0 {
148                                 label = "u-boot";
149                                 reg = <0x000000 0x020000>;
150                                 read-only;
151                         };
152
153                         partition@20000 {
154                                 label = "firmware";
155                                 reg = <0x020000 0x5e0000>;
156                         };
157
158                         partition@600000 {
159                                 label = "partition-table";
160                                 reg = <0x600000 0x010000>;
161                                 read-only;
162                         };
163
164                         info: partition@610000 {
165                                 label = "product-info";
166                                 reg = <0x610000 0x020000>;
167                                 read-only;
168                         };
169
170                         partition@630000 {
171                                 label = "config";
172                                 reg = <0x630000 0x020000>;
173                                 read-only;
174                         };
175
176                         art: partition@7f0000 {
177                                 label = "art";
178                                 reg = <0x7f0000 0x010000>;
179                                 read-only;
180                         };
181                 };
182         };
183 };
184
185 &eth0 {
186         status = "okay";
187         mtd-mac-address = <&info 0x8>;
188         phy-handle = <&phy0>;
189 };
190
191 &wmac {
192         status = "okay";
193         mtd-cal-data = <&art 0x1000>;
194         mtd-mac-address = <&info 0x8>;
195 };