• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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};
277