lantiq: update TDW8970.dts to support buttons properly
[openwrt.git] / target / linux / lantiq / dts / TDW8970.dts
1 /dts-v1/;
2
3 /include/ "vr9.dtsi"
4
5 / {
6         model = "TDW8970 - TP-LINK TD-W8970";
7
8         chosen {
9                 bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
10         };
11
12         memory@0 {
13                 reg = <0x0 0x4000000>;
14         };
15
16         fpi@10000000 {
17                 gpio: pinmux@E100B10 {
18                         pinctrl-names = "default";
19                         pinctrl-0 = <&state_default>;
20
21                         state_default: pinmux {
22                                 mdio {
23                                         lantiq,groups = "mdio";
24                                         lantiq,function = "mdio";
25                                 };
26                                 gphy-leds {
27                                         lantiq,groups = "gphy0 led1", "gphy1 led1";
28                                         lantiq,function = "gphy";
29                                         lantiq,pull = <2>;
30                                         lantiq,open-drain = <0>;
31                                         lantiq,output = <1>;
32                                 };
33                                 phy-rst {
34                                         lantiq,pins = "io42";
35                                         lantiq,pull = <0>;
36                                         lantiq,open-drain = <0>;
37                                         lantiq,output = <1>;
38                                 };
39                                 spi-in {
40                                         lantiq,pins = "io16";
41                                         lantiq,open-drain = <1>;
42                                         lantiq,pull = <2>;
43                                 };
44                                 spi-out {
45                                         lantiq,pins = "io10", "io17", "io18", "io21";
46                                         lantiq,open-drain = <0>;
47                                         lantiq,pull = <2>;
48                                 };
49                                 pcie-rst {
50                                         lantiq,pins = "io38";
51                                         lantiq,pull = <0>;
52                                         lantiq,output = <1>;
53                                 };
54                         };
55                 };
56
57                 eth@E108000 {
58                         #address-cells = <1>;
59                         #size-cells = <0>;
60                         compatible = "lantiq,xrx200-net";
61                         reg = < 0xE108000 0x3000 /* switch */
62                                 0xE10B100 0x70 /* mdio */
63                                 0xE10B1D8 0x30 /* mii */
64                                 0xE10B308 0x30 /* pmac */
65                         >;
66                         interrupt-parent = <&icu0>;
67                         interrupts = <73 72>;
68
69                         lan: interface@0 {
70                                 compatible = "lantiq,xrx200-pdi";
71                                 #address-cells = <1>;
72                                 #size-cells = <0>;
73                                 reg = <0>;
74                                 mac-address = [ 00 11 22 33 44 55 ];
75
76                                 ethernet@0 {
77                                         compatible = "lantiq,xrx200-pdi-port";
78                                         reg = <0>;
79                                         phy-mode = "rgmii";
80                                         phy-handle = <&phy0>;
81                                         // gpios = <&gpio 42 1>;
82                                 };
83                                 ethernet@5 {
84                                         compatible = "lantiq,xrx200-pdi-port";
85                                         reg = <5>;
86                                         phy-mode = "rgmii";
87                                         phy-handle = <&phy5>;
88                                 };
89                                 ethernet@2 {
90                                         compatible = "lantiq,xrx200-pdi-port";
91                                         reg = <2>;
92                                         phy-mode = "gmii";
93                                         phy-handle = <&phy11>;
94                                 };
95                                 ethernet@3 {
96                                         compatible = "lantiq,xrx200-pdi-port";
97                                         reg = <4>;
98                                         phy-mode = "gmii";
99                                         phy-handle = <&phy13>;
100                                 };
101                         };
102
103                         mdio@0 {
104                                 #address-cells = <1>;
105                                 #size-cells = <0>;
106                                 compatible = "lantiq,xrx200-mdio";
107                                 phy0: ethernet-phy@0 {
108                                         reg = <0x0>;
109                                         compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
110                                 };
111                                 phy5: ethernet-phy@5 {
112                                         reg = <0x5>;
113                                         compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
114                                 };
115                                 phy11: ethernet-phy@11 {
116                                         reg = <0x11>;
117                                         compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
118                                 };
119                                 phy13: ethernet-phy@13 {
120                                         reg = <0x13>;
121                                         compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
122                                 };
123                         };
124                 };
125
126                 ifxhcd@E101000 {
127                         status = "okay";
128                         gpios = <&gpio 33 0>;
129                         lantiq,portmask = <0x3>;
130                 };
131         };
132
133         gphy-xrx200 {
134                 compatible = "lantiq,phy-xrx200";
135                 firmware = "lantiq/vr9_phy11g_a2x.bin";
136                 phys = [ 00 01 ];
137         };
138
139         pcie {
140                 compatible = "lantiq,pcie-xway";
141         };
142
143         spi {
144                 #address-cells = <1>;
145                 #size-cells = <1>;
146
147                 compatible = "spi-gpio";
148
149                 gpio-miso = <&gpio 16 0>;
150                 gpio-mosi = <&gpio 17 0>;
151                 gpio-sck = <&gpio 18 0>;
152                 num-chipselects = <1>;
153                 cs-gpios = <&gpio 10 1>;
154
155                 m25p80@0 {
156                         #address-cells = <1>;
157                         #size-cells = <1>;
158                         compatible = "en25q64", "m25p80";
159                         reg = <0 0>;
160                         linux,modalias = "en25q64";
161                         spi-max-frequency = <1000000>;
162
163                         partition@0 {
164                                 reg = <0x0 0x20000>;
165                                 label = "u-boot";
166                                 read-only;
167                         };
168
169                         partition@20000 {
170                                 reg = <0x20000 0x7a0000>;
171                                 label = "firmware";
172                         };
173
174                         partition@7c0000 {
175                                 reg = <0x7c0000 0x10000>;
176                                 label = "config";
177                                 read-only;
178                         };
179
180                         ath9k_cal: partition@7d0000 {
181                                 reg = <0x7d0000 0x30000>;
182                                 label = "boardconfig";
183                                 read-only;
184                         };
185                 };
186         };
187         
188         ath9k_eep {
189                 compatible = "ath9k,eeprom";
190                 ath,eep-flash = <&ath9k_cal 0x21000>;
191                 ath,pci-slot = <0>;
192         };
193
194         gpio-keys-polled {
195                 compatible = "gpio-keys-polled";
196                 #address-cells = <1>;
197                 #size-cells = <0>;
198                 poll-interval = <100>;
199                 power {
200                         label = "reset";
201                         gpios = <&gpio 0 1>;
202                         linux,code = <0x100>;
203                 };
204
205                 wifi {
206                         label = "wifi";
207                         gpios = <&gpio 9 0>;
208                         linux,code = <0xf7>;
209                         linux,input-type = <5>; /* EV_SW */
210                 };
211
212                 wps {
213                         label = "wps";
214                         gpios = <&gpio 39 1>;
215                         linux,code = <0x211>;
216                 };
217         };
218
219         gpio-leds {
220                 compatible = "gpio-leds";
221
222                 adsl {
223                         label = "adsl";
224                         gpios = <&gpio 4 0>;
225                 };
226                 internet {
227                         label = "internet";
228                         gpios = <&gpio 5 0>;
229                 };
230                 usb0 {
231                         label = "usb";
232                         gpios = <&gpio 19 0>;
233                 };
234                 usb2 {
235                         label = "usb2";
236                         gpios = <&gpio 20 0>;
237                 };
238                 wps {
239                         label = "wps";
240                         gpios = <&gpio 37 0>;
241                 };
242         };
243 };