1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 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";
};
};
};
|