Merge remote-tracking branches 'regulator/fix/88pm800', 'regulator/fix/max8973',...
[linux-drm-fsl-dcu.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         mbus {
29                 pcie-controller {
30                         status = "okay";
31
32                         pcie@1,0 {
33                                 status = "okay";
34                         };
35                 };
36         };
37
38         ocp@f1000000 {
39                 pinctrl: pin-controller@10000 {
40                         pinctrl-0 =< &pmx_led_usb
41                                      &pmx_led_internet_blue
42                                      &pmx_led_internet_amber
43                                      &pmx_led_5g &pmx_led_status_blue
44                                      &pmx_led_wps &pmx_led_status_amber
45                                      &pmx_led_24g
46                                      &pmx_btn_restart &pmx_btn_wps>;
47                         pinctrl-names = "default";
48
49                         pmx_led_usb: pmx-led-usb {
50                                 marvell,pins = "mpp12";
51                                 marvell,function = "gpio";
52                         };
53                         pmx_led_internet_blue: pmx-led-internet-blue {
54                                 marvell,pins = "mpp42";
55                                 marvell,function = "gpio";
56                         };
57                         pmx_led_internet_amber: pmx-led-internet-amber {
58                                 marvell,pins = "mpp43";
59                                 marvell,function = "gpio";
60                         };
61                         pmx_led_5g: pmx-led-5g {
62                                 marvell,pins = "mpp44";
63                                 marvell,function = "gpio";
64                         };
65                         pmx_led_status_blue: pmx-led-status-blue {
66                                 marvell,pins = "mpp45";
67                                 marvell,function = "gpio";
68                         };
69                         pmx_led_wps: pmx-led-wps {
70                                 marvell,pins = "mpp47";
71                                 marvell,function = "gpio";
72                         };
73                         pmx_led_status_amber: pmx-led-status-amber {
74                                 marvell,pins = "mpp48";
75                                 marvell,function = "gpio";
76                         };
77                         pmx_led_24g: pmx-led-24g {
78                                 marvell,pins = "mpp49";
79                                 marvell,function = "gpio";
80                         };
81                         pmx_btn_restart: pmx-btn-restart {
82                                 marvell,pins = "mpp28";
83                                 marvell,function = "gpio";
84                         };
85                         pmx_btn_wps: pmx-btn-wps {
86                                 marvell,pins = "mpp46";
87                                 marvell,function = "gpio";
88                         };
89                 };
90
91                 spi@10600 {
92                         status = "okay";
93                         m25p80@0 {
94                                 #address-cells = <1>;
95                                 #size-cells = <1>;
96                                 compatible = "mxicy,mx25l12805d", "jedec,spi-nor";
97                                 spi-max-frequency = <50000000>;
98                                 reg = <0>;
99
100                                 partition@0 {
101                                         label = "uboot";
102                                         reg = <0x0 0x30000>;
103                                         read-only;
104                                 };
105
106                                 partition@30000 {
107                                         label = "nvram";
108                                         reg = <0x30000 0x10000>;
109                                         read-only;
110                                 };
111
112                                 partition@40000 {
113                                         label = "kernel";
114                                         reg = <0x40000 0x180000>;
115                                 };
116
117                                 partition@1c0000 {
118                                         label = "rootfs";
119                                         reg = <0x1c0000 0xe00000>;
120                                 };
121
122                                 cal_data: partition@fc0000 {
123                                         label = "cal_data";
124                                         reg = <0xfc0000 0x10000>;
125                                         read-only;
126                                 };
127
128                                 partition@fd0000 {
129                                         label = "lang_pack";
130                                         reg = <0xfd0000 0x30000>;
131                                         read-only;
132                                 };
133                         };
134                 };
135
136                 serial@12000 {
137                         status = "okay";
138                 };
139
140                 i2c@11000 {
141                         status = "okay";
142                 };
143
144                 ehci@50000 {
145                         status = "okay";
146                 };
147         };
148
149         gpio-leds {
150                 compatible = "gpio-leds";
151
152                 blue-usb {
153                         label = "dir665:blue:usb";
154                         gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
155                 };
156                 blue-internet {
157                         /* Can only be turned on if the Internet
158                          * Ethernet port has Link
159                          */
160                         label = "dir665:blue:internet";
161                         gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
162                 };
163                 amber-internet {
164                         label = "dir665:amber:internet";
165                         gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
166                 };
167                 blue-wifi5g {
168                         label = "dir665:blue:5g";
169                         gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
170                 };
171                 blue-status {
172                         label = "dir665:blue:status";
173                         gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
174                 };
175                 blue-wps {
176                         label = "dir665:blue:wps";
177                         gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
178                 };
179                 amber-status {
180                         label = "dir665:amber:status";
181                         gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
182                 };
183                 blue-24g {
184                         label = "dir665:blue:24g";
185                         gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
186                 };
187         };
188
189         gpio-keys {
190                 compatible = "gpio-keys";
191                 #address-cells = <1>;
192                 #size-cells = <0>;
193
194                 reset {
195                         label = "reset";
196                         linux,code = <KEY_RESTART>;
197                         gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
198                 };
199                 wps {
200                         label = "wps";
201                         linux,code = <KEY_WPS_BUTTON>;
202                         gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
203                 };
204         };
205
206         dsa@0 {
207                 compatible = "marvell,dsa";
208                 #address-cells = <2>;
209                 #size-cells = <0>;
210
211                 dsa,ethernet = <&eth0port>;
212                 dsa,mii-bus = <&mdio>;
213
214                 switch@0 {
215                         #address-cells = <1>;
216                         #size-cells = <0>;
217                         reg = <0 0>;    /* MDIO address 0, switch 0 in tree */
218
219                         port@0 {
220                                 reg = <0>;
221                                 label = "lan4";
222                         };
223
224                         port@1 {
225                                reg = <1>;
226                                label = "lan3";
227                         };
228
229                         port@2 {
230                                reg = <2>;
231                                label = "lan2";
232                         };
233
234                         port@3 {
235                                reg = <3>;
236                                label = "lan1";
237                         };
238
239                         port@4 {
240                                 reg = <4>;
241                                 label = "wan";
242                         };
243
244                         port@6 {
245                                reg = <6>;
246                                label = "cpu";
247                         };
248                 };
249         };
250 };
251
252 &mdio {
253         status = "okay";
254 };
255
256 /* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set
257  * fixed speed and duplex. */
258 &eth0 {
259         status = "okay";
260
261         ethernet0-port@0 {
262                 speed = <1000>;
263                 duplex = <1>;
264         };
265 };
266
267 /* eth1 is connected to the switch as well. However DSA only supports a
268  * single CPU port. So leave this port disabled to avoid confusion. */
269
270 &eth1 {
271         status = "disabled";
272 };
273
274 /* There is no battery on the boards, so the RTC does not keep time
275  * when there is no power, making it useless. */
276 &rtc {
277         status = "disabled";
278 };