From d73871fb18ac79239a8b696d9439f0f3a5bb266c Mon Sep 17 00:00:00 2001
From: Jonas Gorski <jogo@openwrt.org>
Date: Tue, 23 Oct 2012 10:57:44 +0000
Subject: [PATCH] add support for Comtrend AR5387un.
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

Router: Comtrend AR5387un.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
[jogo: fix subject, indentation in patch]
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>

SVN-Revision: 33894
---
 .../etc/uci-defaults/brcm63xx_fixcrc.sh       |  1 +
 .../base-files/etc/uci-defaults/network       |  1 +
 .../linux/brcm63xx/base-files/lib/brcm63xx.sh |  5 ++
 target/linux/brcm63xx/image/Makefile          |  1 +
 .../patches-3.3/531-board_96328A-1441N1.patch | 89 +++++++++++++++++++
 .../patches-3.3/550-alice_gate2_leds.patch    |  2 +-
 .../patches-3.3/551-96348gw_a_leds.patch      |  2 +-
 .../552-board_96348gw-10_reset_button.patch   |  2 +-
 .../801-ssb_export_fallback_sprom.patch       |  4 +-
 9 files changed, 102 insertions(+), 5 deletions(-)
 create mode 100644 target/linux/brcm63xx/patches-3.3/531-board_96328A-1441N1.patch

diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/brcm63xx_fixcrc.sh b/target/linux/brcm63xx/base-files/etc/uci-defaults/brcm63xx_fixcrc.sh
index 13b48b0cc4..4da4e0a650 100755
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/brcm63xx_fixcrc.sh
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/brcm63xx_fixcrc.sh
@@ -14,6 +14,7 @@ brcm63xx_detect
 
 case "$board_name" in
 	96328avng |\
+	96328A-1441N1 |\
 	963281TAN |\
 	963281T_TEF |\
 	"CPVA502+" |\
diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/network b/target/linux/brcm63xx/base-files/etc/uci-defaults/network
index 1eb57de8e1..871d597b49 100755
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/network
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/network
@@ -15,6 +15,7 @@ ucidef_set_interface_loopback
 case "$board_name" in
 
 96328avng |\
+96328A-1441N1 |\
 963281TAN |\
 963281T_TEF |\
 96348A-122 |\
diff --git a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
index 29a541f4b6..d3d1b02ead 100755
--- a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
+++ b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
@@ -22,6 +22,11 @@ brcm63xx_detect() {
 		status_led="96328avng::power"
 		ifname=eth0
 		;;
+	96328A-1441N1)
+		brcm63xx_has_reset_button="true"
+		status_led="96328A-1441N1:green:power"
+		ifname=eth0
+		;;
 	963281TAN)
 		status_led="963281TAN::power"
 		ifname=eth0
diff --git a/target/linux/brcm63xx/image/Makefile b/target/linux/brcm63xx/image/Makefile
index 480116f6d8..98f8465977 100644
--- a/target/linux/brcm63xx/image/Makefile
+++ b/target/linux/brcm63xx/image/Makefile
@@ -148,6 +148,7 @@ define Image/Build
 	$(call Image/Build/CFE,$(1),96328avng,6328,96328avng-4M-flash-generic,,--pad 2)
 	$(call Image/Build/CFE,$(1),96328avng,6328,96328avng-8M-flash-generic,,--pad 4)
 	$(call Image/Build/CFE,$(1),96328avng,6328,96328avng-16M-flash-generic,,--pad 8)
+	$(call Image/Build/CFE,$(1),96328A-1441N1,6328,96328A-1441N1-generic,,--pad 8)
 	$(call Image/Build/CFE,$(1),963281TAN,6328,963281TAN-4M-flash-generic,,--pad 2)
 	$(call Image/Build/CFE,$(1),963281TAN,6328,963281TAN-8M-flash-generic,,--pad 4)
 	$(call Image/Build/CFE,$(1),963281TAN,6328,963281TAN-16M-flash-generic,,--pad 8)
