diff options
Diffstat (limited to 'arch/arm/boot/dts/broadcom/bcm47094-dlink-dir-890l.dts')
-rw-r--r-- | arch/arm/boot/dts/broadcom/bcm47094-dlink-dir-890l.dts | 208 |
1 files changed, 208 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/broadcom/bcm47094-dlink-dir-890l.dts b/arch/arm/boot/dts/broadcom/bcm47094-dlink-dir-890l.dts new file mode 100644 index 0000000000..3124dfd01b --- /dev/null +++ b/arch/arm/boot/dts/broadcom/bcm47094-dlink-dir-890l.dts @@ -0,0 +1,208 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Device tree for D-Link DIR-890L + * D-Link calls this board "WRGAC36" + * this router has the same looks and form factor as D-Link DIR-885L. + * + * Some differences from DIR-885L include a separate USB2 port, separate LEDs + * for USB2 and USB3, a separate VCC supply for the USB2 slot and no + * router/extender switch is mounted (there is an empty mount point on the + * PCB) so this device is a pure router. Also the LAN ports are in the right + * order. + * + * Based on the device tree for DIR-885L + * Copyright (C) 2016 Rafał Miłecki <zajec5@gmail.com> + * Copyright (C) 2022 Linus Walleij + */ + +/dts-v1/; + +#include "bcm47094.dtsi" +#include "bcm5301x-nand-cs0-bch1.dtsi" + +/ { + compatible = "dlink,dir-890l", "brcm,bcm47094", "brcm,bcm4708"; + model = "D-Link DIR-890L"; + + chosen { + bootargs = "console=ttyS0,115200 earlycon"; + }; + + memory@0 { + device_type = "memory"; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; + }; + + leds { + /* + * LED information is derived from the boot log which + * conveniently lists all the LEDs. + */ + compatible = "gpio-leds"; + + led-power-white { + label = "bcm53xx:white:power"; + gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>; + linux,default-trigger = "default-on"; + }; + + led-wan-white { + label = "bcm53xx:white:wan"; + gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>; + }; + + led-power-amber { + label = "bcm53xx:amber:power"; + gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>; + }; + + led-wan-amber { + label = "bcm53xx:amber:wan"; + gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>; + }; + + led-usb3-white { + label = "bcm53xx:white:usb3"; + gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>; + trigger-sources = <&xhci_port1>; + linux,default-trigger = "usbport"; + }; + + led-usb2-white { + label = "bcm53xx:white:usb2"; + gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>; + trigger-sources = <&ohci_port1>, <&ehci_port1>; + linux,default-trigger = "usbport"; + }; + + led-2ghz { + label = "bcm53xx:white:2ghz"; + gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>; + }; + + led-5ghz { + label = "bcm53xx:white:5ghz"; + gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>; + }; + }; + + gpio-keys { + compatible = "gpio-keys"; + + button-wps { + label = "WPS"; + linux,code = <KEY_WPS_BUTTON>; + gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>; + }; + + /* Called "factory reset" in the vendor dmesg */ + button-restart { + label = "Reset"; + linux,code = <KEY_RESTART>; + gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>; + }; + }; + + /* + * The flash memory is memory mapped at 0x1e000000-0x1fffffff + * 64KB blocks; total size 2MB, same that can be + * found attached to the spi_nor SPI controller. + */ + nvram@1e1f0000 { + compatible = "brcm,nvram"; + reg = <0x1e1f0000 0x00010000>; + + et0macaddr: et0macaddr { + }; + }; +}; + +&gmac2 { + /* + * The NVRAM curiously does not contain a MAC address + * for et2 so since that is the only ethernet interface + * actually in use on the platform, we use this et0 MAC + * address for et2. + */ + nvmem-cells = <&et0macaddr>; + nvmem-cell-names = "mac-address"; +}; + +&spi_nor { + status = "okay"; +}; + +&nandcs { + /* Spansion S34ML01G2, 128MB with 128KB erase blocks */ + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + /* + * This is called "nflash" in the vendor kernel with + * "upgrade" and "rootfs" (probably using OpenWrt + * splitpart). We call it "firmware" like standard tools + * assume. The CFE loader contains incorrect information + * about TRX partitions, ignore this, there are no TRX + * partitions: this device uses SEAMA. + */ + firmware@0 { + compatible = "seama"; + label = "firmware"; + reg = <0x00000000 0x08000000>; + }; + }; +}; + +&usb2 { + vcc-gpios = <&chipcommon 21 GPIO_ACTIVE_HIGH>; +}; + +&usb3 { + vcc-gpios = <&chipcommon 18 GPIO_ACTIVE_HIGH>; +}; + +&usb3_phy { + status = "okay"; +}; + +&srab { + status = "okay"; + + ports { + port@0 { + label = "lan1"; + }; + + port@1 { + label = "lan2"; + }; + + port@2 { + label = "lan3"; + }; + + port@3 { + label = "lan4"; + }; + + port@4 { + label = "wan"; + }; + + port@5 { + status = "disabled"; + }; + + port@7 { + status = "disabled"; + }; + + port@8 { + label = "cpu"; + phy-mode = "rgmii"; + }; + }; +}; |