brcm63xx: Add NuCom R5010UNv2 support
authorJonas Gorski <jogo@openwrt.org>
Wed, 2 Dec 2015 22:18:20 +0000 (22:18 +0000)
committerJonas Gorski <jogo@openwrt.org>
Wed, 2 Dec 2015 22:18:20 +0000 (22:18 +0000)
This patch adds support for the NuCom R5010UNv2.

It's a BCM6328 based board. It has an onboard BCM43217 wifi chip. For this
wifi chip looks like the brcmsmac driver isn't still supported, b43 drivers are used
for the profile of the router.

It's worth mentioning this board was affected by a bug solved with
https://dev.openwrt.org/changeset/46707

Tested-by: Angel Fontan <angel.fontan@gmail.com>
Signed-off-by: Daniel Gonzalez <dgcbueu@gmail.com>
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 47697

target/linux/brcm63xx/base-files/etc/diag.sh
target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds
target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc
target/linux/brcm63xx/base-files/lib/brcm63xx.sh
target/linux/brcm63xx/dts/r5010unv2.dts [new file with mode: 0644]
target/linux/brcm63xx/image/Makefile
target/linux/brcm63xx/patches-4.1/573-board_R5010UNv2.patch [new file with mode: 0644]
target/linux/brcm63xx/profiles/nucom.mk [new file with mode: 0644]

index 7826fada10240b1ed0f140bd0fe2eb30cda0bd98..b8649646e447e7258ff6f85a5629b7d39fbe804f 100644 (file)
@@ -102,6 +102,9 @@ set_state() {
        p870hw-51a_v2)
                status_led="P870HW-51a:green:power"
                ;;
        p870hw-51a_v2)
                status_led="P870HW-51a:green:power"
                ;;
+       r5010un_v2)
+               status_led="R5010UNv2:green:power"
+               ;;
        rta770bw)
                status_led="RTA770BW:green:diag"
                ;;
        rta770bw)
                status_led="RTA770BW:green:diag"
                ;;
index bdb3dada33001f6ba3037f4b8bfbd4e28f86ab84..dd40272ac520ba90a3c68e316722dcbf2213aefe 100644 (file)
@@ -46,6 +46,9 @@ homehub2a)
        ucidef_set_led_usbdev "usb1" "USB1" "HOMEHUB2A:blue:phone" "1-1"
        ucidef_set_led_usbdev "usb2" "USB2" "HOMEHUB2A:green:phone" "2-1"
        ;;
        ucidef_set_led_usbdev "usb1" "USB1" "HOMEHUB2A:blue:phone" "1-1"
        ucidef_set_led_usbdev "usb2" "USB2" "HOMEHUB2A:green:phone" "2-1"
        ;;
+r5010un_v2)
+       ucidef_set_led_usbdev "usb" "USB" "R5010UNv2:green:usb" "1-1"
+       ;;
 esac
 
 ucidef_commit_leds
 esac
 
 ucidef_commit_leds
index 129514b9b69444310ca831825cbb48e0d70583ff..70f18cb257bf31116da93a07ec7ec0d221a307e7 100644 (file)
@@ -94,6 +94,7 @@ fast2504n |\
 fast2704v2 |\
 hg655b |\
 p870hw-51a_v2 |\
 fast2704v2 |\
 hg655b |\
 p870hw-51a_v2 |\
+r5010un_v2 |\
 vr-3025un |\
 vr-3025u |\
 vr-3026e)
 vr-3025un |\
 vr-3025u |\
 vr-3026e)
index f307a4cabe5dd0031191f7ab0fa1d67f5e66d94d..bc9ae213c9fb15b6c5945ef3fcaa4fb2c3cd4fde 100644 (file)
@@ -23,6 +23,7 @@ case "$(brcm63xx_board_name)" in
        dsl-274xb-f |\
        magic |\
        p870hw-51a_v2 |\
        dsl-274xb-f |\
        magic |\
        p870hw-51a_v2 |\
+       r5010un_v2 |\
        rta770bw |\
        rta770w |\
        spw303v |\
        rta770bw |\
        rta770w |\
        spw303v |\
