arm64: dts: broadcom: bcm4908: add TP-Link Archer C2300 V1
authorRafał Miłecki <rafal@milecki.pl>
Wed, 10 Mar 2021 07:46:03 +0000 (08:46 +0100)
committerFlorian Fainelli <f.fainelli@gmail.com>
Sat, 13 Mar 2021 17:49:50 +0000 (09:49 -0800)
Archer C2300 V1 is a home router based on the BCM4906 (2 CPU cores). It
has 512 MiB of RAM, NAND flash, USB 2.0 and USB 3.0 ports, 4 LAN ports,
1 WAN port.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
arch/arm64/boot/dts/broadcom/bcm4908/Makefile
arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts [new file with mode: 0644]

index ebebc0c..cc75854 100644 (file)
@@ -1,3 +1,4 @@
 # SPDX-License-Identifier: GPL-2.0
 dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-netgear-r8000p.dtb
+dtb-$(CONFIG_ARCH_BCM4908) += bcm4906-tplink-archer-c2300-v1.dtb
 dtb-$(CONFIG_ARCH_BCM4908) += bcm4908-asus-gt-ac5300.dtb
diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
new file mode 100644 (file)
index 0000000..b63eefa
--- /dev/null
@@ -0,0 +1,182 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+#include "bcm4906.dtsi"
+
+/ {
+       compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908";
+       model = "TP-Link Archer C2300 V1";
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x00 0x00 0x00 0x20000000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-power {
+                       function = LED_FUNCTION_POWER;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
+               };
+
+               led-2ghz {
+                       function = "2ghz";
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+               };
+
+               led-5ghz {
+                       function = "5ghz";
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
+               };
+
+               led-wan-amber {
+                       function = LED_FUNCTION_WAN;
+                       color = <LED_COLOR_ID_AMBER>;
+                       gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-wan-blue {
+                       function = LED_FUNCTION_WAN;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
+               };
+
+               led-lan {
+                       function = LED_FUNCTION_LAN;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
+               };
+
+               led-wps {
+                       function = LED_FUNCTION_WPS;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
+               };
+
+               led-usb2 {
+                       function = "usb2";
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
+               };
+
+               led-usb3 {
+                       function = "usbd3";
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
+               };
+
+               led-brightness {
+                       function = LED_FUNCTION_BACKLIGHT;
+                       color = <LED_COLOR_ID_WHITE>;
+                       gpios = <&gpio0 19 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       gpio-keys-polled {
+               compatible = "gpio-keys-polled";
+               poll-interval = <100>;
+
+               brightness {
+                       label = "LEDs";
+                       linux,code = <KEY_BRIGHTNESS_ZERO>;
+                       gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
+               };
+
+               wps {
+                       label = "WPS";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
+               };
+
+               wifi {
+                       label = "WiFi";
+                       linux,code = <KEY_RFKILL>;
+                       gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
+               };
+
+               restart {
+                       label = "Reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&usb_phy {
+       brcm,ioc = <1>;
+       status = "okay";
+};
+
+&ehci {
+       status = "okay";
+};
+
+&ohci {
+       status = "okay";
+};
+
+&xhci {
+       status = "okay";
+};
+
+&ports {
+       port@0 {
+               label = "lan4";
+       };
+
+       port@1 {
+               label = "lan3";
+       };
+
+       port@2 {
+               label = "lan2";
+       };
+
+       port@3 {
+               label = "lan1";
+       };
+
+       port@7 {
+               reg = <7>;
+               phy-mode = "internal";
+               phy-handle = <&phy12>;
+               label = "wan";
+       };
+};
+
+&nandcs {
+       nand-ecc-strength = <4>;
+       nand-ecc-step-size = <512>;
+       nand-on-flash-bbt;
+
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       partitions {
+               compatible = "brcm,bcm4908-partitions";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partition@0 {
+                       label = "cferom";
+                       reg = <0x0 0x100000>;
+               };
+
+               partition@100000 {
+                       compatible = "brcm,bcm4908-firmware";
+                       reg = <0x100000 0x3900000>;
+               };
+
+               partition@5800000 {
+                       compatible = "brcm,bcm4908-firmware";
+                       reg = <0x3a00000 0x3900000>;
+               };
+       };
+};