Merge tag 'for-linus-4.11-ofs2' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / kirkwood-dir665.dts
1 /*
2  * Copyright (C) 2014 Claudio Leite <leitec@staticky.com>
3  *
4  * This file is licensed under the terms of the GNU General Public
5  * License version 2.  This program is licensed "as is" without any
6  * warranty of any kind, whether express or implied.
7  */
8
9 /dts-v1/;
10
11 #include "kirkwood.dtsi"
12 #include "kirkwood-6281.dtsi"
13
14 / {
15         model = "D-Link DIR-665";
16         compatible = "dlink,dir-665", "marvell,kirkwood-88f6281", "marvell,kirkwood";
17
18         memory {
19                 device_type = "memory";
20                 reg = <0x00000000 0x8000000>; /* 128 MB */
21         };
22
23         chosen {
24                 bootargs = "console=ttyS0,115200n8 earlyprintk";
25                 stdout-path = &uart0;
26         };
27
28         ocp@f1000000 {
29                 pinctrl: pin-controller@10000 {
30                         pinctrl-0 =< &pmx_led_usb
31                                      &pmx_led_internet_blue
32                                      &pmx_led_internet_amber
33                                      &pmx_led_5g &pmx_led_status_blue
34                                      &pmx_led_wps &pmx_led_status_amber
35                                      &pmx_led_24g
36                                      &pmx_btn_restart &pmx_btn_wps>;
37                         pinctrl-names = "default";
38
39                         pmx_led_usb: pmx-led-usb {
40                                 marvell,pins = "mpp12";
41                                 marvell,function = "gpio";
42                         };
43                         pmx_led_internet_blue: pmx-led-internet-blue {
44                                 marvell,pins = "mpp42";
45                                 marvell,function = "gpio";
46                         };
47                         pmx_led_internet_amber: pmx-led-internet-amber {
48                                 marvell,pins = "mpp43";
49                                 marvell,function = "gpio";
50                         };
51                         pmx_led_5g: pmx-led-5g {
52                                 marvell,pins = "mpp44";
53                                 marvell,function = "gpio";
54                         };
55                         pmx_led_status_blue: pmx-led-status-blue {
56                                 marvell,pins = "mpp45";
57                                 marvell,function = "gpio";
58                         };
59                         pmx_led_wps: pmx-led-wps {
60                                 marvell,pins = "mpp47";
61                                 marvell,function = "gpio";
62                         };
63                         pmx_led_status_amber: pmx-led-status-amber {
64                                 marvell,pins = "mpp48";
65                                 marvell,function = "gpio";
66                         };
67                         pmx_led_24g: pmx-led-24g {
68                                 marvell,pins = "mpp49";
69                                 marvell,function = "gpio";
70                         };
71                         pmx_btn_restart: pmx-btn-restart {
72                                 marvell,pins = "mpp28";
73                                 marvell,function = "gpio";
74                         };
75                         pmx_btn_wps: pmx-btn-wps {
76                                 marvell,pins = "mpp46";
77                                 marvell,function = "gpio";
78                         };
79                 };
80
81                 spi@10600 {
82                         status = "okay";
83                         m25p80@0 {
84                                 #address-cells = <1>;
85                                 #size-cells = <1>;
86                                 compatible = "mxicy,mx25l12805d", "jedec,spi-nor";
87                                 spi-max-frequency = <50000000>;
88                                 reg = <0>;
89
90                                 partition@0 {
91                                         label = "uboot";
92                                         reg = <0x0 0x30000>;
93                                         read-only;
94                                 };
95
96                                 partition@30000 {
97                                         label = "nvram";
98                                         reg = <0x30000 0x10000>;
99                                         read-only;
100                                 };
101
102                                 partition@40000 {
103                                         label = "kernel";
104                                         reg = <0x40000 0x180000>;
105                                 };
106
107                                 partition@1c0000 {
108                                         label = "rootfs";
109                                         reg = <0x1c0000 0xe00000>;
110                                 };
111
112                                 cal_data: partition@fc0000 {
113                                         label = "cal_data";
114                                         reg = <0xfc0000 0x10000>;
115                                         read-only;
116                                 };
117
118                                 partition@fd0000 {
119                                         label = "lang_pack";
120                                         reg = <0xfd0000 0x30000>;
121                                         read-only;
122                                 };
123                         };
124                 };
125
126                 serial@12000 {
127                         status = "okay";
128                 };
129
130                 i2c@11000 {
131                         status = "okay";
132                 };
133
134                 ehci@50000 {
135                         status = "okay";
136                 };
137         };
138
139         gpio-leds {
140                 compatible = "gpio-leds";
141
142                 blue-usb {
143                         label = "dir665:blue:usb";
144                         gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
145                 };
146                 blue-internet {
147                         /* Can only be turned on if the Internet
148                          * Ethernet port has Link
149                          */
150                         label = "dir665:blue:internet";
151                         gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
152                 };
153                 amber-internet {
154                         label = "dir665:amber:internet";
155                         gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
156                 };
157                 blue-wifi5g {
158                         label = "dir665:blue:5g";
159                         gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
160                 };
161                 blue-status {
162                         label = "dir665:blue:status";
163                         gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
164                 };
165                 blue-wps {
166                         label = "dir665:blue:wps";
167                         gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
168                 };
169                 amber-status {
170                         label = "dir665:amber:status";
171                         gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
172                 };
173                 blue-24g {
174                         label = "dir665:blue:24g";
175                         gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
176                 };
177         };
178
179         gpio-keys {
180                 compatible = "gpio-keys";
181                 #address-cells = <1>;
182                 #size-cells = <0>;
183
184                 reset {
185                         label = "reset";
186                         linux,code = <KEY_RESTART>;
187                         gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
188                 };
189                 wps {
190                         label = "wps";
191                         linux,code = <KEY_WPS_BUTTON>;
192                         gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
193                 };
194         };
195
196         dsa {
197                 status = "disabled";
198
199                 compatible = "marvell,dsa";
200                 #address-cells = <2>;
201                 #size-cells = <0>;
202
203                 dsa,ethernet = <&eth0port>;
204                 dsa,mii-bus = <&mdio>;
205
206                 switch@0 {
207                         #address-cells = <1>;
208                         #size-cells = <0>;
209                         reg = <0 0>;    /* MDIO address 0, switch 0 in tree */
210
211                         port@0 {
212                                 reg = <0>;
213                                 label = "lan4";
214                         };
215
216                         port@1 {
217                                reg = <1>;
218                                label = "lan3";
219                         };
220
221                         port@2 {
222                                reg = <2>;
223                                label = "lan2";
224                         };
225
226                         port@3 {
227                                reg = <3>;
228                                label = "lan1";
229                         };
230
231                         port@4 {
232                                 reg = <4>;
233                                 label = "wan";
234                         };
235
236                         port@6 {
237                                reg = <6>;
238                                label = "cpu";
239                         };
240                 };
241         };
242 };
243
244 &mdio {
245         status = "okay";
246
247         switch@0 {
248                 compatible = "marvell,mv88e6085";
249                 #address-cells = <1>;
250                 #size-cells = <0>;
251                 reg = <0>;
252
253                 ports {
254                         #address-cells = <1>;
255                         #size-cells = <0>;
256
257                         port@0 {
258                                 reg = <0>;
259                                 label = "lan4";
260                         };
261
262                         port@1 {
263                                reg = <1>;
264                                label = "lan3";
265                         };
266
267                         port@2 {
268                                reg = <2>;
269                                label = "lan2";
270                         };
271
272                         port@3 {
273                                reg = <3>;
274                                label = "lan1";
275                         };
276
277                         port@4 {
278                                 reg = <4>;
279                                 label = "wan";
280                         };
281
282                         port@6 {
283                                 reg = <6>;
284                                 label = "cpu";
285                                 ethernet = <&eth0port>;
286                                 fixed-link {
287                                         speed = <1000>;
288                                         full-duplex;
289                                 };
290                         };
291                 };
292         };
293 };
294
295 /* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set
296  * fixed speed and duplex. */
297 &eth0 {
298         status = "okay";
299
300         ethernet0-port@0 {
301                 speed = <1000>;
302                 duplex = <1>;
303         };
304 };
305
306 /* eth1 is connected to the switch as well. However DSA only supports a
307  * single CPU port. So leave this port disabled to avoid confusion. */
308
309 &eth1 {
310         status = "disabled";
311 };
312
313 /* There is no battery on the boards, so the RTC does not keep time
314  * when there is no power, making it useless. */
315 &rtc {
316         status = "disabled";
317 };
318
319 &pciec {
320         status = "okay";
321 };
322
323 &pcie0 {
324         status = "okay";
325 };