From a669d2c528a4c1048f8a07b176b68c614f1351f4 Mon Sep 17 00:00:00 2001
From: Jonas Gorski <jogo@openwrt.org>
Date: Sun, 27 Jul 2014 17:44:45 +0000
Subject: [PATCH] brcm63xx: Add support for Comtrend VR-3025u
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: José Vázquez Fernández <ppvazquezfer@gmail.com>
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 41847
---
 .../base-files/etc/uci-defaults/02_network    |   1 +
 .../base-files/etc/uci-defaults/09_fix_crc    |   1 +
 .../linux/brcm63xx/base-files/lib/brcm63xx.sh |   5 +
 target/linux/brcm63xx/image/Makefile          |   2 +
 .../patches-3.10/562-board_VR-3025u.patch     | 109 ++++++++++++++++++
 .../patches-3.14/562-board_VR-3025u.patch     | 109 ++++++++++++++++++
 6 files changed, 227 insertions(+)
 create mode 100644 target/linux/brcm63xx/patches-3.10/562-board_VR-3025u.patch
 create mode 100644 target/linux/brcm63xx/patches-3.14/562-board_VR-3025u.patch

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 a04f4a50bd..1d42d472b5 100755
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
@@ -81,6 +81,7 @@ DVG3810BN)
 96328A-1441N1 |\
 963281TAN |\
 963281T_TEF |\
+96368M-1541N |\
 96368MVNgr |\
 "F@ST2504n" |\
 "F@ST2704V2")
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 2f5e09b0b7..7d9a6f7925 100755
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc
@@ -19,6 +19,7 @@ case "$board_name" in
 	963281TAN |\
 	963281T_TEF |\
 	96358-502V |\
+	96368M-1541N |\
 	96369R-1231N |\
 	AW4339U |\
 	"CPVA502+" |\
diff --git a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
index fcd9281256..85d499e785 100755
--- a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
+++ b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
@@ -57,6 +57,11 @@ brcm63xx_detect() {
 		brcm63xx_has_reset_button="true"
 		ifname=eth0
 		;;
+	96368M-1541N)
+		brcm63xx_has_reset_button="true"
+		status_led="VR-3025u:green:power"
+		ifname="eth0"
+		;;
 	96369R-1231N)
 		brcm63xx_has_reset_button="true"
 		status_led="WAP-5813n:green:power"
diff --git a/target/linux/brcm63xx/image/Makefile b/target/linux/brcm63xx/image/Makefile
index 11d7678581..01235e4b26 100755
--- a/target/linux/brcm63xx/image/Makefile
+++ b/target/linux/brcm63xx/image/Makefile
@@ -230,6 +230,8 @@ define Image/Build
 	$(call Image/Build/CFE,$(1),96328A-1241N,6328,AR-5381u,,--pad 8)
 	# Comtrend AR-5387un
 	$(call Image/Build/CFE,$(1),96328A-1441N1,6328,AR-5387un,,--pad 8)
+	# Comtrend VR-3025u
+	$(call Image/Build/CFE,$(1),96368M-1541N,6368,VR-3025u,,--pad 16)
 	# Comtrend WAP-5813n
 	$(call Image/Build/CFE,$(1),96369R-1231N,6368,WAP-5813n,,--pad 4)
 	# Davolink DV201AMR
