ath79: convert mtd-mac-address to nvmem implementation
[openwrt/openwrt.git] / target / linux / ath79 / dts / qca9558_tplink_tl-wdr4900-v2.dts
1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2
3 #include "qca955x.dtsi"
4
5 #include <dt-bindings/gpio/gpio.h>
6 #include <dt-bindings/input/input.h>
7
8 / {
9 compatible = "tplink,tl-wdr4900-v2", "qca,qca9558";
10 model = "TP-Link TL-WDR4900 v2";
11
12 aliases {
13 led-boot = &led_system;
14 led-failsafe = &led_system;
15 led-running = &led_system;
16 led-upgrade = &led_system;
17 label-mac-device = &eth1;
18 };
19
20 leds {
21 compatible = "gpio-leds";
22
23 led_system: system {
24 label = "blue:system";
25 gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
26 default-state = "on";
27 };
28
29 usb1 {
30 label = "green:usb1";
31 gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
32 trigger-sources = <&hub_port1>;
33 linux,default-trigger = "usbport";
34 };
35
36 usb2 {
37 label = "green:usb2";
38 gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
39 trigger-sources = <&hub_port0>;
40 linux,default-trigger = "usbport";
41 };
42
43 wlan2g {
44 label = "blue:wlan2g";
45 gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
46 linux,default-trigger = "phy0tpt";
47 };
48
49 qss {
50 label = "blue:qss";
51 gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
52 };
53 };
54
55 ath9k-leds {
56 compatible = "gpio-leds";
57
58 wlan5g {
59 label = "blue:wlan5g";
60 gpios = <&ath9k 0 GPIO_ACTIVE_LOW>;
61 linux,default-trigger = "phy1tpt";
62 };
63 };
64
65 keys {
66 compatible = "gpio-keys";
67
68 reset {
69 label = "Reset button";
70 linux,code = <KEY_RESTART>;
71 gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
72 debounce-interval = <60>;
73 };
74 };
75
76 gpio-export {
77 compatible = "gpio-export";
78
79 gpio_usb1_power {
80 gpio-export,name = "tp-link:power:usb1";
81 gpio-export,output = <1>;
82 gpios = <&gpio 21 GPIO_ACTIVE_HIGH>;
83 };
84
85 gpio_usb2_power {
86 gpio-export,name = "tp-link:power:usb2";
87 gpio-export,output = <1>;
88 gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
89 };
90 };
91 };
92
93 &pcie1 {
94 status = "okay";
95
96 ath9k: wifi@0,0 {
97 compatible = "pci168c,0033";
98 reg = <0x0000 0 0 0 0>;
99 nvmem-cells = <&macaddr_uboot_1fc00>;
100 nvmem-cell-names = "mac-address";
101 mac-address-increment = <(-2)>;
102 qca,no-eeprom;
103 #gpio-cells = <2>;
104 gpio-controller;
105 };
106 };
107
108 &usb_phy0 {
109 status = "okay";
110 };
111
112 &usb0 {
113 #address-cells = <1>;
114 #size-cells = <0>;
115 status = "okay";
116
117 hub_port0: port@1 {
118 reg = <1>;
119 #trigger-source-cells = <0>;
120 };
121 };
122
123 &usb_phy1 {
124 status = "okay";
125 };
126
127 &usb1 {
128 #address-cells = <1>;
129 #size-cells = <0>;
130 status = "okay";
131
132 hub_port1: port@1 {
133 reg = <1>;
134 #trigger-source-cells = <0>;
135 };
136 };
137
138 &spi {
139 status = "okay";
140
141 flash@0 {
142 compatible = "jedec,spi-nor";
143 reg = <0>;
144 spi-max-frequency = <25000000>;
145
146 partitions {
147 compatible = "fixed-partitions";
148 #address-cells = <1>;
149 #size-cells = <1>;
150
151 uboot: partition@0 {
152 label = "u-boot";
153 reg = <0x000000 0x020000>;
154 read-only;
155 };
156
157 partition@20000 {
158 compatible = "tplink,firmware";
159 label = "firmware";
160 reg = <0x020000 0x7d0000>;
161 };
162
163 art: partition@7f0000 {
164 label = "art";
165 reg = <0x7f0000 0x010000>;
166 read-only;
167 };
168 };
169 };
170 };
171
172 &mdio0 {
173 status = "okay";
174
175 phy0: ethernet-phy@0 {
176 reg = <0>;
177
178 qca,ar8327-initvals = <
179 0x04 0x00080080 /* PORT0 PAD MODE CTRL */
180 0x0c 0x07600000 /* PORT6 PAD MODE CTRL */
181 0x50 0xc737c737 /* LED_CTRL0 */
182 0x54 0x00000000 /* LED_CTRL1 */
183 0x58 0x00000000 /* LED_CTRL2 */
184 0x5c 0x0030c300 /* LED_CTRL3 */
185 0x7c 0x0000007e /* PORT0_STATUS */
186 0x94 0x0000007e /* PORT6 STATUS */
187 >;
188 };
189 };
190
191 &eth0 {
192 status = "okay";
193
194 nvmem-cells = <&macaddr_uboot_1fc00>;
195 nvmem-cell-names = "mac-address";
196 mac-address-increment = <1>;
197 phy-handle = <&phy0>;
198 pll-data = <0x56000000 0x00000101 0x00001616>;
199
200 gmac-config {
201 device = <&gmac>;
202 rgmii-enabled = <1>;
203 };
204 };
205
206 &eth1 {
207 status = "okay";
208
209 nvmem-cells = <&macaddr_uboot_1fc00>;
210 nvmem-cell-names = "mac-address";
211 pll-data = <0x03000101 0x00000101 0x00001616>;
212
213 fixed-link {
214 speed = <1000>;
215 full-duplex;
216 };
217 };
218
219 &wmac {
220 status = "okay";
221
222 mtd-cal-data = <&art 0x1000>;
223 nvmem-cells = <&macaddr_uboot_1fc00>;
224 nvmem-cell-names = "mac-address";
225 mac-address-increment = <(-1)>;
226 };
227
228 &uboot {
229 compatible = "nvmem-cells";
230 #address-cells = <1>;
231 #size-cells = <1>;
232
233 macaddr_uboot_1fc00: macaddr@1fc00 {
234 reg = <0x1fc00 0x6>;
235 };
236 };