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