1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Device Tree file for ITian Square One SQ201 NAS
4*724ba675SRob Herring */
5*724ba675SRob Herring
6*724ba675SRob Herring/dts-v1/;
7*724ba675SRob Herring
8*724ba675SRob Herring#include "gemini.dtsi"
9*724ba675SRob Herring#include <dt-bindings/input/input.h>
10*724ba675SRob Herring
11*724ba675SRob Herring/ {
12*724ba675SRob Herring	model = "ITian Square One SQ201";
13*724ba675SRob Herring	compatible = "itian,sq201", "cortina,gemini";
14*724ba675SRob Herring	#address-cells = <1>;
15*724ba675SRob Herring	#size-cells = <1>;
16*724ba675SRob Herring
17*724ba675SRob Herring	memory@0 { /* 128 MB */
18*724ba675SRob Herring		device_type = "memory";
19*724ba675SRob Herring		reg = <0x00000000 0x8000000>;
20*724ba675SRob Herring	};
21*724ba675SRob Herring
22*724ba675SRob Herring	chosen {
23*724ba675SRob Herring		bootargs = "console=ttyS0,115200n8 root=/dev/mtdblock2 rw rootfstype=squashfs,jffs2 rootwait";
24*724ba675SRob Herring		stdout-path = &uart0;
25*724ba675SRob Herring	};
26*724ba675SRob Herring
27*724ba675SRob Herring	gpio_keys {
28*724ba675SRob Herring		compatible = "gpio-keys";
29*724ba675SRob Herring
30*724ba675SRob Herring		button-setup {
31*724ba675SRob Herring			debounce-interval = <100>;
32*724ba675SRob Herring			wakeup-source;
33*724ba675SRob Herring			linux,code = <KEY_SETUP>;
34*724ba675SRob Herring			label = "factory reset";
35*724ba675SRob Herring			/* Conflict with NAND flash */
36*724ba675SRob Herring			gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
37*724ba675SRob Herring		};
38*724ba675SRob Herring	};
39*724ba675SRob Herring
40*724ba675SRob Herring	leds {
41*724ba675SRob Herring		compatible = "gpio-leds";
42*724ba675SRob Herring		led-green-info {
43*724ba675SRob Herring			label = "sq201:green:info";
44*724ba675SRob Herring			gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
45*724ba675SRob Herring			default-state = "on";
46*724ba675SRob Herring			linux,default-trigger = "heartbeat";
47*724ba675SRob Herring		};
48*724ba675SRob Herring		led-green-usb {
49*724ba675SRob Herring			label = "sq201:green:usb";
50*724ba675SRob Herring			gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
51*724ba675SRob Herring			default-state = "off";
52*724ba675SRob Herring			linux,default-trigger = "usb-host";
53*724ba675SRob Herring		};
54*724ba675SRob Herring	};
55*724ba675SRob Herring
56*724ba675SRob Herring	mdio0: mdio {
57*724ba675SRob Herring		compatible = "virtual,mdio-gpio";
58*724ba675SRob Herring		/* Uses MDC and MDIO */
59*724ba675SRob Herring		gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
60*724ba675SRob Herring			<&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
61*724ba675SRob Herring		#address-cells = <1>;
62*724ba675SRob Herring		#size-cells = <0>;
63*724ba675SRob Herring
64*724ba675SRob Herring		/* This is a Marvell 88E1111 ethernet transciever */
65*724ba675SRob Herring		phy0: ethernet-phy@1 {
66*724ba675SRob Herring			reg = <1>;
67*724ba675SRob Herring		};
68*724ba675SRob Herring	};
69*724ba675SRob Herring
70*724ba675SRob Herring	spi {
71*724ba675SRob Herring		compatible = "spi-gpio";
72*724ba675SRob Herring		#address-cells = <1>;
73*724ba675SRob Herring		#size-cells = <0>;
74*724ba675SRob Herring		/* Check pin collisions */
75*724ba675SRob Herring		sck-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
76*724ba675SRob Herring		miso-gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
77*724ba675SRob Herring		mosi-gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
78*724ba675SRob Herring		cs-gpios = <&gpio1 31 GPIO_ACTIVE_HIGH>;
79*724ba675SRob Herring		num-chipselects = <1>;
80*724ba675SRob Herring
81*724ba675SRob Herring		switch@0 {
82*724ba675SRob Herring			compatible = "vitesse,vsc7395";
83*724ba675SRob Herring			reg = <0>;
84*724ba675SRob Herring			/* Specified for 2.5 MHz or below */
85*724ba675SRob Herring			spi-max-frequency = <2500000>;
86*724ba675SRob Herring			gpio-controller;
87*724ba675SRob Herring			#gpio-cells = <2>;
88*724ba675SRob Herring
89*724ba675SRob Herring			ports {
90*724ba675SRob Herring				#address-cells = <1>;
91*724ba675SRob Herring				#size-cells = <0>;
92*724ba675SRob Herring
93*724ba675SRob Herring				port@0 {
94*724ba675SRob Herring					reg = <0>;
95*724ba675SRob Herring					label = "lan1";
96*724ba675SRob Herring				};
97*724ba675SRob Herring				port@1 {
98*724ba675SRob Herring					reg = <1>;
99*724ba675SRob Herring					label = "lan2";
100*724ba675SRob Herring				};
101*724ba675SRob Herring				port@2 {
102*724ba675SRob Herring					reg = <2>;
103*724ba675SRob Herring					label = "lan3";
104*724ba675SRob Herring				};
105*724ba675SRob Herring				port@3 {
106*724ba675SRob Herring					reg = <3>;
107*724ba675SRob Herring					label = "lan4";
108*724ba675SRob Herring				};
109*724ba675SRob Herring				vsc: port@6 {
110*724ba675SRob Herring					reg = <6>;
111*724ba675SRob Herring					label = "cpu";
112*724ba675SRob Herring					ethernet = <&gmac1>;
113*724ba675SRob Herring					phy-mode = "rgmii";
114*724ba675SRob Herring					fixed-link {
115*724ba675SRob Herring						speed = <1000>;
116*724ba675SRob Herring						full-duplex;
117*724ba675SRob Herring						pause;
118*724ba675SRob Herring					};
119*724ba675SRob Herring				};
120*724ba675SRob Herring			};
121*724ba675SRob Herring		};
122*724ba675SRob Herring	};
123*724ba675SRob Herring
124*724ba675SRob Herring
125*724ba675SRob Herring	soc {
126*724ba675SRob Herring		flash@30000000 {
127*724ba675SRob Herring			status = "okay";
128*724ba675SRob Herring			pinctrl-names = "enabled", "disabled";
129*724ba675SRob Herring			pinctrl-0 = <&pflash_default_pins>;
130*724ba675SRob Herring			pinctrl-1 = <&pflash_disabled_pins>;
131*724ba675SRob Herring			/* 16MB of flash */
132*724ba675SRob Herring			reg = <0x30000000 0x01000000>;
133*724ba675SRob Herring
134*724ba675SRob Herring			partitions {
135*724ba675SRob Herring				compatible = "redboot-fis";
136*724ba675SRob Herring				/* Eraseblock at 0xfe0000 */
137*724ba675SRob Herring				fis-index-block = <0x1fc>;
138*724ba675SRob Herring			};
139*724ba675SRob Herring		};
140*724ba675SRob Herring
141*724ba675SRob Herring		syscon: syscon@40000000 {
142*724ba675SRob Herring			pinctrl {
143*724ba675SRob Herring				/*
144*724ba675SRob Herring				 * gpio0fgrp cover line 18 used by reset button
145*724ba675SRob Herring				 * gpio0ggrp cover line 20 used by info LED
146*724ba675SRob Herring				 * gpio0hgrp cover line 21, 22 used by MDIO for Marvell PHY
147*724ba675SRob Herring				 * gpio0kgrp cover line 31 used by USB LED
148*724ba675SRob Herring				 */
149*724ba675SRob Herring				gpio0_default_pins: pinctrl-gpio0 {
150*724ba675SRob Herring					mux {
151*724ba675SRob Herring						function = "gpio0";
152*724ba675SRob Herring						groups = "gpio0fgrp",
153*724ba675SRob Herring						"gpio0hgrp";
154*724ba675SRob Herring					};
155*724ba675SRob Herring				};
156*724ba675SRob Herring				/*
157*724ba675SRob Herring				 * gpio0dgrp cover lines used by the SPI
158*724ba675SRob Herring				 * to the Vitesse G5x chip.
159*724ba675SRob Herring				 */
160*724ba675SRob Herring				gpio1_default_pins: pinctrl-gpio1 {
161*724ba675SRob Herring					mux {
162*724ba675SRob Herring						function = "gpio1";
163*724ba675SRob Herring						groups = "gpio1dgrp";
164*724ba675SRob Herring					};
165*724ba675SRob Herring				};
166*724ba675SRob Herring				/*
167*724ba675SRob Herring				 * These GPIO groups will be mapped in over some
168*724ba675SRob Herring				 * of the flash pins when the flash is not in
169*724ba675SRob Herring				 * active use.
170*724ba675SRob Herring				 */
171*724ba675SRob Herring				pflash_disabled_pins: pinctrl-pflash-disabled {
172*724ba675SRob Herring					mux {
173*724ba675SRob Herring						function = "gpio0";
174*724ba675SRob Herring						groups = "gpio0ggrp", "gpio0igrp", "gpio0jgrp",
175*724ba675SRob Herring							 "gpio0kgrp";
176*724ba675SRob Herring					};
177*724ba675SRob Herring				};
178*724ba675SRob Herring				pinctrl-gmii {
179*724ba675SRob Herring					mux {
180*724ba675SRob Herring						function = "gmii";
181*724ba675SRob Herring						groups = "gmii_gmac0_grp", "gmii_gmac1_grp";
182*724ba675SRob Herring					};
183*724ba675SRob Herring					/* Settings come from memory dump in PLATO */
184*724ba675SRob Herring					conf0 {
185*724ba675SRob Herring						pins = "V8 GMAC0 RXDV";
186*724ba675SRob Herring						skew-delay = <0>;
187*724ba675SRob Herring					};
188*724ba675SRob Herring					conf1 {
189*724ba675SRob Herring						pins = "Y7 GMAC0 RXC";
190*724ba675SRob Herring						skew-delay = <15>;
191*724ba675SRob Herring					};
192*724ba675SRob Herring					conf2 {
193*724ba675SRob Herring						pins = "T8 GMAC0 TXEN";
194*724ba675SRob Herring						skew-delay = <7>;
195*724ba675SRob Herring					};
196*724ba675SRob Herring					conf3 {
197*724ba675SRob Herring						pins = "U8 GMAC0 TXC";
198*724ba675SRob Herring						skew-delay = <10>;
199*724ba675SRob Herring					};
200*724ba675SRob Herring					conf4 {
201*724ba675SRob Herring						pins = "T10 GMAC1 RXDV";
202*724ba675SRob Herring						skew-delay = <7>;
203*724ba675SRob Herring					};
204*724ba675SRob Herring					conf5 {
205*724ba675SRob Herring						pins = "Y11 GMAC1 RXC";
206*724ba675SRob Herring						skew-delay = <8>;
207*724ba675SRob Herring					};
208*724ba675SRob Herring					conf6 {
209*724ba675SRob Herring						pins = "W11 GMAC1 TXEN";
210*724ba675SRob Herring						skew-delay = <7>;
211*724ba675SRob Herring					};
212*724ba675SRob Herring					conf7 {
213*724ba675SRob Herring						pins = "V11 GMAC1 TXC";
214*724ba675SRob Herring						skew-delay = <5>;
215*724ba675SRob Herring					};
216*724ba675SRob Herring					conf8 {
217*724ba675SRob Herring						/* The data lines all have default skew */
218*724ba675SRob Herring						pins = "W8 GMAC0 RXD0", "V9 GMAC0 RXD1",
219*724ba675SRob Herring						       "Y8 GMAC0 RXD2", "U9 GMAC0 RXD3",
220*724ba675SRob Herring						       "T7 GMAC0 TXD0", "U6 GMAC0 TXD1",
221*724ba675SRob Herring						       "V7 GMAC0 TXD2", "U7 GMAC0 TXD3",
222*724ba675SRob Herring						       "Y12 GMAC1 RXD0", "V12 GMAC1 RXD1",
223*724ba675SRob Herring						       "T11 GMAC1 RXD2", "W12 GMAC1 RXD3",
224*724ba675SRob Herring						       "U10 GMAC1 TXD0", "Y10 GMAC1 TXD1",
225*724ba675SRob Herring						       "W10 GMAC1 TXD2", "T9 GMAC1 TXD3";
226*724ba675SRob Herring						skew-delay = <7>;
227*724ba675SRob Herring					};
228*724ba675SRob Herring					/* Set up drive strength on GMAC0 and GMAC1 to 16 mA */
229*724ba675SRob Herring					conf9 {
230*724ba675SRob Herring						groups = "gmii_gmac0_grp", "gmii_gmac1_grp";
231*724ba675SRob Herring						drive-strength = <16>;
232*724ba675SRob Herring					};
233*724ba675SRob Herring				};
234*724ba675SRob Herring			};
235*724ba675SRob Herring		};
236*724ba675SRob Herring
237*724ba675SRob Herring		sata: sata@46000000 {
238*724ba675SRob Herring			cortina,gemini-ata-muxmode = <0>;
239*724ba675SRob Herring			cortina,gemini-enable-sata-bridge;
240*724ba675SRob Herring			status = "okay";
241*724ba675SRob Herring		};
242*724ba675SRob Herring
243*724ba675SRob Herring		gpio0: gpio@4d000000 {
244*724ba675SRob Herring			pinctrl-names = "default";
245*724ba675SRob Herring			pinctrl-0 = <&gpio0_default_pins>;
246*724ba675SRob Herring		};
247*724ba675SRob Herring
248*724ba675SRob Herring		gpio1: gpio@4e000000 {
249*724ba675SRob Herring			pinctrl-names = "default";
250*724ba675SRob Herring			pinctrl-0 = <&gpio1_default_pins>;
251*724ba675SRob Herring		};
252*724ba675SRob Herring
253*724ba675SRob Herring		pci@50000000 {
254*724ba675SRob Herring			status = "okay";
255*724ba675SRob Herring		};
256*724ba675SRob Herring
257*724ba675SRob Herring		ethernet@60000000 {
258*724ba675SRob Herring			status = "okay";
259*724ba675SRob Herring
260*724ba675SRob Herring			ethernet-port@0 {
261*724ba675SRob Herring				phy-mode = "rgmii";
262*724ba675SRob Herring				phy-handle = <&phy0>;
263*724ba675SRob Herring			};
264*724ba675SRob Herring			ethernet-port@1 {
265*724ba675SRob Herring				phy-mode = "rgmii";
266*724ba675SRob Herring				fixed-link {
267*724ba675SRob Herring					speed = <1000>;
268*724ba675SRob Herring					full-duplex;
269*724ba675SRob Herring					pause;
270*724ba675SRob Herring				};
271*724ba675SRob Herring			};
272*724ba675SRob Herring		};
273*724ba675SRob Herring
274*724ba675SRob Herring		ide@63000000 {
275*724ba675SRob Herring			status = "okay";
276*724ba675SRob Herring		};
277*724ba675SRob Herring
278*724ba675SRob Herring		usb@68000000 {
279*724ba675SRob Herring			status = "okay";
280*724ba675SRob Herring		};
281*724ba675SRob Herring
282*724ba675SRob Herring		usb@69000000 {
283*724ba675SRob Herring			status = "okay";
284*724ba675SRob Herring		};
285*724ba675SRob Herring	};
286*724ba675SRob Herring};
287