ath79: convert Atheros DB120 WiFis to nvmem-cells
[openwrt/staging/stintel.git] / target / linux / ath79 / dts / ar9344_atheros_db120.dts
1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2
3 #include "ar9344.dtsi"
4
5 #include <dt-bindings/gpio/gpio.h>
6 #include <dt-bindings/input/input.h>
7 #include <dt-bindings/mtd/partitions/uimage.h>
8
9 / {
10 model = "Atheros DB120 reference board";
11 compatible = "atheros,db120", "qca,ar9344";
12
13 aliases {
14 led-boot = &led_system;
15 led-failsafe = &led_system;
16 led-running = &led_system;
17 led-upgrade = &led_system;
18 };
19
20 leds {
21 compatible = "gpio-leds";
22
23 wlan2g {
24 label = "green:wlan2g";
25 gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
26 linux,default-trigger = "phy0tpt";
27 };
28
29 wlan5g {
30 label = "green:wlan5g";
31 gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
32 linux,default-trigger = "phy1tpt";
33 };
34
35 led_system: system {
36 label = "green:system";
37 gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
38 default-state = "on";
39 };
40
41 usb {
42 label = "green:usb";
43 gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
44 trigger-sources = <&hub_port>;
45 linux,default-trigger = "usbport";
46 };
47 };
48
49 leds-ath9k {
50 compatible = "gpio-leds";
51
52 wlan5g-ath {
53 label = "green:wlan5g-ath";
54 gpios = <&ath9k 0 GPIO_ACTIVE_LOW>;
55 linux,default-trigger = "phy1tpt";
56 };
57 };
58
59 keys {
60 compatible = "gpio-keys";
61
62 wps {
63 linux,code = <KEY_WPS_BUTTON>;
64 label = "WPS button";
65 gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
66 debounce-interval = <60>;
67 };
68 };
69
70 virtual_flash {
71 compatible = "mtd-concat";
72 devices = <&fwconcat0 &fwconcat1>;
73
74 partitions {
75 compatible = "fixed-partitions";
76 #address-cells = <1>;
77 #size-cells = <1>;
78
79 partition@0 {
80 reg = <0x0 0x0>;
81 label = "firmware";
82 compatible = "openwrt,uimage", "denx,uimage";
83 openwrt,ih-magic = <IH_MAGIC_OKLI>;
84 };
85 };
86 };
87 };
88
89 &ref {
90 clock-frequency = <40000000>;
91 };
92
93 &spi {
94 status = "okay";
95
96 flash@0 {
97 compatible = "jedec,spi-nor";
98 reg = <0>;
99 spi-max-frequency = <25000000>;
100
101 partitions {
102 compatible = "fixed-partitions";
103 #address-cells = <1>;
104 #size-cells = <1>;
105
106 uboot: partition@0 {
107 label = "u-boot";
108 reg = <0x000000 0x040000>;
109 read-only;
110 };
111
112 partition@40000 {
113 label = "u-boot-env";
114 reg = <0x040000 0x010000>;
115 read-only;
116 };
117
118 fwconcat0: partition@50000 {
119 label = "fwconcat0";
120 reg = <0x050000 0x630000>;
121 };
122
123 partition@680000 {
124 label = "loader";
125 reg = <0x680000 0x010000>;
126 };
127
128 fwconcat1: partition@690000 {
129 label = "fwconcat1";
130 reg = <0x690000 0x150000>;
131 };
132
133 partition@7e0000 {
134 label = "nvram";
135 reg = <0x7e0000 0x010000>;
136 };
137
138 partition@7f0000 {
139 label = "art";
140 reg = <0x7f0000 0x010000>;
141 read-only;
142
143 compatible = "nvmem-cells";
144 #address-cells = <1>;
145 #size-cells = <1>;
146
147 macaddr_art_0: macaddr@0 {
148 reg = <0x0 0x6>;
149 };
150
151 macaddr_art_6: macaddr@6 {
152 reg = <0x6 0x6>;
153 };
154
155 calibration_art_1000: calibration@1000 {
156 reg = <0x1000 0x440>;
157 };
158
159 calibration_art_5000: calibration@5000 {
160 reg = <0x5000 0x440>;
161 };
162 };
163 };
164 };
165 };
166
167 &eth0 {
168 status = "okay";
169
170 pll-data = <0x06000000 0x00000101 0x00001616>;
171
172 nvmem-cells = <&macaddr_art_0>;
173 nvmem-cell-names = "mac-address";
174
175 phy-mode = "rgmii";
176 phy-handle = <&phy0>;
177 };
178
179 &mdio0 {
180 status = "okay";
181
182 phy0: ethernet-phy@0 {
183 reg = <0>;
184
185 qca,ar8327-initvals = <
186 0x04 0x07600000 /* PORT0 PAD MODE CTRL */
187 0x10 0xc1000000 /* POWER_ON_STRAP */
188 0x7c 0x0000007e /* PORT0_STATUS */
189 0x94 0x0000007e /* PORT6_STATUS */
190 >;
191 };
192 };
193
194 &pinmux {
195 pmx_led_wan_lan: pinmux_led_wan_lan {
196 pinctrl-single,bits = <0x10 0x2c2d0000 0xffff0000>,
197 <0x14 0x292a2b 0xffffff>;
198 };
199 };
200
201 &builtin_switch {
202 pinctrl-names = "default";
203 pinctrl-0 = <&pmx_led_wan_lan>;
204
205 /delete-property/qca,phy4-mii-enable;
206 };
207
208 &eth1 {
209 status = "okay";
210
211 nvmem-cells = <&macaddr_art_6>;
212 nvmem-cell-names = "mac-address";
213
214 gmac-config {
215 device = <&gmac>;
216 switch-phy-swap = <0>;
217 switch-only-mode = <1>;
218 };
219 };
220
221 &pcie {
222 status = "okay";
223
224 ath9k: wifi@0,0 {
225 compatible = "pci168c,0030";
226 reg = <0x0000 0 0 0 0>;
227 nvmem-cells = <&calibration_art_5000>;
228 nvmem-cell-names = "calibration";
229 ieee80211-freq-limit = <4900000 5990000>;
230 #gpio-cells = <2>;
231 gpio-controller;
232 };
233 };
234
235 &wmac {
236 status = "okay";
237
238 nvmem-cells = <&calibration_art_1000>;
239 nvmem-cell-names = "calibration";
240 };
241
242 &usb {
243 status = "okay";
244 };
245
246 &usb_phy {
247 status = "okay";
248 };