index 1a97c86d6fca9407f1110b2c66c81c4dcb4b45c0..7dc57fdd73b6e6c009091324ab2f5902543817c4 100755 (executable)
@@ -180,6 +180,9 @@ brcm63xx_dt_detect() {
        "Netgear DGND3700v1/DGND3800B")
                board_name="dgnd3700v1_dgnd3800b"
                ;;
        "Netgear DGND3700v1/DGND3800B")
                board_name="dgnd3700v1_dgnd3800b"
                ;;
+       "NuCom R5010UN v2")
+               board_name="r5010un_v2"
+               ;;
        "Pirelli A226G")
                board_name="a226g"
                ;;
        "Pirelli A226G")
                board_name="a226g"
                ;;
diff --git a/target/linux/brcm63xx/dts/r5010unv2.dts b/target/linux/brcm63xx/dts/r5010unv2.dts
new file mode 100644 (file)
index 0000000..cae2296
--- /dev/null
@@ -0,0 +1,64 @@
+/dts-v1/;
+
+#include "bcm6328.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+       model = "NuCom R5010UN v2";
+       compatible = "nucom,r5010unv2", "brcm,bcm6328";
+       
+       gpio-keys-polled {
+               compatible = "gpio-keys-polled";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               poll-interval = <20>;
+               debounce-interval = <60>;
+
+               reset {
+                       label = "reset";
+                       gpios = <&gpio0 23 1>;
+                       linux,code = <KEY_RESTART>;
+               };
+               wps {
+                       label = "wps";
+                       gpios = <&gpio0 24 1>;
+                       linux,code = <KEY_WPS_BUTTON>;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               inet_green {
+                       label = "R5010UNv2:green:inet";
+                       gpios = <&gpio0 1 1>;
+               };
+               inet_fail_red {
+                       label = "R5010UNv2:red:inet-fail";
+                       gpios = <&gpio0 2 1>;
+               };
+               dsl_red {
+                       label = "R5010UNv2:green:dsl";
+                       gpios = <&gpio0 3 1>;
+               };
+               power_green {
+                       label = "R5010UNv2:green:power";
+                       gpios = <&gpio0 4 1>;
+                       default-state = "on";
+               };
+               power_fail_red {
+                       label = "R5010UNv2:red:power-fail";
+                       gpios = <&gpio0 5 1>;
+               };
+               wps_green {
+                       label = "R5010UNv2:green:wps";
+                       gpios = <&gpio0 10 1>;
+               };
+               usb_green {
+                       label = "R5010UNv2:green:usb";
+                       gpios = <&gpio0 11 1>;
+               };
+       };
+};
+
index 95811168ba0466483775ea9e8f99c8823f668b5b..53e4c217e8fd5ac2cf83485fc209a3f524e16830 100644 (file)
@@ -590,6 +590,8 @@ $(eval $(call bcm63xxCfeRamdisk,DG834GV4,DG834GTv4,dg834g_v4,96348W3,6348))
 $(eval $(call bcm63xxCfeNetgear,DGND3700v1_3800B,DGND3700v1,dgnd3700v1,96368MVWG,6368,--image-offset 0x20000 --block-size 0x20000,U12L144T01_NETGEAR_NEWLED,1))
 # Netgear DGND3800B
 $(eval $(call bcm63xxCfeNetgear,DGND3700v1_3800B,DGND3800B,dgnd3700v1,96368MVWG,6368,--image-offset 0x20000 --block-size 0x20000,U12L144T11_NETGEAR_NEWLED,1))
 $(eval $(call bcm63xxCfeNetgear,DGND3700v1_3800B,DGND3700v1,dgnd3700v1,96368MVWG,6368,--image-offset 0x20000 --block-size 0x20000,U12L144T01_NETGEAR_NEWLED,1))
 # Netgear DGND3800B
 $(eval $(call bcm63xxCfeNetgear,DGND3700v1_3800B,DGND3800B,dgnd3700v1,96368MVWG,6368,--image-offset 0x20000 --block-size 0x20000,U12L144T11_NETGEAR_NEWLED,1))
