summaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm63xx')
-rw-r--r--target/linux/brcm63xx/base-files/etc/diag.sh3
-rw-r--r--target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds3
-rw-r--r--target/linux/brcm63xx/base-files/etc/uci-defaults/02_network1
-rw-r--r--target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc1
-rwxr-xr-xtarget/linux/brcm63xx/base-files/lib/brcm63xx.sh3
-rw-r--r--target/linux/brcm63xx/dts/r5010unv2.dts64
-rw-r--r--target/linux/brcm63xx/image/Makefile2
-rw-r--r--target/linux/brcm63xx/patches-4.1/573-board_R5010UNv2.patch70
-rw-r--r--target/linux/brcm63xx/profiles/nucom.mk16
9 files changed, 163 insertions, 0 deletions
diff --git a/target/linux/brcm63xx/base-files/etc/diag.sh b/target/linux/brcm63xx/base-files/etc/diag.sh
index 7826fada10..b8649646e4 100644
--- a/target/linux/brcm63xx/base-files/etc/diag.sh
+++ b/target/linux/brcm63xx/base-files/etc/diag.sh
@@ -102,6 +102,9 @@ set_state() {
p870hw-51a_v2)
status_led="P870HW-51a:green:power"
;;
+ r5010un_v2)
+ status_led="R5010UNv2:green:power"
+ ;;
rta770bw)
status_led="RTA770BW:green:diag"
;;
diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds b/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds
index bdb3dada33..dd40272ac5 100644
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds
@@ -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"
;;
+r5010un_v2)
+ ucidef_set_led_usbdev "usb" "USB" "R5010UNv2:green:usb" "1-1"
+ ;;
esac
ucidef_commit_leds
diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network b/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
index 129514b9b6..70f18cb257 100644
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
@@ -94,6 +94,7 @@ fast2504n |\
fast2704v2 |\
hg655b |\
p870hw-51a_v2 |\
+r5010un_v2 |\
vr-3025un |\
vr-3025u |\
vr-3026e)
diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc b/target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc
index f307a4cabe..bc9ae213c9 100644
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc
@@ -23,6 +23,7 @@ case "$(brcm63xx_board_name)" in
dsl-274xb-f |\
magic |\
p870hw-51a_v2 |\
+ r5010un_v2 |\
rta770bw |\
rta770w |\
spw303v |\
diff --git a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
index 1a97c86d6f..7dc57fdd73 100755
--- a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
+++ b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
@@ -180,6 +180,9 @@ brcm63xx_dt_detect() {
"Netgear DGND3700v1/DGND3800B")
board_name="dgnd3700v1_dgnd3800b"
;;
+ "NuCom R5010UN v2")
+ board_name="r5010un_v2"
+ ;;
"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
index 0000000000..cae2296d53
--- /dev/null
+++ b/target/linux/brcm63xx/dts/r5010unv2.dts
@@ -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>;
+ };
+ };
+};
+
diff --git a/target/linux/brcm63xx/image/Makefile b/target/linux/brcm63xx/image/Makefile
index 95811168ba..53e4c217e8 100644
--- a/target/linux/brcm63xx/image/Makefile
+++ b/target/linux/brcm63xx/image/Makefile
@@ -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))
+# 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
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
index 0000000000..cf5a7198e9
--- /dev/null
+++ b/target/linux/brcm63xx/patches-4.1/573-board_R5010UNv2.patch
@@ -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
index 0000000000..2cd8801879
--- /dev/null
+++ b/target/linux/brcm63xx/profiles/nucom.mk
@@ -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))