OpenWrt – Rev 4

Subversion Repositories:
Rev:
From 2bebdfcdcd0feb58d5df419532a2cedc78a336d7 Mon Sep 17 00:00:00 2001
From: Vivek Unune <npcomplete13@gmail.com>
Date: Mon, 18 Jun 2018 13:41:59 -0400
Subject: [PATCH] ARM: dts: BCM5301X: Add support for Linksys EA9500
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hardware Info
-------------

Processor       - Broadcom BCM4709C0KFEBG dual-core @ 1.4 GHz
Switch          - BCM53012 in BCM4709C0KFEBG & external BCM53125
DDR3 RAM        - 256 MB
Flash           - 128 MB (Toshiba TC58BVG0S3HTA00)
2.4GHz          - BCM4366 4×4 2.4/5G single chip 802.11ac SoC
Power Amp       - Skyworks SE2623L 2.4 GHz power amp (x4)
5GHz x 2        - BCM4366 4×4 2.4/5G single chip 802.11ac SoC
Power Amp       - PLX Technology PEX8603 3-lane, 3-port PCIe switch
Ports           - 8 Ports, 1 WAN Ports
Antennas        - 8 Antennas
Serial Port     - @J6 [GND,TX,RX] (VCC NC)    115200 8n1

Tested with OpenWrt built with DSA driver and Kernel v4.14

Signed-off-by: Vivek Unune <npcomplete13@gmail.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 arch/arm/boot/dts/bcm47094-linksys-panamera.dts | 229 ++++++++++++++++++++++++
 1 file changed, 229 insertions(+)

--- a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts
+++ b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts
@@ -31,6 +31,235 @@
                        linux,code = <KEY_WPS_BUTTON>;
                        gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
                };
+
+               rfkill {
+                               label = "WiFi";
+                               linux,code = <KEY_RFKILL>;
+                               gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
+               };
+
+               reset {
+                               label = "Reset";
+                               linux,code = <KEY_RESTART>;
+                               gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               wps {
+                       label = "bcm53xx:white:wps";
+                       gpios = <&chipcommon 22 GPIO_ACTIVE_LOW>;
+               };
+
+               usb2 {
+                       label = "bcm53xx:green:usb2";
+                       gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
+                       trigger-sources = <&ohci_port2>, <&ehci_port2>;
+                       linux,default-trigger = "usbport";
+               };
+
+               usb3 {
+                       label = "bcm53xx:green:usb3";
+                       gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
+                       trigger-sources = <&ohci_port1>, <&ehci_port1>,
+                                         <&xhci_port1>;
+                       linux,default-trigger = "usbport";
+               };
+
+               power {
+                       label = "bcm53xx:white:power";
+                       gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
+               };
+
+               wifi-disabled {
+                       label = "bcm53xx:amber:wifi-disabled";
+                       gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
+               };
+
+               wifi-enabled {
+                       label = "bcm53xx:white:wifi-enabled";
+                       gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+               };
+
+               bluebar1 {
+                       label = "bcm53xx:white:bluebar1";
+                       gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
+               };
+
+               bluebar2 {
+                       label = "bcm53xx:white:bluebar2";
+                       gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
+               };
+
+               bluebar3 {
+                       label = "bcm53xx:white:bluebar3";
+                       gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
+               };
+
+               bluebar4 {
+                       label = "bcm53xx:white:bluebar4";
+                       gpios = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
+               };
+
+               bluebar5 {
+                       label = "bcm53xx:white:bluebar5";
+                       gpios = <&chipcommon 19 GPIO_ACTIVE_HIGH>;
+               };
+
+               bluebar6 {
+                       label = "bcm53xx:white:bluebar6";
+                       gpios = <&chipcommon 20 GPIO_ACTIVE_HIGH>;
+               };
+
+               bluebar7 {
+                       label = "bcm53xx:white:bluebar7";
+                       gpios = <&chipcommon 21 GPIO_ACTIVE_HIGH>;
+               };
+
+               bluebar8 {
+                       label = "bcm53xx:white:bluebar8";
+                       gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       mdio-bus-mux {
+               /* BIT(9) = 1 => external mdio */
+               mdio_ext: mdio@200 {
+                       reg = <0x200>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+
+       mdio-mii-mux {
+               compatible = "mdio-mux-mmioreg";
+               mdio-parent-bus = <&mdio_ext>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x1800c1c0 0x4>;
+
+               /* BIT(6) = mdc, BIT(7) = mdio */
+               mux-mask = <0xc0>;
+
+               mdio-mii@0 {
+                       /* Enable MII function */
+                       reg = <0x0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       switch@0  {
+                               compatible = "brcm,bcm53125";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reset-gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
+                               reset-names = "robo_reset";
+                               reg = <0>;
+                               dsa,member = <1 0>;
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               label = "lan1";
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               label = "lan5";
+                                       };
+
+                                       port@2 {
+                                               reg = <2>;
+                                               label = "lan2";
+                                       };
+
+                                       port@3 {
+                                               reg = <3>;
+                                               label = "lan6";
+                                       };
+
+                                       port@4 {
+                                               reg = <4>;
+                                               label = "lan3";
+                                       };
+
+                                       sw1_p8: port@8 {
+                                               reg = <8>;
+                                               ethernet = <&sw0_p0>;
+                                               label = "cpu";
+
+                                               fixed-link {
+                                                       speed = <1000>;
+                                                       full-duplex;
+                                               };
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&usb2 {
+       vcc-gpio = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
+};
+
+&usb3 {
+       vcc-gpio = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
+};
+
+&srab {
+       compatible = "brcm,bcm53012-srab", "brcm,bcm5301x-srab";
+       status = "okay";
+       dsa,member = <0 0>;
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@1 {
+                       reg = <1>;
+                       label = "lan7";
+               };
+
+               port@2 {
+                       reg = <2>;
+                       label = "lan4";
+               };
+
+               port@3 {
+                       reg = <3>;
+                       label = "lan8";
+               };
+
+               port@4 {
+                       reg = <4>;
+                       label = "wan";
+               };
+
+               port@8 {
+                       reg = <8>;
+                       ethernet = <&gmac2>;
+                       label = "cpu";
+
+                       fixed-link {
+                               speed = <1000>;
+                               full-duplex;
+                       };
+               };
+
+               sw0_p0: port@0 {
+                       reg = <0>;
+                       label = "extsw";
+
+                       fixed-link {
+                               speed = <1000>;
+                               full-duplex;
+                       };
+               };
        };
 };