diff --git a/target/linux/brcm63xx/patches-3.3/531-board_96328A-1441N1.patch b/target/linux/brcm63xx/patches-3.3/531-board_96328A-1441N1.patch
new file mode 100644
index 0000000000..c254040a6e
--- /dev/null
+++ b/target/linux/brcm63xx/patches-3.3/531-board_96328A-1441N1.patch
@@ -0,0 +1,89 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -136,6 +136,78 @@ static struct board_info __initdata boar
+ 	},
+ };
+ 
++static struct board_info __initdata board_96328A_1441N1 = {
++	.name					= "96328A-1441N1",
++	.expected_cpu_id			= 0x6328,
++
++	.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		= "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",
++			},
++		},
++	},
++
++	.leds = {
++		{
++			.name			= "96328A-1441N1:green:power",
++			.gpio			= 8,
++			.default_trigger	= "default-on",
++		},
++		{
++			.name			= "96328A-1441N1:red:power",
++			.gpio			= 4,
++		},
++		{
++			.name			= "96328A-1441N1:green:inet",
++			.gpio			= 7,
++		},
++		{
++			.name			= "96328A-1441N1:red:inet",
++			.gpio			= 1,
++		},
++		{
++			.name			= "96328A-1441N1:green:dsl",
++			.gpio			= 11,
++			.active_low		= 1,
++		},
++	},
++
++	.buttons = {
++		{
++			.desc			= "reset",
++			.gpio			= 23,
++			.active_low		= 1,
++			.type			= EV_KEY,
++			.code			= KEY_RESTART,
++			.debounce_interval	= BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++		},
++	},
++};
++
+ static struct board_info __initdata board_963281TAN = {
+ 	.name				= "963281TAN",
+ 	.expected_cpu_id		= 0x6328,
+@@ -2991,6 +3063,7 @@ static struct board_info __initdata boar
+ static const struct board_info __initdata *bcm963xx_boards[] = {
+ #ifdef CONFIG_BCM63XX_CPU_6328
+ 	&board_96328avng,
++	&board_96328A_1441N1,
+ 	&board_963281TAN,
+ 	&board_963281T_TEF,
+ 	&board_dsl_274xb_f1,
diff --git a/target/linux/brcm63xx/patches-3.3/550-alice_gate2_leds.patch b/target/linux/brcm63xx/patches-3.3/550-alice_gate2_leds.patch
index edda875031..87c1546dc5 100644
--- a/target/linux/brcm63xx/patches-3.3/550-alice_gate2_leds.patch
+++ b/target/linux/brcm63xx/patches-3.3/550-alice_gate2_leds.patch
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1780,6 +1780,99 @@ static struct board_info __initdata boar
+@@ -1852,6 +1852,99 @@ static struct board_info __initdata boar
  
  	.has_ohci0 = 1,
  	.has_ehci0 = 1,
diff --git a/target/linux/brcm63xx/patches-3.3/551-96348gw_a_leds.patch b/target/linux/brcm63xx/patches-3.3/551-96348gw_a_leds.patch
index adb362c450..869f6926d4 100644
--- a/target/linux/brcm63xx/patches-3.3/551-96348gw_a_leds.patch
+++ b/target/linux/brcm63xx/patches-3.3/551-96348gw_a_leds.patch
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -1237,6 +1237,19 @@ static struct board_info __initdata boar
+@@ -1309,6 +1309,19 @@ static struct board_info __initdata boar
  	},
  
  	.has_ohci0 = 1,
diff --git a/target/linux/brcm63xx/patches-3.3/552-board_96348gw-10_reset_button.patch b/target/linux/brcm63xx/patches-3.3/552-board_96348gw-10_reset_button.patch
index 242e15e100..1c32eda685 100644
--- a/target/linux/brcm63xx/patches-3.3/552-board_96348gw-10_reset_button.patch
+++ b/target/linux/brcm63xx/patches-3.3/552-board_96348gw-10_reset_button.patch
@@ -1,6 +1,6 @@
 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -705,6 +705,17 @@ static struct board_info __initdata boar
+@@ -777,6 +777,17 @@ static struct board_info __initdata boar
  			.active_low	= 1,
  		},
  	},
diff --git a/target/linux/brcm63xx/patches-3.3/801-ssb_export_fallback_sprom.patch b/target/linux/brcm63xx/patches-3.3/801-ssb_export_fallback_sprom.patch
index f9c9b54a76..a098659d04 100644
--- a/target/linux/brcm63xx/patches-3.3/801-ssb_export_fallback_sprom.patch
+++ b/target/linux/brcm63xx/patches-3.3/801-ssb_export_fallback_sprom.patch
@@ -8,7 +8,7 @@
  #include <linux/spi/spi.h>
  #include <linux/spi/spi_gpio.h>
  #include <linux/spi/74x164.h>
-@@ -3177,7 +3178,7 @@ static const struct board_info __initdat
+@@ -3250,7 +3251,7 @@ static const struct board_info __initdat
   * bcm4318 WLAN work
   */
  #ifdef CONFIG_SSB_PCIHOST
@@ -17,7 +17,7 @@
  	.revision		= 0x02,
  	.board_rev		= 0x17,
  	.country_code		= 0x0,
-@@ -3197,6 +3198,7 @@ static struct ssb_sprom bcm63xx_sprom =
+@@ -3270,6 +3271,7 @@ static struct ssb_sprom bcm63xx_sprom =
  	.boardflags_lo		= 0x2848,
  	.boardflags_hi		= 0x0000,
  };
-- 
2.30.2