xref: /freebsd-src/sys/contrib/device-tree/src/arm/gemini/gemini-dlink-dir-685.dts (revision 01950c46b8155250f64374fb72fc11faa44bf099)
1f126890aSEmmanuel Vadot/*
2f126890aSEmmanuel Vadot * Device Tree file for D-Link DIR-685 Xtreme N Storage Router
3f126890aSEmmanuel Vadot */
4f126890aSEmmanuel Vadot
5f126890aSEmmanuel Vadot/dts-v1/;
6f126890aSEmmanuel Vadot
7f126890aSEmmanuel Vadot#include "gemini.dtsi"
8f126890aSEmmanuel Vadot#include <dt-bindings/input/input.h>
9f126890aSEmmanuel Vadot
10f126890aSEmmanuel Vadot/ {
11f126890aSEmmanuel Vadot	model = "D-Link DIR-685 Xtreme N Storage Router";
12f126890aSEmmanuel Vadot	compatible = "dlink,dir-685", "cortina,gemini";
13f126890aSEmmanuel Vadot	#address-cells = <1>;
14f126890aSEmmanuel Vadot	#size-cells = <1>;
15f126890aSEmmanuel Vadot
16f126890aSEmmanuel Vadot	memory@0 {
17f126890aSEmmanuel Vadot		/* 128 MB SDRAM in 2 x Hynix HY5DU121622DTP-D43 */
18f126890aSEmmanuel Vadot		device_type = "memory";
19f126890aSEmmanuel Vadot		reg = <0x00000000 0x8000000>;
20f126890aSEmmanuel Vadot	};
21f126890aSEmmanuel Vadot
22f126890aSEmmanuel Vadot	chosen {
23f126890aSEmmanuel Vadot		bootargs = "console=ttyS0,19200n8 root=/dev/sda1 rw rootwait consoleblank=300";
24f126890aSEmmanuel Vadot		stdout-path = "uart0:19200n8";
25f126890aSEmmanuel Vadot	};
26f126890aSEmmanuel Vadot
27f126890aSEmmanuel Vadot	gpio_keys {
28f126890aSEmmanuel Vadot		compatible = "gpio-keys";
29f126890aSEmmanuel Vadot
30*01950c46SEmmanuel Vadot		button-reset {
31f126890aSEmmanuel Vadot			debounce-interval = <100>;
32f126890aSEmmanuel Vadot			wakeup-source;
33*01950c46SEmmanuel Vadot			linux,code = <KEY_RESTART>;
34f126890aSEmmanuel Vadot			label = "reset";
35f126890aSEmmanuel Vadot			/* Collides with LPC_LAD[0], UART DCD, SSP 97RST */
36f126890aSEmmanuel Vadot			gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
37f126890aSEmmanuel Vadot		};
38f126890aSEmmanuel Vadot		button-eject {
39f126890aSEmmanuel Vadot			debounce-interval = <100>;
40f126890aSEmmanuel Vadot			wakeup-source;
41f126890aSEmmanuel Vadot			linux,code = <KEY_EJECTCD>;
42f126890aSEmmanuel Vadot			label = "unmount";
43f126890aSEmmanuel Vadot			/* Collides with LPC LFRAME, UART RTS, SSP TXD */
44f126890aSEmmanuel Vadot			gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
45f126890aSEmmanuel Vadot		};
46f126890aSEmmanuel Vadot	};
47f126890aSEmmanuel Vadot
48f126890aSEmmanuel Vadot	vdisp: regulator {
49f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
50f126890aSEmmanuel Vadot		regulator-name = "display-power";
51f126890aSEmmanuel Vadot		regulator-min-microvolt = <3600000>;
52f126890aSEmmanuel Vadot		regulator-max-microvolt = <3600000>;
53f126890aSEmmanuel Vadot		/* Collides with LCD E */
54f126890aSEmmanuel Vadot		gpio = <&gpio0 16 GPIO_ACTIVE_HIGH>;
55f126890aSEmmanuel Vadot		enable-active-high;
56f126890aSEmmanuel Vadot	};
57f126890aSEmmanuel Vadot
58f126890aSEmmanuel Vadot	spi {
59f126890aSEmmanuel Vadot		compatible = "spi-gpio";
60f126890aSEmmanuel Vadot		#address-cells = <1>;
61f126890aSEmmanuel Vadot		#size-cells = <0>;
62f126890aSEmmanuel Vadot
63f126890aSEmmanuel Vadot		/* Collides with IDE pins, that's cool (we do not use them) */
64f126890aSEmmanuel Vadot		sck-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
65f126890aSEmmanuel Vadot		miso-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
66f126890aSEmmanuel Vadot		mosi-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
67f126890aSEmmanuel Vadot		cs-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
68f126890aSEmmanuel Vadot		num-chipselects = <1>;
69f126890aSEmmanuel Vadot
70f126890aSEmmanuel Vadot		panel: display@0 {
71f126890aSEmmanuel Vadot			compatible = "dlink,dir-685-panel", "ilitek,ili9322";
72f126890aSEmmanuel Vadot			reg = <0>;
73f126890aSEmmanuel Vadot			/* 50 ns min period = 20 MHz */
74f126890aSEmmanuel Vadot			spi-max-frequency = <20000000>;
75f126890aSEmmanuel Vadot			vcc-supply = <&vdisp>;
76f126890aSEmmanuel Vadot			iovcc-supply = <&vdisp>;
77f126890aSEmmanuel Vadot			vci-supply = <&vdisp>;
78f126890aSEmmanuel Vadot
79f126890aSEmmanuel Vadot			port {
80f126890aSEmmanuel Vadot				panel_in: endpoint {
81f126890aSEmmanuel Vadot					remote-endpoint = <&display_out>;
82f126890aSEmmanuel Vadot				};
83f126890aSEmmanuel Vadot			};
84f126890aSEmmanuel Vadot		};
85f126890aSEmmanuel Vadot	};
86f126890aSEmmanuel Vadot
87f126890aSEmmanuel Vadot	leds {
88f126890aSEmmanuel Vadot		compatible = "gpio-leds";
89f126890aSEmmanuel Vadot		led-wps {
90f126890aSEmmanuel Vadot			label = "dir685:blue:WPS";
91f126890aSEmmanuel Vadot			/* Collides with ICE */
92f126890aSEmmanuel Vadot			gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
93f126890aSEmmanuel Vadot			default-state = "on";
94f126890aSEmmanuel Vadot			linux,default-trigger = "heartbeat";
95f126890aSEmmanuel Vadot		};
96f126890aSEmmanuel Vadot		/*
97f126890aSEmmanuel Vadot		 * These two LEDs are on the side of the device.
98f126890aSEmmanuel Vadot		 * For electrical reasons, both LEDs cannot be active
99f126890aSEmmanuel Vadot		 * at the same time so only blue or orange can be on at
100f126890aSEmmanuel Vadot		 * one time. Enabling both makes the LED go dark.
101f126890aSEmmanuel Vadot		 * The LEDs both sit inside the unmount button and the
102f126890aSEmmanuel Vadot		 * label on the case says "unmount".
103f126890aSEmmanuel Vadot		 */
104f126890aSEmmanuel Vadot		led-blue-hd {
105f126890aSEmmanuel Vadot			label = "dir685:blue:HD";
106f126890aSEmmanuel Vadot			/* Collides with LPC_SERIRQ, UART DTR, SSP FSC pins */
107f126890aSEmmanuel Vadot			gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
108f126890aSEmmanuel Vadot			default-state = "off";
109f126890aSEmmanuel Vadot			linux,default-trigger = "disk-read";
110f126890aSEmmanuel Vadot		};
111f126890aSEmmanuel Vadot		led-orange-hd {
112f126890aSEmmanuel Vadot			label = "dir685:orange:HD";
113f126890aSEmmanuel Vadot			/* Collides with LPC_LAD[2], UART DSR, SSP ECLK pins */
114f126890aSEmmanuel Vadot			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
115f126890aSEmmanuel Vadot			default-state = "off";
116f126890aSEmmanuel Vadot			linux,default-trigger = "disk-write";
117f126890aSEmmanuel Vadot		};
118f126890aSEmmanuel Vadot	};
119f126890aSEmmanuel Vadot
120f126890aSEmmanuel Vadot	/*
121f126890aSEmmanuel Vadot	 * This is a Sunon Maglev GM0502PFV2-8 cooling fan @10000 RPM.
122f126890aSEmmanuel Vadot	 * sensor. It is turned on when the temperature exceeds 46 degrees
123f126890aSEmmanuel Vadot	 * and turned off when the temperatures goes below 41 degrees
124f126890aSEmmanuel Vadot	 * (celsius).
125f126890aSEmmanuel Vadot	 */
126f126890aSEmmanuel Vadot	fan0: gpio-fan {
127f126890aSEmmanuel Vadot		compatible = "gpio-fan";
128f126890aSEmmanuel Vadot		/* Collides with IDE */
129f126890aSEmmanuel Vadot		gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
130f126890aSEmmanuel Vadot		gpio-fan,speed-map = <0 0>, <10000 1>;
131f126890aSEmmanuel Vadot		#cooling-cells = <2>;
132f126890aSEmmanuel Vadot	};
133f126890aSEmmanuel Vadot
134f126890aSEmmanuel Vadot	thermal-zones {
135f126890aSEmmanuel Vadot		chassis-thermal {
136f126890aSEmmanuel Vadot			/* Poll every 20 seconds */
137f126890aSEmmanuel Vadot			polling-delay = <20000>;
138f126890aSEmmanuel Vadot			/* Poll every 2nd second when cooling */
139f126890aSEmmanuel Vadot			polling-delay-passive = <2000>;
140f126890aSEmmanuel Vadot			/*  Use the thermal sensor in the hard drive */
141f126890aSEmmanuel Vadot			thermal-sensors = <&drive0>;
142f126890aSEmmanuel Vadot
143f126890aSEmmanuel Vadot			/* Tripping points from the fan.script in the rootfs */
144f126890aSEmmanuel Vadot			trips {
145f126890aSEmmanuel Vadot				alert: chassis-alert {
146f126890aSEmmanuel Vadot					/* At 43 degrees turn on the fan */
147f126890aSEmmanuel Vadot					temperature = <43000>;
148f126890aSEmmanuel Vadot					hysteresis = <3000>;
149f126890aSEmmanuel Vadot					type = "active";
150f126890aSEmmanuel Vadot				};
151f126890aSEmmanuel Vadot				crit: chassis-crit {
152f126890aSEmmanuel Vadot					/* Just shut down at 60 degrees */
153f126890aSEmmanuel Vadot					temperature = <60000>;
154f126890aSEmmanuel Vadot					hysteresis = <2000>;
155f126890aSEmmanuel Vadot					type = "critical";
156f126890aSEmmanuel Vadot				};
157f126890aSEmmanuel Vadot			};
158f126890aSEmmanuel Vadot
159f126890aSEmmanuel Vadot			cooling-maps {
160f126890aSEmmanuel Vadot				map0 {
161f126890aSEmmanuel Vadot					trip = <&alert>;
162f126890aSEmmanuel Vadot					cooling-device = <&fan0 1 1>;
163f126890aSEmmanuel Vadot				};
164f126890aSEmmanuel Vadot			};
165f126890aSEmmanuel Vadot		};
166f126890aSEmmanuel Vadot	};
167f126890aSEmmanuel Vadot
168f126890aSEmmanuel Vadot	/*
169f126890aSEmmanuel Vadot	 * The touchpad input is connected to a GPIO bit-banged
170f126890aSEmmanuel Vadot	 * I2C bus.
171f126890aSEmmanuel Vadot	 */
172f126890aSEmmanuel Vadot	i2c {
173f126890aSEmmanuel Vadot		compatible = "i2c-gpio";
174f126890aSEmmanuel Vadot		/* Collides with ICE */
175f126890aSEmmanuel Vadot		sda-gpios = <&gpio0 5 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
176f126890aSEmmanuel Vadot		scl-gpios = <&gpio0 6 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
177f126890aSEmmanuel Vadot		#address-cells = <1>;
178f126890aSEmmanuel Vadot		#size-cells = <0>;
179f126890aSEmmanuel Vadot
180f126890aSEmmanuel Vadot		touchkeys@26 {
181f126890aSEmmanuel Vadot			compatible = "dlink,dir685-touchkeys";
182f126890aSEmmanuel Vadot			reg = <0x26>;
183f126890aSEmmanuel Vadot			interrupt-parent = <&gpio0>;
184f126890aSEmmanuel Vadot			/* Collides with NAND flash */
185f126890aSEmmanuel Vadot			interrupts = <17 IRQ_TYPE_EDGE_FALLING>;
186f126890aSEmmanuel Vadot		};
187f126890aSEmmanuel Vadot	};
188f126890aSEmmanuel Vadot
189f126890aSEmmanuel Vadot	/* This is a RealTek RTL8366RB switch and PHY using SMI over GPIO */
190*01950c46SEmmanuel Vadot	ethernet-switch {
191f126890aSEmmanuel Vadot		compatible = "realtek,rtl8366rb";
192f126890aSEmmanuel Vadot		/* 22 = MDIO (has input reads), 21 = MDC (clock, output only) */
193f126890aSEmmanuel Vadot		mdc-gpios = <&gpio0 21 GPIO_ACTIVE_HIGH>;
194f126890aSEmmanuel Vadot		mdio-gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
195f126890aSEmmanuel Vadot		reset-gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
196f126890aSEmmanuel Vadot		realtek,disable-leds;
197f126890aSEmmanuel Vadot
198f126890aSEmmanuel Vadot		switch_intc: interrupt-controller {
199f126890aSEmmanuel Vadot			/* GPIO 15 provides the interrupt */
200f126890aSEmmanuel Vadot			interrupt-parent = <&gpio0>;
201f126890aSEmmanuel Vadot			interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
202f126890aSEmmanuel Vadot			interrupt-controller;
203f126890aSEmmanuel Vadot			#address-cells = <0>;
204f126890aSEmmanuel Vadot			#interrupt-cells = <1>;
205f126890aSEmmanuel Vadot		};
206f126890aSEmmanuel Vadot
207*01950c46SEmmanuel Vadot		ethernet-ports {
208f126890aSEmmanuel Vadot			#address-cells = <1>;
209f126890aSEmmanuel Vadot			#size-cells = <0>;
210f126890aSEmmanuel Vadot
211*01950c46SEmmanuel Vadot			ethernet-port@0 {
212f126890aSEmmanuel Vadot				reg = <0>;
213f126890aSEmmanuel Vadot				label = "lan0";
214f126890aSEmmanuel Vadot				phy-handle = <&phy0>;
215f126890aSEmmanuel Vadot			};
216*01950c46SEmmanuel Vadot			ethernet-port@1 {
217f126890aSEmmanuel Vadot				reg = <1>;
218f126890aSEmmanuel Vadot				label = "lan1";
219f126890aSEmmanuel Vadot				phy-handle = <&phy1>;
220f126890aSEmmanuel Vadot			};
221*01950c46SEmmanuel Vadot			ethernet-port@2 {
222f126890aSEmmanuel Vadot				reg = <2>;
223f126890aSEmmanuel Vadot				label = "lan2";
224f126890aSEmmanuel Vadot				phy-handle = <&phy2>;
225f126890aSEmmanuel Vadot			};
226*01950c46SEmmanuel Vadot			ethernet-port@3 {
227f126890aSEmmanuel Vadot				reg = <3>;
228f126890aSEmmanuel Vadot				label = "lan3";
229f126890aSEmmanuel Vadot				phy-handle = <&phy3>;
230f126890aSEmmanuel Vadot			};
231*01950c46SEmmanuel Vadot			ethernet-port@4 {
232f126890aSEmmanuel Vadot				reg = <4>;
233f126890aSEmmanuel Vadot				label = "wan";
234f126890aSEmmanuel Vadot				phy-handle = <&phy4>;
235f126890aSEmmanuel Vadot			};
236*01950c46SEmmanuel Vadot			rtl8366rb_cpu_port: ethernet-port@5 {
237f126890aSEmmanuel Vadot				reg = <5>;
238f126890aSEmmanuel Vadot				label = "cpu";
239f126890aSEmmanuel Vadot				ethernet = <&gmac0>;
240f126890aSEmmanuel Vadot				phy-mode = "rgmii";
241f126890aSEmmanuel Vadot				fixed-link {
242f126890aSEmmanuel Vadot					speed = <1000>;
243f126890aSEmmanuel Vadot					full-duplex;
244f126890aSEmmanuel Vadot					pause;
245f126890aSEmmanuel Vadot				};
246f126890aSEmmanuel Vadot			};
247f126890aSEmmanuel Vadot
248f126890aSEmmanuel Vadot		};
249f126890aSEmmanuel Vadot
250f126890aSEmmanuel Vadot		mdio {
251f126890aSEmmanuel Vadot			compatible = "realtek,smi-mdio";
252f126890aSEmmanuel Vadot			#address-cells = <1>;
253f126890aSEmmanuel Vadot			#size-cells = <0>;
254f126890aSEmmanuel Vadot
255*01950c46SEmmanuel Vadot			phy0: ethernet-phy@0 {
256f126890aSEmmanuel Vadot				reg = <0>;
257f126890aSEmmanuel Vadot				interrupt-parent = <&switch_intc>;
258f126890aSEmmanuel Vadot				interrupts = <0>;
259f126890aSEmmanuel Vadot			};
260*01950c46SEmmanuel Vadot			phy1: ethernet-phy@1 {
261f126890aSEmmanuel Vadot				reg = <1>;
262f126890aSEmmanuel Vadot				interrupt-parent = <&switch_intc>;
263f126890aSEmmanuel Vadot				interrupts = <1>;
264f126890aSEmmanuel Vadot			};
265*01950c46SEmmanuel Vadot			phy2: ethernet-phy@2 {
266f126890aSEmmanuel Vadot				reg = <2>;
267f126890aSEmmanuel Vadot				interrupt-parent = <&switch_intc>;
268f126890aSEmmanuel Vadot				interrupts = <2>;
269f126890aSEmmanuel Vadot			};
270*01950c46SEmmanuel Vadot			phy3: ethernet-phy@3 {
271f126890aSEmmanuel Vadot				reg = <3>;
272f126890aSEmmanuel Vadot				interrupt-parent = <&switch_intc>;
273f126890aSEmmanuel Vadot				interrupts = <3>;
274f126890aSEmmanuel Vadot			};
275*01950c46SEmmanuel Vadot			phy4: ethernet-phy@4 {
276f126890aSEmmanuel Vadot				reg = <4>;
277f126890aSEmmanuel Vadot				interrupt-parent = <&switch_intc>;
278f126890aSEmmanuel Vadot				interrupts = <12>;
279f126890aSEmmanuel Vadot			};
280f126890aSEmmanuel Vadot		};
281f126890aSEmmanuel Vadot	};
282f126890aSEmmanuel Vadot
283f126890aSEmmanuel Vadot	soc {
284f126890aSEmmanuel Vadot		flash@30000000 {
285f126890aSEmmanuel Vadot			/*
286f126890aSEmmanuel Vadot			 * Flash access collides with the Chip Enable signal for
287f126890aSEmmanuel Vadot			 * the display panel, that reuse the parallel flash Chip
288f126890aSEmmanuel Vadot			 * Select 1 (CS1). We switch the pin control state so we
289f126890aSEmmanuel Vadot			 * enable these pins for flash access only when we need
290f126890aSEmmanuel Vadot			 * then, and when disabled they can be used for GPIO which
291f126890aSEmmanuel Vadot			 * is what the display panel needs.
292f126890aSEmmanuel Vadot			 */
293f126890aSEmmanuel Vadot			status = "okay";
294f126890aSEmmanuel Vadot			pinctrl-names = "enabled", "disabled";
295f126890aSEmmanuel Vadot			pinctrl-0 = <&pflash_default_pins>;
296f126890aSEmmanuel Vadot			pinctrl-1 = <&pflash_disabled_pins>;
297f126890aSEmmanuel Vadot
298f126890aSEmmanuel Vadot			/* 32MB of flash */
299f126890aSEmmanuel Vadot			reg = <0x30000000 0x02000000>;
300f126890aSEmmanuel Vadot
301f126890aSEmmanuel Vadot			partitions {
302f126890aSEmmanuel Vadot				compatible = "fixed-partitions";
303f126890aSEmmanuel Vadot				#address-cells = <1>;
304f126890aSEmmanuel Vadot				#size-cells = <1>;
305f126890aSEmmanuel Vadot
306f126890aSEmmanuel Vadot				/*
307f126890aSEmmanuel Vadot				 * This "RedBoot" is the Storlink derivative.
308f126890aSEmmanuel Vadot				 */
309f126890aSEmmanuel Vadot				partition@0 {
310f126890aSEmmanuel Vadot					label = "RedBoot";
311f126890aSEmmanuel Vadot					reg = <0x00000000 0x00040000>;
312f126890aSEmmanuel Vadot					read-only;
313f126890aSEmmanuel Vadot				};
314f126890aSEmmanuel Vadot				/*
315f126890aSEmmanuel Vadot				 * This firmware image contains the kernel catenated
316f126890aSEmmanuel Vadot				 * with the squashfs root filesystem. For some reason
317f126890aSEmmanuel Vadot				 * this is called "upgrade" on the vendor system.
318f126890aSEmmanuel Vadot				 */
319f126890aSEmmanuel Vadot				partition@40000 {
320f126890aSEmmanuel Vadot					label = "upgrade";
321f126890aSEmmanuel Vadot					reg = <0x00040000 0x01f40000>;
322f126890aSEmmanuel Vadot					read-only;
323f126890aSEmmanuel Vadot				};
324f126890aSEmmanuel Vadot				/* RGDB, Residental Gateway Database? */
325f126890aSEmmanuel Vadot				partition@1f80000 {
326f126890aSEmmanuel Vadot					label = "rgdb";
327f126890aSEmmanuel Vadot					reg = <0x01f80000 0x00040000>;
328f126890aSEmmanuel Vadot					read-only;
329f126890aSEmmanuel Vadot				};
330f126890aSEmmanuel Vadot				/*
331f126890aSEmmanuel Vadot				 * This partition contains MAC addresses for WAN,
332f126890aSEmmanuel Vadot				 * WLAN and LAN, and the country code (for wireless
333f126890aSEmmanuel Vadot				 * I guess).
334f126890aSEmmanuel Vadot				 */
335f126890aSEmmanuel Vadot				partition@1fc0000 {
336f126890aSEmmanuel Vadot					label = "nvram";
337f126890aSEmmanuel Vadot					reg = <0x01fc0000 0x00020000>;
338f126890aSEmmanuel Vadot					read-only;
339f126890aSEmmanuel Vadot				};
340f126890aSEmmanuel Vadot				partition@1fe0000 {
341f126890aSEmmanuel Vadot					label = "LangPack";
342f126890aSEmmanuel Vadot					reg = <0x01fe0000 0x00020000>;
343f126890aSEmmanuel Vadot					read-only;
344f126890aSEmmanuel Vadot				};
345f126890aSEmmanuel Vadot			};
346f126890aSEmmanuel Vadot		};
347f126890aSEmmanuel Vadot
348f126890aSEmmanuel Vadot		syscon: syscon@40000000 {
349f126890aSEmmanuel Vadot			pinctrl {
350f126890aSEmmanuel Vadot				/*
351f126890aSEmmanuel Vadot				 * gpio0bgrp cover line 5, 6 used by TK I2C
352f126890aSEmmanuel Vadot				 * gpio0bgrp cover line 7 used by WPS LED
353f126890aSEmmanuel Vadot				 * gpio0cgrp cover line 8, 13 used by keys
354f126890aSEmmanuel Vadot				 *           and 11, 12 used by the HD LEDs
355f126890aSEmmanuel Vadot				 *           and line 14, 15 used by RTL8366
356f126890aSEmmanuel Vadot				 *           RESET and phy ready
357f126890aSEmmanuel Vadot				 * gpio0egrp cover line 16 used by VDISP
358f126890aSEmmanuel Vadot				 * gpio0fgrp cover line 17 used by TK IRQ
359f126890aSEmmanuel Vadot				 * gpio0ggrp cover line 20 used by panel CS
360f126890aSEmmanuel Vadot				 * gpio0hgrp cover line 21,22 used by RTL8366RB MDIO
361f126890aSEmmanuel Vadot				 */
362f126890aSEmmanuel Vadot				gpio0_default_pins: pinctrl-gpio0 {
363f126890aSEmmanuel Vadot					mux {
364f126890aSEmmanuel Vadot						function = "gpio0";
365f126890aSEmmanuel Vadot						groups = "gpio0bgrp",
366f126890aSEmmanuel Vadot						"gpio0cgrp",
367f126890aSEmmanuel Vadot						"gpio0egrp",
368f126890aSEmmanuel Vadot						"gpio0fgrp",
369f126890aSEmmanuel Vadot						"gpio0hgrp";
370f126890aSEmmanuel Vadot					};
371f126890aSEmmanuel Vadot				};
372f126890aSEmmanuel Vadot				/*
373f126890aSEmmanuel Vadot				 * gpio1bgrp cover line 5,8,7 used by panel SPI
374f126890aSEmmanuel Vadot				 * also line 6 used by the fan
375f126890aSEmmanuel Vadot				 *
376f126890aSEmmanuel Vadot				 */
377f126890aSEmmanuel Vadot				gpio1_default_pins: pinctrl-gpio1 {
378f126890aSEmmanuel Vadot					mux {
379f126890aSEmmanuel Vadot						function = "gpio1";
380f126890aSEmmanuel Vadot						groups = "gpio1bgrp";
381f126890aSEmmanuel Vadot					};
382f126890aSEmmanuel Vadot				};
383f126890aSEmmanuel Vadot				/*
384f126890aSEmmanuel Vadot				 * These GPIO groups will be mapped in over some
385f126890aSEmmanuel Vadot				 * of the flash pins when the flash is not in
386f126890aSEmmanuel Vadot				 * active use.
387f126890aSEmmanuel Vadot				 */
388f126890aSEmmanuel Vadot				pflash_disabled_pins: pinctrl-pflash-disabled {
389f126890aSEmmanuel Vadot					mux {
390f126890aSEmmanuel Vadot						function = "gpio0";
391f126890aSEmmanuel Vadot						groups = "gpio0ggrp", "gpio0igrp", "gpio0jgrp",
392f126890aSEmmanuel Vadot							 "gpio0kgrp";
393f126890aSEmmanuel Vadot					};
394f126890aSEmmanuel Vadot				};
395f126890aSEmmanuel Vadot				pinctrl-gmii {
396f126890aSEmmanuel Vadot					mux {
397f126890aSEmmanuel Vadot						function = "gmii";
398f126890aSEmmanuel Vadot						groups = "gmii_gmac0_grp";
399f126890aSEmmanuel Vadot					};
400f126890aSEmmanuel Vadot					conf0 {
401f126890aSEmmanuel Vadot						pins = "V8 GMAC0 RXDV", "T10 GMAC1 RXDV",
402f126890aSEmmanuel Vadot						     "Y7 GMAC0 RXC", "Y11 GMAC1 RXC",
403f126890aSEmmanuel Vadot						     "T8 GMAC0 TXEN", "W11 GMAC1 TXEN",
404f126890aSEmmanuel Vadot						     "U8 GMAC0 TXC", "V11 GMAC1 TXC",
405f126890aSEmmanuel Vadot						     "W8 GMAC0 RXD0", "V9 GMAC0 RXD1",
406f126890aSEmmanuel Vadot						     "Y8 GMAC0 RXD2", "U9 GMAC0 RXD3",
407f126890aSEmmanuel Vadot						     "T7 GMAC0 TXD0", "U6 GMAC0 TXD1",
408f126890aSEmmanuel Vadot						     "V7 GMAC0 TXD2", "U7 GMAC0 TXD3",
409f126890aSEmmanuel Vadot						     "Y12 GMAC1 RXD0", "V12 GMAC1 RXD1",
410f126890aSEmmanuel Vadot						     "T11 GMAC1 RXD2", "W12 GMAC1 RXD3",
411f126890aSEmmanuel Vadot						     "U10 GMAC1 TXD0", "Y10 GMAC1 TXD1",
412f126890aSEmmanuel Vadot						     "W10 GMAC1 TXD2", "T9 GMAC1 TXD3";
413f126890aSEmmanuel Vadot						skew-delay = <7>;
414f126890aSEmmanuel Vadot					};
415f126890aSEmmanuel Vadot					/* Set up drive strength on GMAC0 to 16 mA */
416f126890aSEmmanuel Vadot					conf1 {
417f126890aSEmmanuel Vadot						groups = "gmii_gmac0_grp";
418f126890aSEmmanuel Vadot						drive-strength = <16>;
419f126890aSEmmanuel Vadot					};
420f126890aSEmmanuel Vadot				};
421f126890aSEmmanuel Vadot			};
422f126890aSEmmanuel Vadot		};
423f126890aSEmmanuel Vadot
424f126890aSEmmanuel Vadot		sata: sata@46000000 {
425f126890aSEmmanuel Vadot			cortina,gemini-ata-muxmode = <0>;
426f126890aSEmmanuel Vadot			cortina,gemini-enable-sata-bridge;
427f126890aSEmmanuel Vadot			status = "okay";
428f126890aSEmmanuel Vadot		};
429f126890aSEmmanuel Vadot
430f126890aSEmmanuel Vadot		gpio0: gpio@4d000000 {
431f126890aSEmmanuel Vadot			pinctrl-names = "default";
432f126890aSEmmanuel Vadot			pinctrl-0 = <&gpio0_default_pins>;
433f126890aSEmmanuel Vadot		};
434f126890aSEmmanuel Vadot
435f126890aSEmmanuel Vadot		gpio1: gpio@4e000000 {
436f126890aSEmmanuel Vadot			pinctrl-names = "default";
437f126890aSEmmanuel Vadot			pinctrl-0 = <&gpio1_default_pins>;
438f126890aSEmmanuel Vadot		};
439f126890aSEmmanuel Vadot
440f126890aSEmmanuel Vadot		pci@50000000 {
441f126890aSEmmanuel Vadot			status = "okay";
442f126890aSEmmanuel Vadot		};
443f126890aSEmmanuel Vadot
444f126890aSEmmanuel Vadot		ethernet@60000000 {
445f126890aSEmmanuel Vadot			status = "okay";
446f126890aSEmmanuel Vadot
447f126890aSEmmanuel Vadot			ethernet-port@0 {
448f126890aSEmmanuel Vadot				phy-mode = "rgmii";
449f126890aSEmmanuel Vadot				fixed-link {
450f126890aSEmmanuel Vadot					speed = <1000>;
451f126890aSEmmanuel Vadot					full-duplex;
452f126890aSEmmanuel Vadot					pause;
453f126890aSEmmanuel Vadot				};
454f126890aSEmmanuel Vadot			};
455f126890aSEmmanuel Vadot			ethernet-port@1 {
456f126890aSEmmanuel Vadot				/* Not used in this platform */
457f126890aSEmmanuel Vadot			};
458f126890aSEmmanuel Vadot		};
459f126890aSEmmanuel Vadot
460f126890aSEmmanuel Vadot		ide@63000000 {
461f126890aSEmmanuel Vadot			status = "okay";
462f126890aSEmmanuel Vadot
463f126890aSEmmanuel Vadot			/*
464f126890aSEmmanuel Vadot			 * This drive may have a temperature sensor with a
465f126890aSEmmanuel Vadot			 * thermal zone we can use for thermal control of the
466f126890aSEmmanuel Vadot			 * chassis temperature using the fan.
467f126890aSEmmanuel Vadot			 */
468f126890aSEmmanuel Vadot			drive0: ide-port@0 {
469f126890aSEmmanuel Vadot				reg = <0>;
470f126890aSEmmanuel Vadot				#thermal-sensor-cells = <0>;
471f126890aSEmmanuel Vadot			};
472f126890aSEmmanuel Vadot		};
473f126890aSEmmanuel Vadot
474f126890aSEmmanuel Vadot		display-controller@6a000000 {
475f126890aSEmmanuel Vadot			status = "okay";
476f126890aSEmmanuel Vadot
477f126890aSEmmanuel Vadot			port {
478f126890aSEmmanuel Vadot				display_out: endpoint {
479f126890aSEmmanuel Vadot					remote-endpoint = <&panel_in>;
480f126890aSEmmanuel Vadot				};
481f126890aSEmmanuel Vadot			};
482f126890aSEmmanuel Vadot		};
483f126890aSEmmanuel Vadot
484f126890aSEmmanuel Vadot		usb@68000000 {
485f126890aSEmmanuel Vadot			status = "okay";
486f126890aSEmmanuel Vadot		};
487f126890aSEmmanuel Vadot
488f126890aSEmmanuel Vadot		usb@69000000 {
489f126890aSEmmanuel Vadot			status = "okay";
490f126890aSEmmanuel Vadot		};
491f126890aSEmmanuel Vadot	};
492f126890aSEmmanuel Vadot};
493