1418962eeSMathew McBride// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2418962eeSMathew McBride/*
3418962eeSMathew McBride * Device Tree file for Travese Ten64 (LS1088) board
4418962eeSMathew McBride * Based on fsl-ls1088a-rdb.dts
5418962eeSMathew McBride * Copyright 2017-2020 NXP
6418962eeSMathew McBride * Copyright 2019-2021 Traverse Technologies
7418962eeSMathew McBride *
8418962eeSMathew McBride * Author: Mathew McBride <matt@traverse.com.au>
9418962eeSMathew McBride */
10418962eeSMathew McBride
11418962eeSMathew McBride/dts-v1/;
12418962eeSMathew McBride
13418962eeSMathew McBride#include "fsl-ls1088a.dtsi"
14418962eeSMathew McBride
15418962eeSMathew McBride#include <dt-bindings/gpio/gpio.h>
16418962eeSMathew McBride#include <dt-bindings/input/input.h>
17418962eeSMathew McBride
18418962eeSMathew McBride/ {
19418962eeSMathew McBride	model = "Traverse Ten64";
20418962eeSMathew McBride	compatible = "traverse,ten64", "fsl,ls1088a";
21418962eeSMathew McBride
22418962eeSMathew McBride	aliases {
23418962eeSMathew McBride		serial0 = &duart0;
24418962eeSMathew McBride		serial1 = &duart1;
25418962eeSMathew McBride	};
26418962eeSMathew McBride
27418962eeSMathew McBride	chosen {
28418962eeSMathew McBride		stdout-path = "serial0:115200n8";
29418962eeSMathew McBride	};
30418962eeSMathew McBride
31418962eeSMathew McBride	buttons {
32418962eeSMathew McBride		compatible = "gpio-keys";
33418962eeSMathew McBride
34418962eeSMathew McBride		/* Fired by system controller when
35418962eeSMathew McBride		 * external power off (e.g ATX Power Button)
36418962eeSMathew McBride		 * asserted
37418962eeSMathew McBride		 */
38b803d15eSKrzysztof Kozlowski		button-powerdn {
39418962eeSMathew McBride			label = "External Power Down";
40418962eeSMathew McBride			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
41418962eeSMathew McBride			linux,code = <KEY_POWER>;
42418962eeSMathew McBride		};
43418962eeSMathew McBride
44418962eeSMathew McBride		/* Rear Panel 'ADMIN' button (GPIO_H) */
45b803d15eSKrzysztof Kozlowski		button-admin {
46418962eeSMathew McBride			label = "ADMIN button";
47418962eeSMathew McBride			gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
48418962eeSMathew McBride			linux,code = <KEY_WPS_BUTTON>;
49418962eeSMathew McBride		};
50418962eeSMathew McBride	};
51418962eeSMathew McBride
52418962eeSMathew McBride	leds {
53418962eeSMathew McBride		compatible = "gpio-leds";
54418962eeSMathew McBride
5582cb8506SKrzysztof Kozlowski		led-0 {
56418962eeSMathew McBride			label = "ten64:green:sfp1:down";
57418962eeSMathew McBride			gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
58418962eeSMathew McBride		};
59418962eeSMathew McBride
6082cb8506SKrzysztof Kozlowski		led-1 {
61418962eeSMathew McBride			label = "ten64:green:sfp2:up";
62418962eeSMathew McBride			gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>;
63418962eeSMathew McBride		};
64418962eeSMathew McBride
6582cb8506SKrzysztof Kozlowski		led-2 {
66418962eeSMathew McBride			label = "ten64:admin";
67418962eeSMathew McBride			gpios = <&sfpgpio 12 GPIO_ACTIVE_HIGH>;
68418962eeSMathew McBride		};
69418962eeSMathew McBride	};
70418962eeSMathew McBride
71418962eeSMathew McBride	sfp_xg0: dpmac2-sfp {
72418962eeSMathew McBride		compatible = "sff,sfp";
73418962eeSMathew McBride		i2c-bus = <&sfplower_i2c>;
74418962eeSMathew McBride		tx-fault-gpios = <&sfpgpio 0 GPIO_ACTIVE_HIGH>;
75418962eeSMathew McBride		tx-disable-gpios = <&sfpgpio 1 GPIO_ACTIVE_HIGH>;
76418962eeSMathew McBride		mod-def0-gpios = <&sfpgpio 2 GPIO_ACTIVE_LOW>;
77418962eeSMathew McBride		los-gpios = <&sfpgpio 3 GPIO_ACTIVE_HIGH>;
78418962eeSMathew McBride		maximum-power-milliwatt = <2000>;
79418962eeSMathew McBride	};
80418962eeSMathew McBride
81418962eeSMathew McBride	sfp_xg1: dpmac1-sfp {
82418962eeSMathew McBride		compatible = "sff,sfp";
83418962eeSMathew McBride		i2c-bus = <&sfpupper_i2c>;
84418962eeSMathew McBride		tx-fault-gpios = <&sfpgpio 4 GPIO_ACTIVE_HIGH>;
85418962eeSMathew McBride		tx-disable-gpios = <&sfpgpio 5 GPIO_ACTIVE_HIGH>;
86418962eeSMathew McBride		mod-def0-gpios = <&sfpgpio 6 GPIO_ACTIVE_LOW>;
87418962eeSMathew McBride		los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>;
88418962eeSMathew McBride		maximum-power-milliwatt = <2000>;
89418962eeSMathew McBride	};
90418962eeSMathew McBride};
91418962eeSMathew McBride
92418962eeSMathew McBride/* XG1 - Upper SFP */
93418962eeSMathew McBride&dpmac1 {
94418962eeSMathew McBride	sfp = <&sfp_xg1>;
95418962eeSMathew McBride	pcs-handle = <&pcs1>;
96418962eeSMathew McBride	phy-connection-type = "10gbase-r";
97418962eeSMathew McBride	managed = "in-band-status";
98418962eeSMathew McBride};
99418962eeSMathew McBride
100418962eeSMathew McBride/* XG0 - Lower SFP */
101418962eeSMathew McBride&dpmac2 {
102418962eeSMathew McBride	sfp = <&sfp_xg0>;
103418962eeSMathew McBride	pcs-handle = <&pcs2>;
104418962eeSMathew McBride	phy-connection-type = "10gbase-r";
105418962eeSMathew McBride	managed = "in-band-status";
106418962eeSMathew McBride};
107418962eeSMathew McBride
108418962eeSMathew McBride/* DPMAC3..6 is GE4 to GE8 */
109418962eeSMathew McBride&dpmac3 {
110418962eeSMathew McBride	phy-handle = <&mdio1_phy5>;
111418962eeSMathew McBride	phy-connection-type = "qsgmii";
112418962eeSMathew McBride	managed = "in-band-status";
113418962eeSMathew McBride	pcs-handle = <&pcs3_0>;
114418962eeSMathew McBride};
115418962eeSMathew McBride
116418962eeSMathew McBride&dpmac4 {
117418962eeSMathew McBride	phy-handle = <&mdio1_phy6>;
118418962eeSMathew McBride	phy-connection-type = "qsgmii";
119418962eeSMathew McBride	managed = "in-band-status";
120418962eeSMathew McBride	pcs-handle = <&pcs3_1>;
121418962eeSMathew McBride};
122418962eeSMathew McBride
123418962eeSMathew McBride&dpmac5 {
124418962eeSMathew McBride	phy-handle = <&mdio1_phy7>;
125418962eeSMathew McBride	phy-connection-type = "qsgmii";
126418962eeSMathew McBride	managed = "in-band-status";
127418962eeSMathew McBride	pcs-handle = <&pcs3_2>;
128418962eeSMathew McBride};
129418962eeSMathew McBride
130418962eeSMathew McBride&dpmac6 {
131418962eeSMathew McBride	phy-handle = <&mdio1_phy8>;
132418962eeSMathew McBride	phy-connection-type = "qsgmii";
133418962eeSMathew McBride	managed = "in-band-status";
134418962eeSMathew McBride	pcs-handle = <&pcs3_3>;
135418962eeSMathew McBride};
136418962eeSMathew McBride
137418962eeSMathew McBride/* DPMAC7..10 is GE0 to GE3 */
138418962eeSMathew McBride&dpmac7 {
139418962eeSMathew McBride	phy-handle = <&mdio1_phy1>;
140418962eeSMathew McBride	phy-connection-type = "qsgmii";
141418962eeSMathew McBride	managed = "in-band-status";
142418962eeSMathew McBride	pcs-handle = <&pcs7_0>;
143418962eeSMathew McBride};
144418962eeSMathew McBride
145418962eeSMathew McBride&dpmac8 {
146418962eeSMathew McBride	phy-handle = <&mdio1_phy2>;
147418962eeSMathew McBride	phy-connection-type = "qsgmii";
148418962eeSMathew McBride	managed = "in-band-status";
149418962eeSMathew McBride	pcs-handle = <&pcs7_1>;
150418962eeSMathew McBride};
151418962eeSMathew McBride
152418962eeSMathew McBride&dpmac9 {
153418962eeSMathew McBride	phy-handle = <&mdio1_phy3>;
154418962eeSMathew McBride	phy-connection-type = "qsgmii";
155418962eeSMathew McBride	managed = "in-band-status";
156418962eeSMathew McBride	pcs-handle = <&pcs7_2>;
157418962eeSMathew McBride};
158418962eeSMathew McBride
159418962eeSMathew McBride&dpmac10 {
160418962eeSMathew McBride	phy-handle = <&mdio1_phy4>;
161418962eeSMathew McBride	phy-connection-type = "qsgmii";
162418962eeSMathew McBride	managed = "in-band-status";
163418962eeSMathew McBride	pcs-handle = <&pcs7_3>;
164418962eeSMathew McBride};
165418962eeSMathew McBride
166418962eeSMathew McBride&duart0 {
167418962eeSMathew McBride	status = "okay";
168418962eeSMathew McBride};
169418962eeSMathew McBride
170418962eeSMathew McBride&duart1 {
171418962eeSMathew McBride	status = "okay";
172418962eeSMathew McBride};
173418962eeSMathew McBride
174418962eeSMathew McBride&emdio1 {
175418962eeSMathew McBride	status = "okay";
176418962eeSMathew McBride
177418962eeSMathew McBride	mdio1_phy5: ethernet-phy@c {
178418962eeSMathew McBride		reg = <0xc>;
179418962eeSMathew McBride	};
180418962eeSMathew McBride
181418962eeSMathew McBride	mdio1_phy6: ethernet-phy@d {
182418962eeSMathew McBride		reg = <0xd>;
183418962eeSMathew McBride	};
184418962eeSMathew McBride
185418962eeSMathew McBride	mdio1_phy7: ethernet-phy@e {
186418962eeSMathew McBride		reg = <0xe>;
187418962eeSMathew McBride	};
188418962eeSMathew McBride
189418962eeSMathew McBride	mdio1_phy8: ethernet-phy@f {
190418962eeSMathew McBride		reg = <0xf>;
191418962eeSMathew McBride	};
192418962eeSMathew McBride
193418962eeSMathew McBride	mdio1_phy1: ethernet-phy@1c {
194418962eeSMathew McBride		reg = <0x1c>;
195418962eeSMathew McBride	};
196418962eeSMathew McBride
197418962eeSMathew McBride	mdio1_phy2: ethernet-phy@1d {
198418962eeSMathew McBride		reg = <0x1d>;
199418962eeSMathew McBride	};
200418962eeSMathew McBride
201418962eeSMathew McBride	mdio1_phy3: ethernet-phy@1e {
202418962eeSMathew McBride		reg = <0x1e>;
203418962eeSMathew McBride	};
204418962eeSMathew McBride
205418962eeSMathew McBride	mdio1_phy4: ethernet-phy@1f {
206418962eeSMathew McBride		reg = <0x1f>;
207418962eeSMathew McBride	};
208418962eeSMathew McBride};
209418962eeSMathew McBride
210418962eeSMathew McBride&esdhc {
211418962eeSMathew McBride	status = "okay";
212418962eeSMathew McBride};
213418962eeSMathew McBride
214418962eeSMathew McBride&i2c0 {
215418962eeSMathew McBride	status = "okay";
216418962eeSMathew McBride
217418962eeSMathew McBride	sfpgpio: gpio@76 {
218418962eeSMathew McBride		compatible = "ti,tca9539";
219418962eeSMathew McBride		reg = <0x76>;
220418962eeSMathew McBride		#gpio-cells = <2>;
221418962eeSMathew McBride		gpio-controller;
222418962eeSMathew McBride
223418962eeSMathew McBride		admin_led_lower {
224418962eeSMathew McBride			gpio-hog;
225418962eeSMathew McBride			gpios = <13 GPIO_ACTIVE_HIGH>;
226418962eeSMathew McBride			output-low;
227418962eeSMathew McBride		};
228418962eeSMathew McBride	};
229418962eeSMathew McBride
230418962eeSMathew McBride	at97sc: tpm@29 {
231418962eeSMathew McBride		compatible = "atmel,at97sc3204t";
232418962eeSMathew McBride		reg = <0x29>;
233418962eeSMathew McBride	};
234418962eeSMathew McBride};
235418962eeSMathew McBride
236418962eeSMathew McBride&i2c2 {
237418962eeSMathew McBride	status = "okay";
238418962eeSMathew McBride
239418962eeSMathew McBride	rx8035: rtc@32 {
240418962eeSMathew McBride		compatible = "epson,rx8035";
241418962eeSMathew McBride		reg = <0x32>;
242418962eeSMathew McBride	};
243418962eeSMathew McBride};
244418962eeSMathew McBride
245418962eeSMathew McBride&i2c3 {
246418962eeSMathew McBride	status = "okay";
247418962eeSMathew McBride
248*b025b4f5SGeert Uytterhoeven	i2c-mux@70 {
249418962eeSMathew McBride		compatible = "nxp,pca9540";
250418962eeSMathew McBride		#address-cells = <1>;
251418962eeSMathew McBride		#size-cells = <0>;
252418962eeSMathew McBride		reg = <0x70>;
253418962eeSMathew McBride
254418962eeSMathew McBride		sfpupper_i2c: i2c@0 {
255418962eeSMathew McBride			#address-cells = <1>;
256418962eeSMathew McBride			#size-cells = <0>;
257418962eeSMathew McBride			reg = <0>;
258418962eeSMathew McBride		};
259418962eeSMathew McBride
260418962eeSMathew McBride		sfplower_i2c: i2c@1 {
261418962eeSMathew McBride			#address-cells = <1>;
262418962eeSMathew McBride			#size-cells = <0>;
263418962eeSMathew McBride			reg = <1>;
264418962eeSMathew McBride		};
265418962eeSMathew McBride	};
266418962eeSMathew McBride};
267418962eeSMathew McBride
268418962eeSMathew McBride&pcs_mdio1 {
269418962eeSMathew McBride	status = "okay";
270418962eeSMathew McBride};
271418962eeSMathew McBride
272418962eeSMathew McBride&pcs_mdio2 {
273418962eeSMathew McBride	status = "okay";
274418962eeSMathew McBride};
275418962eeSMathew McBride
276418962eeSMathew McBride&pcs_mdio3 {
277418962eeSMathew McBride	status = "okay";
278418962eeSMathew McBride};
279418962eeSMathew McBride
280418962eeSMathew McBride&pcs_mdio7 {
281418962eeSMathew McBride	status = "okay";
282418962eeSMathew McBride};
283418962eeSMathew McBride
284418962eeSMathew McBride&qspi {
285418962eeSMathew McBride	status = "okay";
286418962eeSMathew McBride
287418962eeSMathew McBride	en25s64: flash@0 {
288418962eeSMathew McBride		compatible = "jedec,spi-nor";
289418962eeSMathew McBride		#address-cells = <1>;
290418962eeSMathew McBride		#size-cells = <1>;
291418962eeSMathew McBride		reg = <0>;
292418962eeSMathew McBride		spi-max-frequency = <20000000>;
293418962eeSMathew McBride		spi-rx-bus-width = <4>;
294418962eeSMathew McBride		spi-tx-bus-width = <4>;
295418962eeSMathew McBride
296418962eeSMathew McBride		partitions {
297418962eeSMathew McBride			compatible = "fixed-partitions";
298418962eeSMathew McBride			#address-cells = <1>;
299418962eeSMathew McBride			#size-cells = <1>;
300418962eeSMathew McBride
301418962eeSMathew McBride			partition@0 {
302418962eeSMathew McBride				label = "bl2";
303418962eeSMathew McBride				reg = <0 0x100000>;
304418962eeSMathew McBride			};
305418962eeSMathew McBride
306418962eeSMathew McBride			partition@100000 {
307418962eeSMathew McBride				label = "bl3";
308418962eeSMathew McBride				reg = <0x100000 0x200000>;
309418962eeSMathew McBride			};
310418962eeSMathew McBride
311418962eeSMathew McBride			partition@300000 {
312418962eeSMathew McBride				label = "mcfirmware";
313418962eeSMathew McBride				reg = <0x300000 0x200000>;
314418962eeSMathew McBride			};
315418962eeSMathew McBride
316418962eeSMathew McBride			partition@500000 {
317418962eeSMathew McBride				label = "ubootenv";
318418962eeSMathew McBride				reg = <0x500000 0x80000>;
319418962eeSMathew McBride			};
320418962eeSMathew McBride
321418962eeSMathew McBride			partition@580000 {
322418962eeSMathew McBride				label = "dpl";
323418962eeSMathew McBride				reg = <0x580000 0x40000>;
324418962eeSMathew McBride			};
325418962eeSMathew McBride
326418962eeSMathew McBride			partition@5C0000 {
327418962eeSMathew McBride				label = "dpc";
328418962eeSMathew McBride				reg = <0x5C0000 0x40000>;
329418962eeSMathew McBride			};
330418962eeSMathew McBride
331418962eeSMathew McBride			partition@600000 {
332418962eeSMathew McBride				label = "devicetree";
333418962eeSMathew McBride				reg = <0x600000 0x40000>;
334418962eeSMathew McBride			};
335418962eeSMathew McBride		};
336418962eeSMathew McBride	};
337418962eeSMathew McBride
338418962eeSMathew McBride	nand: flash@1 {
339418962eeSMathew McBride		compatible = "spi-nand";
340418962eeSMathew McBride		#address-cells = <1>;
341418962eeSMathew McBride		#size-cells = <1>;
342418962eeSMathew McBride		reg = <1>;
343418962eeSMathew McBride		spi-max-frequency = <20000000>;
344418962eeSMathew McBride		spi-rx-bus-width = <4>;
345418962eeSMathew McBride		spi-tx-bus-width = <4>;
346418962eeSMathew McBride
347418962eeSMathew McBride		partitions {
348418962eeSMathew McBride			compatible = "fixed-partitions";
349418962eeSMathew McBride			#address-cells = <1>;
350418962eeSMathew McBride			#size-cells = <1>;
351418962eeSMathew McBride
352418962eeSMathew McBride			/* reserved for future boot direct from NAND flash
353418962eeSMathew McBride			 * (this would use the same layout as the 8MiB NOR flash)
354418962eeSMathew McBride			 */
355418962eeSMathew McBride			partition@0 {
356418962eeSMathew McBride				label = "nand-boot-reserved";
357418962eeSMathew McBride				reg = <0 0x800000>;
358418962eeSMathew McBride			};
359418962eeSMathew McBride
360418962eeSMathew McBride			/* recovery / install environment */
361418962eeSMathew McBride			partition@800000 {
362418962eeSMathew McBride				label = "recovery";
363418962eeSMathew McBride				reg = <0x800000 0x2000000>;
364418962eeSMathew McBride			};
365418962eeSMathew McBride
366418962eeSMathew McBride			/* ubia (first OpenWrt) - a/b names to prevent confusion with ubi0/1/etc. */
367418962eeSMathew McBride			partition@2800000 {
368418962eeSMathew McBride				label = "ubia";
369418962eeSMathew McBride				reg = <0x2800000 0x6C00000>;
370418962eeSMathew McBride			};
371418962eeSMathew McBride
372418962eeSMathew McBride			/* ubib (second OpenWrt) */
373418962eeSMathew McBride			partition@9400000 {
374418962eeSMathew McBride				label = "ubib";
375418962eeSMathew McBride				reg = <0x9400000 0x6C00000>;
376418962eeSMathew McBride			};
377418962eeSMathew McBride		};
378418962eeSMathew McBride	};
379418962eeSMathew McBride};
380418962eeSMathew McBride
381418962eeSMathew McBride&usb0 {
382418962eeSMathew McBride	status = "okay";
383418962eeSMathew McBride};
384418962eeSMathew McBride
385418962eeSMathew McBride&usb1 {
386418962eeSMathew McBride	status = "okay";
387418962eeSMathew McBride};
388