ramips: add support for ALFA Network Quad-E4G
[oweals/openwrt.git] / target / linux / ramips / dts / mt7621_tplink_re650-v1.dts
1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2 /dts-v1/;
3
4 #include "mt7621.dtsi"
5
6 #include <dt-bindings/gpio/gpio.h>
7 #include <dt-bindings/input/input.h>
8
9 / {
10         compatible = "tplink,re650-v1", "mediatek,mt7621-soc";
11         model = "TP-Link RE650 v1";
12
13         aliases {
14                 led-boot = &led_power;
15                 led-failsafe = &led_power;
16                 led-running = &led_power;
17                 led-upgrade = &led_power;
18                 label-mac-device = &ethernet;
19         };
20
21         chosen {
22                 bootargs = "console=ttyS0,57600";
23         };
24
25         leds {
26                 compatible = "gpio-leds";
27
28                 led_power: power {
29                         label = "re650-v1:blue:power";
30                         gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
31                 };
32
33                 wifi2g {
34                         label = "re650-v1:blue:wifi2G";
35                         gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
36                 };
37
38                 wifi5g {
39                         label = "re650-v1:blue:wifi5G";
40                         gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
41                 };
42
43                 wps_red {
44                         label = "re650-v1:red:wps";
45                         gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
46                 };
47
48                 wps_blue {
49                         label = "re650-v1:blue:wps";
50                         gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>;
51                 };
52
53                 eth_act {
54                         label = "re650-v1:green:eth_act";
55                         gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
56                 };
57
58                 eth_link {
59                         label = "re650-v1:green:eth_link";
60                         gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
61                 };
62         };
63
64         keys {
65                 compatible = "gpio-keys";
66
67                 wps {
68                         label = "wps";
69                         gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
70                         debounce-interval = <60>;
71                         linux,code = <KEY_WPS_BUTTON>;
72                 };
73
74                 power {
75                         label = "power";
76                         gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
77                         debounce-interval = <60>;
78                         linux,code = <KEY_POWER>;
79                 };
80
81                 led {
82                         label = "led";
83                         gpios = <&gpio0 30 GPIO_ACTIVE_LOW>;
84                         debounce-interval = <60>;
85                         linux,code = <KEY_LIGHTS_TOGGLE>;
86                 };
87
88                 reset {
89                         label = "reset";
90                         gpios = <&gpio0 31 GPIO_ACTIVE_LOW>;
91                         debounce-interval = <60>;
92                         linux,code = <KEY_RESTART>;
93                 };
94         };
95 };
96
97 &spi0 {
98         status = "okay";
99
100         w25q64@0 {
101                 compatible = "jedec,spi-nor";
102                 reg = <0>;
103                 spi-max-frequency = <40000000>;
104
105                 partitions {
106                         compatible = "fixed-partitions";
107                         #address-cells = <1>;
108                         #size-cells = <1>;
109
110                         partition@0 {
111                                 label = "u-boot";
112                                 reg = <0x0 0x20000>;
113                                 read-only;
114                         };
115
116                         partition@20000 {
117                                 compatible = "tplink,firmware";
118                                 label = "firmware";
119                                 reg = <0x20000 0xde0000>;
120                         };
121
122                         config: partition@e00000 {
123                                 label = "config";
124                                 reg = <0xe00000 0x50000>;
125                                 read-only;
126                         };
127
128                         /* range 0xe50000 to 0xff0000 is empty in vendor
129                          * firmware, so we do not use it either
130                          */
131
132                         radio: partition@ff0000 {
133                                 label = "radio";
134                                 reg = <0xff0000 0x10000>;
135                                 read-only;
136                         };
137                 };
138         };
139 };
140
141 &pcie {
142         status = "okay";
143 };
144
145 &pcie0 {
146         wifi@0,0 {
147                 compatible = "mediatek,mt76";
148                 reg = <0x0000 0 0 0 0>;
149                 mediatek,mtd-eeprom = <&radio 0>;
150                 mtd-mac-address = <&config 0x10008>;
151                 mtd-mac-address-increment = <1>;
152                 ieee80211-freq-limit = <2400000 2500000>;
153         };
154 };
155
156 &pcie1 {
157         wifi@0,0 {
158                 compatible = "mediatek,mt76";
159                 reg = <0x0000 0 0 0 0>;
160                 mediatek,mtd-eeprom = <&radio 0x8000>;
161                 mtd-mac-address = <&config 0x10008>;
162                 mtd-mac-address-increment = <2>;
163                 ieee80211-freq-limit = <5000000 6000000>;
164         };
165 };
166
167 &ethernet {
168         mtd-mac-address = <&config 0x10008>;
169 };
170
171 &pinctrl {
172         state_default: pinctrl0 {
173                 gpio {
174                         ralink,group = "rgmii2", "wdt";
175                         ralink,function = "gpio";
176                 };
177         };
178 };