ramips: convert rt2x00 EEPROM to NVMEM format
[openwrt/openwrt.git] / target / linux / ramips / dts / mt7621_keenetic_kn-3010.dts
1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2 #include "mt7621.dtsi"
3
4 #include <dt-bindings/gpio/gpio.h>
5 #include <dt-bindings/input/input.h>
6
7 / {
8 compatible = "keenetic,kn-3010", "mediatek,mt7621-soc";
9 model = "Keenetic KN-3010";
10
11 aliases {
12 led-boot = &led_power;
13 led-failsafe = &led_power;
14 led-running = &led_power;
15 led-upgrade = &led_power;
16 label-mac-device = &gmac0;
17 };
18
19 chosen {
20 bootargs = "console=ttyS0,115200";
21 };
22
23 leds {
24 compatible = "gpio-leds";
25
26 led_power: power {
27 label = "green:power";
28 gpios = <&gpio 45 GPIO_ACTIVE_HIGH>;
29 };
30
31 internet {
32 label = "green:internet";
33 gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
34 };
35
36 wifi2 {
37 label = "green:wifi2";
38 gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
39 linux,default-trigger = "phy0tpt";
40 };
41
42 wifi5 {
43 label = "green:wifi5";
44 gpios = <&gpio 48 GPIO_ACTIVE_LOW>;
45 linux,default-trigger = "phy1tpt";
46 };
47 };
48
49 keys {
50 compatible = "gpio-keys";
51
52 fn {
53 label = "fn";
54 gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
55 linux,code = <BTN_0>;
56 };
57
58 reset {
59 label = "reset";
60 gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
61 linux,code = <KEY_RESTART>;
62 };
63
64 wps {
65 label = "wps";
66 gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
67 linux,code = <KEY_WPS_BUTTON>;
68 };
69 };
70
71 virtual_flash {
72 compatible = "mtd-concat";
73 devices = <&firmware1 &firmware2>;
74
75 partitions {
76 compatible = "fixed-partitions";
77 #address-cells = <1>;
78 #size-cells = <1>;
79
80 partition@0 {
81 compatible = "denx,uimage";
82 label = "firmware";
83 reg = <0x0 0x1ec0000>;
84 };
85 };
86 };
87 };
88
89 &state_default {
90 gpio {
91 groups = "uart3", "sdhci";
92 function = "gpio";
93 };
94 };
95
96 &xhci {
97 status = "disabled";
98 };
99
100 &spi0 {
101 status = "okay";
102
103 flash@0 {
104 compatible = "jedec,spi-nor";
105 reg = <0>;
106 spi-max-frequency = <31000000>;
107
108 partitions: partitions {
109 compatible = "fixed-partitions";
110 #address-cells = <1>;
111 #size-cells = <1>;
112
113 partition@0 {
114 label = "u-boot";
115 reg = <0x0 0x30000>;
116 read-only;
117 };
118
119 partition@30000 {
120 label = "u-config";
121 reg = <0x30000 0x10000>;
122 read-only;
123 };
124
125 factory: partition@40000 {
126 compatible = "nvmem-cells";
127 label = "rf-eeprom";
128 reg = <0x40000 0x10000>;
129 #address-cells = <1>;
130 #size-cells = <1>;
131 read-only;
132
133 eeprom_factory_0: eeprom@0 {
134 reg = <0x0 0x400>;
135 };
136
137 eeprom_factory_400: eeprom@400 {
138 reg = <0x400 0x4da8>;
139 };
140
141 macaddr_factory_4: macaddr@4 {
142 reg = <0x4 0x6>;
143 };
144
145 macaddr_factory_28: macaddr@28 {
146 reg = <0x28 0x6>;
147 };
148 };
149
150 firmware1: partition@50000 {
151 label = "firmware_1";
152 reg = <0x50000 0xf60000>;
153 };
154
155 partition@fb0000 {
156 label = "config_1";
157 reg = <0xfb0000 0x40000>;
158 read-only;
159 };
160
161 partition@ff0000 {
162 label = "dump";
163 reg = <0xff0000 0x10000>;
164 read-only;
165 };
166
167 partition@1000000 {
168 label = "u-state";
169 reg = <0x1000000 0x30000>;
170 read-only;
171 };
172
173 partition@1030000 {
174 label = "u-config_res";
175 reg = <0x1030000 0x10000>;
176 read-only;
177 };
178
179 partition@1040000 {
180 label = "rf-eeprom_res";
181 reg = <0x1040000 0x10000>;
182 read-only;
183 };
184
185 firmware2: partition@1050000 {
186 label = "firmware_2";
187 reg = <0x1050000 0xf60000>;
188 };
189
190 partition@1fb0000 {
191 label = "config_2";
192 reg = <0x1fb0000 0x40000>;
193 read-only;
194 };
195 };
196 };
197 };
198
199 &mdio {
200 ethphy0: ethernet-phy@0 {
201 reg = <0>;
202 };
203 };
204
205 &gmac0 {
206 nvmem-cells = <&macaddr_factory_4>;
207 nvmem-cell-names = "mac-address";
208 };
209
210 &gmac1 {
211 status = "okay";
212 label = "wan";
213 phy-handle = <&ethphy0>;
214
215 nvmem-cells = <&macaddr_factory_28>;
216 nvmem-cell-names = "mac-address";
217 };
218
219 &switch0 {
220 ports {
221 port@1 {
222 status = "okay";
223 label = "lan1";
224 };
225
226 port@2 {
227 status = "okay";
228 label = "lan2";
229 };
230
231 port@3 {
232 status = "okay";
233 label = "lan3";
234 };
235
236 port@4 {
237 status = "okay";
238 label = "lan4";
239 };
240 };
241 };
242
243 &pcie {
244 status = "okay";
245 };
246
247 &pcie0 {
248 wifi@0,0 {
249 compatible = "mediatek,mt76";
250 reg = <0x0000 0 0 0 0>;
251 nvmem-cells = <&eeprom_factory_0>;
252 nvmem-cell-names = "eeprom";
253 ieee80211-freq-limit = <2400000 2500000>;
254 };
255 };
256
257 &pcie1 {
258 wifi@0,0 {
259 compatible = "mediatek,mt76";
260 reg = <0x0000 0 0 0 0>;
261 nvmem-cells = <&eeprom_factory_400>;
262 nvmem-cell-names = "eeprom";
263 ieee80211-freq-limit = <5000000 6000000>;
264 };
265 };