ath79: add support for WD My Net Wi-Fi Range Extender
[oweals/openwrt.git] / target / linux / ath79 / dts / ar9344_wd_mynet-wifi-rangeextender.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 "ar9344.dtsi"
8
9 / {
10         model = "Western Digital My Net Wi-Fi Range Extender";
11         compatible = "wd,mynet-wifi-rangeextender", "qca,ar9344";
12
13         chosen {
14                 bootargs = "console=ttyS0,115200n8";
15         };
16
17         aliases {
18                 led-boot = &power;
19                 led-failsafe = &power;
20                 led-running = &power;
21                 led-upgrade = &power;
22         };
23
24         leds {
25                 compatible = "gpio-leds";
26
27                 power: power {
28                         label = "mynet-wifi-rangeextender:blue:power";
29                         gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
30                         /* LED has no off state. It's either on or it blinks */
31                 };
32
33                 lan {
34                         label = "mynet-wifi-rangeextender:green:lan";
35                         gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
36                 };
37
38                 wifi {
39                         label = "mynet-wifi-rangeextender:blue:wifi";
40                         gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
41                         linux,default-trigger = "phy0tpt";
42                 };
43
44                 wifi-rssi-low {
45                         label = "mynet-wifi-rangeextender:blue:rssi-low";
46                         gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
47                 };
48
49                 wifi-rssi-med {
50                         label = "mynet-wifi-rangeextender:blue:rssi-med";
51                         gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
52                 };
53
54                 wifi-rssi-max {
55                         label = "mynet-wifi-rangeextender:blue:rssi-max";
56                         gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
57                 };
58         };
59
60         keys {
61                 compatible = "gpio-keys-polled";
62                 poll-interval = <50>;
63
64                 reset {
65                         linux,code = <KEY_RESTART>;
66                         gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
67                         debounce-interval = <60>;
68                 };
69
70                 band-switch {
71                         linux,code = <BTN_1>;
72                         gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
73                         linux,input-type = <EV_SW>;
74                         debounce-interval = <60>;
75                 };
76
77                 wps {
78                         linux,code = <KEY_WPS_BUTTON>;
79                         gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
80                         debounce-interval = <60>;
81                 };
82         };
83 };
84
85 &ref {
86         clock-frequency = <25000000>;
87 };
88
89 &uart {
90         status = "okay";
91 };
92
93 &spi {
94         num-cs = <1>;
95
96         status = "okay";
97
98         flash@0 {
99                 compatible = /* "s25fl064k", */ "jedec,spi-nor";
100                 reg = <0>;
101                 spi-max-frequency = <25000000>;
102
103                 partitions {
104                         compatible = "fixed-partitions";
105                         #address-cells = <1>;
106                         #size-cells = <1>;
107
108                         uboot: partition@0 {
109                                 label = "u-boot";
110                                 reg = <0x0 0x040000>;
111                                 read-only;
112                         };
113
114                         partition@40000 {
115                                 label = "firmware";
116                                 reg = <0x40000 0x7a0000>;
117                                 compatible = "cybertan,trx";
118                         };
119
120                         nvram: partition@7e0000 {
121                                 label = "nvram";
122                                 reg = <0x7e0000 0x10000>;
123                         };
124
125                         art: partition@7f0000 {
126                                 label = "art";
127                                 reg = <0x7f0000 0x10000>;
128                                 read-only;
129                         };
130                 };
131         };
132 };
133
134 &pcie {
135         status = "okay";
136
137         ath9k: wifi@0,0 {
138                 compatible = "pci168c,0030";
139                 reg = <0x0000 0 0 0 0>;
140                 qca,no-eeprom;
141                 /* wifi MAC is stored in nvram */
142         };
143 };
144
145 &mdio0 {
146         status = "okay";
147
148         phy-mask = <0x10>;
149
150         phy4: ethernet-phy@4 {
151                 reg = <4>;
152         };
153 };
154
155 &eth0 {
156         status = "okay";
157
158         pll-data = <0x0e000000 0x3c000101 0x3c001313>;
159
160         /* ethernet MAC is stored in nvram */
161         phy-mode = "rgmii";
162         phy-handle = <&phy4>;
163
164         gmac-config {
165                 device = <&gmac>;
166                 rgmii-gmac0 = <1>;
167                 rxd-delay = <3>;
168                 rxdv-delay = <3>;
169         };
170 };
171
172 &mdio1 {
173         status = "disabled";
174 };