| // SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
| /* |
| * Device Tree file for Traverse Technologies Ten64 |
| * (LS1088A) board |
| * Based on fsl-ls1088a-rdb.dts |
| * Copyright 2017-2020 NXP |
| * Copyright 2019-2023 Traverse Technologies |
| * |
| * Author: Mathew McBride <matt@traverse.com.au> |
| */ |
| |
| /dts-v1/; |
| |
| #include "fsl-ls1088a.dtsi" |
| |
| #include <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/input/input.h> |
| |
| / { |
| model = "Traverse Ten64"; |
| compatible = "traverse,ten64", "fsl,ls1088a"; |
| |
| aliases { |
| serial0 = &duart0; |
| serial1 = &duart1; |
| }; |
| |
| chosen { |
| stdout-path = "serial0:115200n8"; |
| }; |
| |
| buttons { |
| compatible = "gpio-keys"; |
| |
| /* Fired by system controller when |
| * external power off (e.g ATX Power Button) |
| * asserted |
| */ |
| button-powerdn { |
| label = "External Power Down"; |
| gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; |
| linux,code = <KEY_POWER>; |
| }; |
| |
| /* Rear Panel 'ADMIN' button (GPIO_H) */ |
| button-admin { |
| label = "ADMIN button"; |
| gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>; |
| linux,code = <KEY_WPS_BUTTON>; |
| }; |
| }; |
| |
| leds { |
| compatible = "gpio-leds"; |
| |
| led-0 { |
| label = "ten64:green:sfp1:down"; |
| gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| led-1 { |
| label = "ten64:green:sfp2:up"; |
| gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| led-2 { |
| label = "ten64:admin"; |
| gpios = <&sfpgpio 12 GPIO_ACTIVE_HIGH>; |
| }; |
| }; |
| |
| sfp_xg0: dpmac2-sfp { |
| compatible = "sff,sfp"; |
| i2c-bus = <&sfplower_i2c>; |
| tx-fault-gpios = <&sfpgpio 0 GPIO_ACTIVE_HIGH>; |
| tx-disable-gpios = <&sfpgpio 1 GPIO_ACTIVE_HIGH>; |
| mod-def0-gpios = <&sfpgpio 2 GPIO_ACTIVE_LOW>; |
| los-gpios = <&sfpgpio 3 GPIO_ACTIVE_HIGH>; |
| maximum-power-milliwatt = <2000>; |
| }; |
| |
| sfp_xg1: dpmac1-sfp { |
| compatible = "sff,sfp"; |
| i2c-bus = <&sfpupper_i2c>; |
| tx-fault-gpios = <&sfpgpio 4 GPIO_ACTIVE_HIGH>; |
| tx-disable-gpios = <&sfpgpio 5 GPIO_ACTIVE_HIGH>; |
| mod-def0-gpios = <&sfpgpio 6 GPIO_ACTIVE_LOW>; |
| los-gpios = <&sfpgpio 7 GPIO_ACTIVE_HIGH>; |
| maximum-power-milliwatt = <2000>; |
| }; |
| }; |
| |
| /* XG1 - Upper SFP */ |
| &dpmac1 { |
| sfp = <&sfp_xg1>; |
| pcs-handle = <&pcs1>; |
| phy-connection-type = "10gbase-r"; |
| managed = "in-band-status"; |
| }; |
| |
| /* XG0 - Lower SFP */ |
| &dpmac2 { |
| sfp = <&sfp_xg0>; |
| pcs-handle = <&pcs2>; |
| phy-connection-type = "10gbase-r"; |
| managed = "in-band-status"; |
| }; |
| |
| /* DPMAC3..6 is GE4 to GE8 */ |
| &dpmac3 { |
| phy-handle = <&mdio1_phy5>; |
| phy-connection-type = "qsgmii"; |
| managed = "in-band-status"; |
| pcs-handle = <&pcs3_0>; |
| }; |
| |
| &dpmac4 { |
| phy-handle = <&mdio1_phy6>; |
| phy-connection-type = "qsgmii"; |
| managed = "in-band-status"; |
| pcs-handle = <&pcs3_1>; |
| }; |
| |
| &dpmac5 { |
| phy-handle = <&mdio1_phy7>; |
| phy-connection-type = "qsgmii"; |
| managed = "in-band-status"; |
| pcs-handle = <&pcs3_2>; |
| }; |
| |
| &dpmac6 { |
| phy-handle = <&mdio1_phy8>; |
| phy-connection-type = "qsgmii"; |
| managed = "in-band-status"; |
| pcs-handle = <&pcs3_3>; |
| }; |
| |
| /* DPMAC7..10 is GE0 to GE3 */ |
| &dpmac7 { |
| phy-handle = <&mdio1_phy1>; |
| phy-connection-type = "qsgmii"; |
| managed = "in-band-status"; |
| pcs-handle = <&pcs7_0>; |
| }; |
| |
| &dpmac8 { |
| phy-handle = <&mdio1_phy2>; |
| phy-connection-type = "qsgmii"; |
| managed = "in-band-status"; |
| pcs-handle = <&pcs7_1>; |
| }; |
| |
| &dpmac9 { |
| phy-handle = <&mdio1_phy3>; |
| phy-connection-type = "qsgmii"; |
| managed = "in-band-status"; |
| pcs-handle = <&pcs7_2>; |
| }; |
| |
| &dpmac10 { |
| phy-handle = <&mdio1_phy4>; |
| phy-connection-type = "qsgmii"; |
| managed = "in-band-status"; |
| pcs-handle = <&pcs7_3>; |
| }; |
| |
| &duart0 { |
| status = "okay"; |
| }; |
| |
| &duart1 { |
| status = "okay"; |
| }; |
| |
| &emdio1 { |
| status = "okay"; |
| |
| mdio1_phy5: ethernet-phy@c { |
| reg = <0xc>; |
| }; |
| |
| mdio1_phy6: ethernet-phy@d { |
| reg = <0xd>; |
| }; |
| |
| mdio1_phy7: ethernet-phy@e { |
| reg = <0xe>; |
| }; |
| |
| mdio1_phy8: ethernet-phy@f { |
| reg = <0xf>; |
| }; |
| |
| mdio1_phy1: ethernet-phy@1c { |
| reg = <0x1c>; |
| }; |
| |
| mdio1_phy2: ethernet-phy@1d { |
| reg = <0x1d>; |
| }; |
| |
| mdio1_phy3: ethernet-phy@1e { |
| reg = <0x1e>; |
| }; |
| |
| mdio1_phy4: ethernet-phy@1f { |
| reg = <0x1f>; |
| }; |
| }; |
| |
| &esdhc { |
| status = "okay"; |
| }; |
| |
| &i2c0 { |
| status = "okay"; |
| |
| sfpgpio: gpio@76 { |
| compatible = "ti,tca9539"; |
| reg = <0x76>; |
| #gpio-cells = <2>; |
| gpio-controller; |
| |
| admin_led_lower { |
| gpio-hog; |
| gpios = <13 GPIO_ACTIVE_HIGH>; |
| output-low; |
| }; |
| }; |
| |
| at97sc: tpm@29 { |
| compatible = "atmel,at97sc3204t"; |
| reg = <0x29>; |
| }; |
| }; |
| |
| &i2c2 { |
| status = "okay"; |
| |
| rx8035: rtc@32 { |
| compatible = "epson,rx8035"; |
| reg = <0x32>; |
| }; |
| }; |
| |
| &i2c3 { |
| status = "okay"; |
| |
| i2c-mux@70 { |
| compatible = "nxp,pca9540"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x70>; |
| |
| sfpupper_i2c: i2c@0 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0>; |
| }; |
| |
| sfplower_i2c: i2c@1 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <1>; |
| }; |
| }; |
| }; |
| |
| &pcs_mdio1 { |
| status = "okay"; |
| }; |
| |
| &pcs_mdio2 { |
| status = "okay"; |
| }; |
| |
| &pcs_mdio3 { |
| status = "okay"; |
| }; |
| |
| &pcs_mdio7 { |
| status = "okay"; |
| }; |
| |
| &qspi { |
| status = "okay"; |
| |
| en25s64: flash@0 { |
| compatible = "jedec,spi-nor"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| reg = <0>; |
| spi-max-frequency = <20000000>; |
| spi-rx-bus-width = <4>; |
| spi-tx-bus-width = <4>; |
| |
| partitions { |
| compatible = "fixed-partitions"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| partition@0 { |
| label = "bl2"; |
| reg = <0 0x100000>; |
| }; |
| |
| partition@100000 { |
| label = "bl3"; |
| reg = <0x100000 0x200000>; |
| }; |
| |
| partition@300000 { |
| label = "mcfirmware"; |
| reg = <0x300000 0x200000>; |
| }; |
| |
| partition@500000 { |
| label = "ubootenv"; |
| reg = <0x500000 0x80000>; |
| }; |
| |
| partition@580000 { |
| label = "dpl"; |
| reg = <0x580000 0x40000>; |
| }; |
| |
| partition@5C0000 { |
| label = "dpc"; |
| reg = <0x5C0000 0x40000>; |
| }; |
| |
| partition@600000 { |
| label = "devicetree"; |
| reg = <0x600000 0x40000>; |
| }; |
| }; |
| }; |
| |
| nand: flash@1 { |
| compatible = "spi-nand"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| reg = <1>; |
| spi-max-frequency = <20000000>; |
| spi-rx-bus-width = <4>; |
| spi-tx-bus-width = <4>; |
| |
| partitions { |
| compatible = "fixed-partitions"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| /* reserved for future boot direct from NAND flash |
| * (this would use the same layout as the 8MiB NOR flash) |
| */ |
| partition@0 { |
| label = "nand-boot-reserved"; |
| reg = <0 0x800000>; |
| }; |
| |
| /* recovery / install environment */ |
| partition@800000 { |
| label = "recovery"; |
| reg = <0x800000 0x2000000>; |
| }; |
| |
| /* ubia (first OpenWrt) - a/b names to prevent confusion with ubi0/1/etc. */ |
| partition@2800000 { |
| label = "ubia"; |
| reg = <0x2800000 0x6C00000>; |
| }; |
| |
| /* ubib (second OpenWrt) */ |
| partition@9400000 { |
| label = "ubib"; |
| reg = <0x9400000 0x6C00000>; |
| }; |
| }; |
| }; |
| }; |
| |
| &usb0 { |
| status = "okay"; |
| }; |
| |
| &usb1 { |
| status = "okay"; |
| }; |