blob: d4867d6cf47cdc79a8a8ebf507b96e7e0683717d [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Device Tree file for Travese Ten64 (LS1088) board
4 * Based on fsl-ls1088a-rdb.dts
5 * Copyright 2017-2020 NXP
6 * Copyright 2019-2021 Traverse Technologies
7 *
8 * Author: Mathew McBride <matt@traverse.com.au>
9 */
10
11/dts-v1/;
12
13#include "fsl-ls1088a.dtsi"
14
15#include <dt-bindings/gpio/gpio.h>
16#include <dt-bindings/input/input.h>
17
18/ {
19 model = "Traverse Ten64";
20 compatible = "traverse,ten64", "fsl,ls1088a";
21
22 aliases {
23 serial0 = &duart0;
24 serial1 = &duart1;
25 };
26
27 chosen {
28 stdout-path = "serial0:115200n8";
29 };
30
31 buttons {
32 compatible = "gpio-keys";
33
34 /* Fired by system controller when
35 * external power off (e.g ATX Power Button)
36 * asserted
37 */
38 button-powerdn {
39 label = "External Power Down";
40 gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
41 linux,code = <KEY_POWER>;
42 };
43
44 /* Rear Panel 'ADMIN' button (GPIO_H) */
45 button-admin {
46 label = "ADMIN button";
47 gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
48 linux,code = <KEY_WPS_BUTTON>;
49 };
50 };
51
52 leds {
53 compatible = "gpio-leds";
54
55 led-0 {
56 label = "ten64:green:sfp1:down";
57 gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
58 };
59
60 led-1 {
61 label = "ten64:green:sfp2:up";
62 gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>;
63 };
64
65 led-2 {
66 label = "ten64:admin";
67 gpios = <&sfpgpio 12 GPIO_ACTIVE_HIGH>;
68 };
69 };
70
71 sfp_xg0: dpmac2-sfp {
72 compatible = "sff,sfp";
73 i2c-bus = <&sfplower_i2c>;
74 tx-fault-gpios = <&sfpgpio 0 GPIO_ACTIVE_HIGH>;
75 tx-disable-gpios = <&sfpgpio 1 GPIO_ACTIVE_HIGH>;
76 mod-def0-gpios = <&sfpgpio 2 GPIO_ACTIVE_LOW>;
77 los-gpios = <&sfpgpio 3 GPIO_ACTIVE_HIGH>;
78 maximum-power-milliwatt = <2000>;
79 };
80
81 sfp_xg1: dpmac1-sfp {
82 compatible = "sff,sfp";
83 i2c-bus = <&sfpupper_i2c>;
84 tx-fault-gpios = <&sfpgpio 4 GPIO_ACTIVE_HIGH>;
85 tx-disable-gpios = <&sfpgpio 5 GPIO_ACTIVE_HIGH>;
86 mod-def0-gpios = <&sfpgpio 6 GPIO_ACTIVE_LOW>;
87 los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>;
88 maximum-power-milliwatt = <2000>;
89 };
90};
91
92/* XG1 - Upper SFP */
93&dpmac1 {
94 sfp = <&sfp_xg1>;
95 pcs-handle = <&pcs1>;
96 phy-connection-type = "10gbase-r";
97 managed = "in-band-status";
98};
99
100/* XG0 - Lower SFP */
101&dpmac2 {
102 sfp = <&sfp_xg0>;
103 pcs-handle = <&pcs2>;
104 phy-connection-type = "10gbase-r";
105 managed = "in-band-status";
106};
107
108/* DPMAC3..6 is GE4 to GE8 */
109&dpmac3 {
110 phy-handle = <&mdio1_phy5>;
111 phy-connection-type = "qsgmii";
112 managed = "in-band-status";
113 pcs-handle = <&pcs3_0>;
114};
115
116&dpmac4 {
117 phy-handle = <&mdio1_phy6>;
118 phy-connection-type = "qsgmii";
119 managed = "in-band-status";
120 pcs-handle = <&pcs3_1>;
121};
122
123&dpmac5 {
124 phy-handle = <&mdio1_phy7>;
125 phy-connection-type = "qsgmii";
126 managed = "in-band-status";
127 pcs-handle = <&pcs3_2>;
128};
129
130&dpmac6 {
131 phy-handle = <&mdio1_phy8>;
132 phy-connection-type = "qsgmii";
133 managed = "in-band-status";
134 pcs-handle = <&pcs3_3>;
135};
136
137/* DPMAC7..10 is GE0 to GE3 */
138&dpmac7 {
139 phy-handle = <&mdio1_phy1>;
140 phy-connection-type = "qsgmii";
141 managed = "in-band-status";
142 pcs-handle = <&pcs7_0>;
143};
144
145&dpmac8 {
146 phy-handle = <&mdio1_phy2>;
147 phy-connection-type = "qsgmii";
148 managed = "in-band-status";
149 pcs-handle = <&pcs7_1>;
150};
151
152&dpmac9 {
153 phy-handle = <&mdio1_phy3>;
154 phy-connection-type = "qsgmii";
155 managed = "in-band-status";
156 pcs-handle = <&pcs7_2>;
157};
158
159&dpmac10 {
160 phy-handle = <&mdio1_phy4>;
161 phy-connection-type = "qsgmii";
162 managed = "in-band-status";
163 pcs-handle = <&pcs7_3>;
164};
165
166&duart0 {
167 status = "okay";
168};
169
170&duart1 {
171 status = "okay";
172};
173
174&emdio1 {
175 status = "okay";
176
177 mdio1_phy5: ethernet-phy@c {
178 reg = <0xc>;
179 };
180
181 mdio1_phy6: ethernet-phy@d {
182 reg = <0xd>;
183 };
184
185 mdio1_phy7: ethernet-phy@e {
186 reg = <0xe>;
187 };
188
189 mdio1_phy8: ethernet-phy@f {
190 reg = <0xf>;
191 };
192
193 mdio1_phy1: ethernet-phy@1c {
194 reg = <0x1c>;
195 };
196
197 mdio1_phy2: ethernet-phy@1d {
198 reg = <0x1d>;
199 };
200
201 mdio1_phy3: ethernet-phy@1e {
202 reg = <0x1e>;
203 };
204
205 mdio1_phy4: ethernet-phy@1f {
206 reg = <0x1f>;
207 };
208};
209
210&esdhc {
211 status = "okay";
212};
213
214&i2c0 {
215 status = "okay";
216
217 sfpgpio: gpio@76 {
218 compatible = "ti,tca9539";
219 reg = <0x76>;
220 #gpio-cells = <2>;
221 gpio-controller;
222
223 admin_led_lower {
224 gpio-hog;
225 gpios = <13 GPIO_ACTIVE_HIGH>;
226 output-low;
227 };
228 };
229
230 at97sc: tpm@29 {
231 compatible = "atmel,at97sc3204t";
232 reg = <0x29>;
233 };
234};
235
236&i2c2 {
237 status = "okay";
238
239 rx8035: rtc@32 {
240 compatible = "epson,rx8035";
241 reg = <0x32>;
242 };
243};
244
245&i2c3 {
246 status = "okay";
247
248 i2c-mux@70 {
249 compatible = "nxp,pca9540";
250 #address-cells = <1>;
251 #size-cells = <0>;
252 reg = <0x70>;
253
254 sfpupper_i2c: i2c@0 {
255 #address-cells = <1>;
256 #size-cells = <0>;
257 reg = <0>;
258 };
259
260 sfplower_i2c: i2c@1 {
261 #address-cells = <1>;
262 #size-cells = <0>;
263 reg = <1>;
264 };
265 };
266};
267
268&pcs_mdio1 {
269 status = "okay";
270};
271
272&pcs_mdio2 {
273 status = "okay";
274};
275
276&pcs_mdio3 {
277 status = "okay";
278};
279
280&pcs_mdio7 {
281 status = "okay";
282};
283
284&qspi {
285 status = "okay";
286
287 en25s64: flash@0 {
288 compatible = "jedec,spi-nor";
289 #address-cells = <1>;
290 #size-cells = <1>;
291 reg = <0>;
292 spi-max-frequency = <20000000>;
293 spi-rx-bus-width = <4>;
294 spi-tx-bus-width = <4>;
295
296 partitions {
297 compatible = "fixed-partitions";
298 #address-cells = <1>;
299 #size-cells = <1>;
300
301 partition@0 {
302 label = "bl2";
303 reg = <0 0x100000>;
304 };
305
306 partition@100000 {
307 label = "bl3";
308 reg = <0x100000 0x200000>;
309 };
310
311 partition@300000 {
312 label = "mcfirmware";
313 reg = <0x300000 0x200000>;
314 };
315
316 partition@500000 {
317 label = "ubootenv";
318 reg = <0x500000 0x80000>;
319 };
320
321 partition@580000 {
322 label = "dpl";
323 reg = <0x580000 0x40000>;
324 };
325
326 partition@5C0000 {
327 label = "dpc";
328 reg = <0x5C0000 0x40000>;
329 };
330
331 partition@600000 {
332 label = "devicetree";
333 reg = <0x600000 0x40000>;
334 };
335 };
336 };
337
338 nand: flash@1 {
339 compatible = "spi-nand";
340 #address-cells = <1>;
341 #size-cells = <1>;
342 reg = <1>;
343 spi-max-frequency = <20000000>;
344 spi-rx-bus-width = <4>;
345 spi-tx-bus-width = <4>;
346
347 partitions {
348 compatible = "fixed-partitions";
349 #address-cells = <1>;
350 #size-cells = <1>;
351
352 /* reserved for future boot direct from NAND flash
353 * (this would use the same layout as the 8MiB NOR flash)
354 */
355 partition@0 {
356 label = "nand-boot-reserved";
357 reg = <0 0x800000>;
358 };
359
360 /* recovery / install environment */
361 partition@800000 {
362 label = "recovery";
363 reg = <0x800000 0x2000000>;
364 };
365
366 /* ubia (first OpenWrt) - a/b names to prevent confusion with ubi0/1/etc. */
367 partition@2800000 {
368 label = "ubia";
369 reg = <0x2800000 0x6C00000>;
370 };
371
372 /* ubib (second OpenWrt) */
373 partition@9400000 {
374 label = "ubib";
375 reg = <0x9400000 0x6C00000>;
376 };
377 };
378 };
379};
380
381&usb0 {
382 status = "okay";
383};
384
385&usb1 {
386 status = "okay";
387};