Merge tag 'pwm/for-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry...
[cascardo/linux.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                 compatible = "marvell,dsa";
198                 #address-cells = <2>;
199                 #size-cells = <0>;
200
201                 dsa,ethernet = <&eth0port>;
202                 dsa,mii-bus = <&mdio>;
203
204                 switch@0 {
205                         #address-cells = <1>;
206                         #size-cells = <0>;
207                         reg = <0 0>;    /* MDIO address 0, switch 0 in tree */
208
209                         port@0 {
210                                 reg = <0>;
211                                 label = "lan4";
212                         };
213
214                         port@1 {
215                                reg = <1>;
216                                label = "lan3";
217                         };
218
219                         port@2 {
220                                reg = <2>;
221                                label = "lan2";
222                         };
223
224                         port@3 {
225                                reg = <3>;
226                                label = "lan1";
227                         };
228
229                         port@4 {
230                                 reg = <4>;
231                                 label = "wan";
232                         };
233
234                         port@6 {
235                                reg = <6>;
236                                label = "cpu";
237                         };
238                 };
239         };
240 };
241
242 &mdio {
243         status = "okay";
244 };
245
246 /* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set
247  * fixed speed and duplex. */
248 &eth0 {
249         status = "okay";
250
251         ethernet0-port@0 {
252                 speed = <1000>;
253                 duplex = <1>;
254         };
255 };
256
257 /* eth1 is connected to the switch as well. However DSA only supports a
258  * single CPU port. So leave this port disabled to avoid confusion. */
259
260 &eth1 {
261         status = "disabled";
262 };
263
264 /* There is no battery on the boards, so the RTC does not keep time
265  * when there is no power, making it useless. */
266 &rtc {
267         status = "disabled";
268 };
269
270 &pciec {
271         status = "okay";
272 };
273
274 &pcie0 {
275         status = "okay";
276 };