diff --git a/target/linux/brcm63xx/patches-3.10/562-board_VR-3025u.patch b/target/linux/brcm63xx/patches-3.10/562-board_VR-3025u.patch
new file mode 100644
index 0000000000..83b607fa43
--- /dev/null
+++ b/target/linux/brcm63xx/patches-3.10/562-board_VR-3025u.patch
@@ -0,0 +1,109 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -4450,6 +4450,98 @@ static struct board_info __initdata boar
+ 	.has_ehci0 = 1,
+ };
+ 
++static struct board_info __initdata board_VR3025u = {
++	.name					= "96368M-1541N",
++	.expected_cpu_id		= 0x6368,
++
++	.has_uart0				= 1,
++	.has_pci				= 1,
++	.has_ohci0				= 1,
++	.has_ehci0				= 1,
++
++	.has_enetsw				= 1,
++	.enetsw = {
++		.used_ports = {
++			[0] = {
++				.used		= 1,
++				.phy_id		= 1,
++				.name		= "port1",
++			},
++			[1] = {
++				.used		= 1,
++				.phy_id		= 2,
++				.name		= "port2",
++			},
++			[2] = {
++				.used		= 1,
++				.phy_id		= 3,
++				.name		= "port3",
++			},
++			[3] = {
++				.used		= 1,
++				.phy_id		= 4,
++				.name		= "port4",
++			},
++		},
++	},
++
++	.leds = {
++		{
++			.name		= "VR-3025u:green:dsl",
++			.gpio		= 2,
++			.active_low	= 1,
++		},
++		{
++			.name		= "VR-3025u:green:inet",
++			.gpio		= 5,
++		},
++		{
++			.name		= "VR-3025u:green:lan1",
++			.gpio		= 6,
++			.active_low	= 1,
++		},
++		{
++			.name		= "VR-3025u:green:lan2",
++			.gpio		= 7,
++			.active_low	= 1,
++		},
++		{
++			.name		= "VR-3025u:green:lan3",
++			.gpio		= 8,
++			.active_low	= 1,
++		},
++		{
++			.name		= "VR-3025u:green:lan4",
++			.gpio		= 9,
++			.active_low	= 1,
++		},
++		{
++			.name		= "VR-3025u:green:power",
++			.gpio		= 22,
++			.default_trigger = "default-on",
++		},
++		{
++			.name		= "VR-3025u:red:power",
++			.gpio		= 24,
++		},
++		{
++			.name		= "VR-3025u:red:inet",
++			.gpio		= 31,
++		},
++	},
++
++	.buttons = {
++		{
++			.desc			= "reset",
++			.gpio			= 34,
++			.type			= EV_KEY,
++			.code			= KEY_RESTART,
++			.debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++			.active_low		= 1,
++		},
++	},
++};
++
+ static struct b53_platform_data WAP5813n_b53_pdata = {
+ 	.alias = "eth0",
+ };
+@@ -4925,6 +5017,7 @@ static const struct board_info __initcon
+ #ifdef CONFIG_BCM63XX_CPU_6368
+ 	&board_96368mvwg,
+ 	&board_96368mvngr,
++	&board_VR3025u,
+ 	&board_WAP5813n,
+ #endif
+ #ifdef CONFIG_BCM63XX_CPU_63268
diff --git a/target/linux/brcm63xx/patches-3.14/562-board_VR-3025u.patch b/target/linux/brcm63xx/patches-3.14/562-board_VR-3025u.patch
new file mode 100644
index 0000000000..07565d98a0
--- /dev/null
+++ b/target/linux/brcm63xx/patches-3.14/562-board_VR-3025u.patch
@@ -0,0 +1,109 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -4460,6 +4460,98 @@ static struct board_info __initdata boar
+ 	.has_ehci0 = 1,
+ };
+ 
++static struct board_info __initdata board_VR3025u = {
++	.name					= "96368M-1541N",
++	.expected_cpu_id		= 0x6368,
++
++	.has_uart0				= 1,
++	.has_pci				= 1,
++	.has_ohci0				= 1,
++	.has_ehci0				= 1,
++
++	.has_enetsw				= 1,
++	.enetsw = {
++		.used_ports = {
++			[0] = {
++				.used		= 1,
++				.phy_id		= 1,
++				.name		= "port1",
++			},
++			[1] = {
++				.used		= 1,
++				.phy_id		= 2,
++				.name		= "port2",
++			},
++			[2] = {
++				.used		= 1,
++				.phy_id		= 3,
++				.name		= "port3",
++			},
++			[3] = {
++				.used		= 1,
++				.phy_id		= 4,
++				.name		= "port4",
++			},
++		},
++	},
++
++	.leds = {
++		{
++			.name		= "VR-3025u:green:dsl",
++			.gpio		= 2,
++			.active_low	= 1,
++		},
++		{
++			.name		= "VR-3025u:green:inet",
++			.gpio		= 5,
++		},
++		{
++			.name		= "VR-3025u:green:lan1",
++			.gpio		= 6,
++			.active_low	= 1,
++		},
++		{
++			.name		= "VR-3025u:green:lan2",
++			.gpio		= 7,
++			.active_low	= 1,
++		},
++		{
++			.name		= "VR-3025u:green:lan3",
++			.gpio		= 8,
++			.active_low	= 1,
++		},
++		{
++			.name		= "VR-3025u:green:lan4",
++			.gpio		= 9,
++			.active_low	= 1,
++		},
++		{
++			.name		= "VR-3025u:green:power",
++			.gpio		= 22,
++			.default_trigger = "default-on",
++		},
++		{
++			.name		= "VR-3025u:red:power",
++			.gpio		= 24,
++		},
++		{
++			.name		= "VR-3025u:red:inet",
++			.gpio		= 31,
++		},
++	},
++
++	.buttons = {
++		{
++			.desc			= "reset",
++			.gpio			= 34,
++			.type			= EV_KEY,
++			.code			= KEY_RESTART,
++			.debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++			.active_low		= 1,
++		},
++	},
++};
++
+ static struct b53_platform_data WAP5813n_b53_pdata = {
+ 	.alias = "eth0",
+ };
+@@ -4935,6 +5027,7 @@ static const struct board_info __initcon
+ #ifdef CONFIG_BCM63XX_CPU_6368
+ 	&board_96368mvwg,
+ 	&board_96368mvngr,
++	&board_VR3025u,
+ 	&board_WAP5813n,
+ #endif
+ #ifdef CONFIG_BCM63XX_CPU_63268
-- 
2.25.1