+# NuCom R5010UNv2
+$(eval $(call bcm63xxCfe,R5010UNV2,R5010UNv2,r5010unv2,96328ang,6328,--pad 8))
 # Pirelli Alice Gate VoIP 2 Plus Wi-Fi AGPF-S0
 $(eval $(call bcm63xxCfe,AGPF_S0,AGV2+W,agpf-s0,AGPF-S0,6358,--block-size 0x20000 --image-offset 0x20000 --signature2 IMAGE --tag-version 8))
 # Pirelli A226G
 # Pirelli Alice Gate VoIP 2 Plus Wi-Fi AGPF-S0
 $(eval $(call bcm63xxCfe,AGPF_S0,AGV2+W,agpf-s0,AGPF-S0,6358,--block-size 0x20000 --image-offset 0x20000 --signature2 IMAGE --tag-version 8))
 # Pirelli A226G
diff --git a/target/linux/brcm63xx/patches-4.1/573-board_R5010UNv2.patch b/target/linux/brcm63xx/patches-4.1/573-board_R5010UNv2.patch
new file mode 100644 (file)
index 0000000..cf5a719
--- /dev/null
@@ -0,0 +1,70 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -641,6 +641,51 @@
+               },
+       },
+ };
++
++static struct board_info __initdata board_R5010UNV2 = {
++      .name                                   = "96328ang",
++      .expected_cpu_id                        = 0x6328,
++
++      .has_uart0                              = 1,
++      .has_pci                                = 1,
++      .use_fallback_sprom                     = 1,
++      .has_ohci0                              = 1,
++      .has_ehci0                              = 1,
++      .num_usbh_ports                         = 1,
++      .has_enetsw                             = 1,
++
++      .enetsw = {
++              .used_ports = {
++                      [0] = {
++                              .used           = 1,
++                              .phy_id         = 1,
++                              .name           = "Port 1",
++                      },
++                      [1] = {
++                              .used           = 1,
++                              .phy_id         = 2,
++                              .name           = "Port 2",
++                      },
++                      [2] = {
++                              .used           = 1,
++                              .phy_id         = 3,
++                              .name           = "Port 3",
++                      },
++                      [3] = {
++                              .used           = 1,
++                              .phy_id         = 4,
++                              .name           = "Port 4",
++                      },
++              },
++      },
++
++      .fallback_sprom = {
++              .type                           = SPROM_BCM43217,
++              .pci_bus                        = 1,
++              .pci_dev                        = 0,
++      },
++};
++
+ #endif /* CONFIG_BCM63XX_CPU_6328 */
+ /*
+@@ -2452,6 +2497,7 @@
+       &board_A4001N1,
+       &board_dsl_274xb_f1,
+       &board_FAST2704V2,
++      &board_R5010UNV2,
+ #endif
+ #ifdef CONFIG_BCM63XX_CPU_6338
+       &board_96338gw,
+@@ -2550,6 +2596,7 @@
+       { .compatible = "comtrend,ar-5381u", .data = &board_AR5381u, },
+       { .compatible = "comtrend,ar-5387un", .data = &board_AR5387un, },
+       { .compatible = "d-link,dsl-274xb-f", .data = &board_dsl_274xb_f1, },
++      { .compatible = "nucom,r5010unv2", .data = &board_R5010UNV2, },
+       { .compatible = "sagem,f@st2704v2", .data = &board_FAST2704V2, },
+ #endif
+ #ifdef CONFIG_BCM63XX_CPU_6338
diff --git a/target/linux/brcm63xx/profiles/nucom.mk b/target/linux/brcm63xx/profiles/nucom.mk
new file mode 100644 (file)
index 0000000..2cd8801
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/R5010UNV2
+  NAME:=NuCom R5010UN v2
+  PACKAGES:=kmod-b43 wpad-mini \
+       kmod-usb2 kmod-usb-ohci kmod-ledtrig-usbdev
+endef
+define Profile/R5010UNV2/Description
+  Package set optimized for R5010UNV2.
+endef
+$(eval $(call Profile,R5010UNV2))