Explorar o código

brcm63xx: Add support for Comtrend WAP-5813n

This adds support for Comtrend WAP-5813n.

Signed-off-by: Álvaro Fernández Rojas <[email protected]>
[jogo: refresh patches]
Signed-off-by: Jonas Gorski <[email protected]>

SVN-Revision: 41421
Jonas Gorski %!s(int64=11) %!d(string=hai) anos
pai
achega
44ef9f7789

+ 7 - 0
target/linux/brcm63xx/base-files/etc/uci-defaults/02_network

@@ -95,6 +95,13 @@ DVG3810BN)
 	ucidef_add_switch_vlan "eth0" "1" "1 2 4 5 8t"
 	;;
 
+96369R-1231N)
+	ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+	ucidef_add_switch "eth0" "1" "1"
+	ucidef_add_switch_vlan "eth0" "1" "0 1 2 3 5t"
+	ucidef_add_switch_vlan "eth0" "2" "4 5t"
+	;;
+
 NB6)
 	ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
 	ucidef_add_switch "switch0" "1" "1"

+ 1 - 0
target/linux/brcm63xx/base-files/etc/uci-defaults/09_fix_crc

@@ -19,6 +19,7 @@ case "$board_name" in
 	963281TAN |\
 	963281T_TEF |\
 	96358-502V |\
+	96369R-1231N |\
 	"CPVA502+" |\
 	AW4339U |\
 	CPVA642 |\

+ 5 - 0
target/linux/brcm63xx/base-files/lib/brcm63xx.sh

@@ -28,6 +28,11 @@ brcm63xx_detect() {
 		status_led="96328A-1241N:green:power"
 		ifname=eth0
 		;;
+	96369R-1231N)
+		brcm63xx_has_reset_button="true"
+		status_led="WAP-5813n:green:power"
+		ifname="eth0"
+		;;
 	RTA770BW)
 		brcm63xx_has_reset_button="true"
 		status_led="RTA770BW:green:diag"

+ 2 - 0
target/linux/brcm63xx/image/Makefile

@@ -227,6 +227,8 @@ define Image/Build
 	$(call Image/Build/CFE,$(1),CT6373-1,6358,CT6373)
 	# Comtrend 536, 5621
 	$(call Image/Build/CFEFIXUP,$(1),96348GW-11,CT536_CT5621,6348,CT536_CT5621)
+	# Comtrend WAP-5813n
+	$(call Image/Build/CFE,$(1),96369R-1231N,6368,WAP-5813n,,--pad 4)
 	# Davolink DV201AMR
 	$(call Image/Build/CFEOLD,$(1),DV201AMR,6348)
 	# USR 9108

+ 118 - 0
target/linux/brcm63xx/patches-3.10/561-board_WAP-5813n.patch

@@ -0,0 +1,118 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -14,6 +14,7 @@
+ #include <linux/ssb/ssb.h>
+ #include <linux/gpio_keys.h>
+ #include <linux/input.h>
++#include <linux/platform_data/b53.h>
+ #include <linux/spi/spi.h>
+ #include <linux/spi/spi_gpio.h>
+ #include <linux/spi/74x164.h>
+@@ -4469,6 +4470,99 @@ static struct board_info __initdata boar
+ 	.has_ohci0 = 1,
+ 	.has_ehci0 = 1,
+ };
++
++static struct b53_platform_data WAP5813n_b53_pdata = {
++	.alias = "eth0",
++};
++
++static struct spi_board_info WAP5813n_spi_devices[] = {
++	{
++		.modalias = "b53-switch",
++		.max_speed_hz = 781000,
++		.bus_num = 0,
++		.chip_select = 0,
++		.platform_data = &WAP5813n_b53_pdata,
++	}
++};
++
++static struct board_info __initdata board_WAP5813n = {
++	.name				= "96369R-1231N",
++	.expected_cpu_id		= 0x6368,
++
++	.has_uart0			= 1,
++	.has_pci			= 1,
++	.has_ohci0			= 1,
++	.has_ehci0			= 1,
++
++	.has_enetsw			= 1,
++	.enetsw = {
++		.used_ports = {
++			[4] = {
++				.used = 1,
++				.phy_id = 0xff,
++				.bypass_link = 1,
++				.force_speed = 1000,
++				.force_duplex_full = 1,
++				.name = "RGMII",
++			},
++		},
++	},
++
++	.leds = {
++		{
++			.name		= "WAP-5813n:green:power",
++			.gpio		= 22,
++			.default_trigger = "default-on",
++		},
++		{
++			.name		= "WAP-5813n:red:power",
++			.gpio		= 24,
++		},
++		{
++			.name		= "WAP-5813n:green:inet",
++			.gpio		= 5,
++		},
++		{
++			.name		= "WAP-5813n:red:inet",
++			.gpio		= 31,
++		},
++		{
++			.name		= "WAP-5813n:green:wps",
++			.gpio		= 23,
++			.active_low	= 1,
++		},
++	},
++
++	.buttons = {
++		{
++			.desc		= "wlan",
++			.gpio		= 32,
++			.active_low	= 1,
++			.type		= EV_KEY,
++			.code		= KEY_WLAN,
++			.debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++		},
++		{
++			.desc		= "reset",
++			.gpio		= 34,
++			.active_low	= 1,
++			.type		= EV_KEY,
++			.code		= KEY_RESTART,
++			.debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++		},
++		{
++			.desc		= "wps",
++			.gpio		= 35,
++			.active_low	= 1,
++			.type		= EV_KEY,
++			.code		= KEY_WPS_BUTTON,
++			.debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++		},
++	},
++
++	.spis = WAP5813n_spi_devices,
++	.num_spis = ARRAY_SIZE(WAP5813n_spi_devices),
++};
+ #endif
+ 
+ /*
+@@ -4852,6 +4946,7 @@ static const struct board_info __initcon
+ #ifdef CONFIG_BCM63XX_CPU_6368
+ 	&board_96368mvwg,
+ 	&board_96368mvngr,
++	&board_WAP5813n,
+ #endif
+ #ifdef CONFIG_BCM63XX_CPU_63268
+ 	&board_963268bu_p300,

+ 3 - 3
target/linux/brcm63xx/patches-3.10/801-ssb_export_fallback_sprom.patch

@@ -5,10 +5,10 @@
  #include <linux/gpio_keys.h>
  #include <linux/input.h>
 +#include <linux/export.h>
+ #include <linux/platform_data/b53.h>
  #include <linux/spi/spi.h>
  #include <linux/spi/spi_gpio.h>
- #include <linux/spi/74x164.h>
-@@ -4865,7 +4866,7 @@ static const struct board_info __initcon
+@@ -4960,7 +4961,7 @@ static const struct board_info __initcon
   * bcm4318 WLAN work
   */
  #ifdef CONFIG_SSB_PCIHOST
@@ -17,7 +17,7 @@
  	.revision		= 0x02,
  	.board_rev		= 0x17,
  	.country_code		= 0x0,
-@@ -4885,6 +4886,7 @@ static struct ssb_sprom bcm63xx_sprom =
+@@ -4980,6 +4981,7 @@ static struct ssb_sprom bcm63xx_sprom =
  	.boardflags_lo		= 0x2848,
  	.boardflags_hi		= 0x0000,
  };

+ 118 - 0
target/linux/brcm63xx/patches-3.14/561-board_WAP-5813n.patch

@@ -0,0 +1,118 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -13,6 +13,7 @@
+ #include <linux/gpio_keys.h>
+ #include <linux/input.h>
+ #include <linux/pci_ids.h>
++#include <linux/platform_data/b53.h>
+ #include <linux/platform_device.h>
+ #include <linux/spi/spi.h>
+ #include <linux/spi/spi_gpio.h>
+@@ -4466,6 +4467,99 @@ static struct board_info __initdata boar
+ 	.has_ohci0 = 1,
+ 	.has_ehci0 = 1,
+ };
++
++static struct b53_platform_data WAP5813n_b53_pdata = {
++	.alias = "eth0",
++};
++
++static struct spi_board_info WAP5813n_spi_devices[] = {
++	{
++		.modalias = "b53-switch",
++		.max_speed_hz = 781000,
++		.bus_num = 0,
++		.chip_select = 0,
++		.platform_data = &WAP5813n_b53_pdata,
++	}
++};
++
++static struct board_info __initdata board_WAP5813n = {
++	.name				= "96369R-1231N",
++	.expected_cpu_id		= 0x6368,
++
++	.has_uart0			= 1,
++	.has_pci			= 1,
++	.has_ohci0			= 1,
++	.has_ehci0			= 1,
++
++	.has_enetsw			= 1,
++	.enetsw = {
++		.used_ports = {
++			[4] = {
++				.used = 1,
++				.phy_id = 0xff,
++				.bypass_link = 1,
++				.force_speed = 1000,
++				.force_duplex_full = 1,
++				.name = "RGMII",
++			},
++		},
++	},
++
++	.leds = {
++		{
++			.name		= "WAP-5813n:green:power",
++			.gpio		= 22,
++			.default_trigger = "default-on",
++		},
++		{
++			.name		= "WAP-5813n:red:power",
++			.gpio		= 24,
++		},
++		{
++			.name		= "WAP-5813n:green:inet",
++			.gpio		= 5,
++		},
++		{
++			.name		= "WAP-5813n:red:inet",
++			.gpio		= 31,
++		},
++		{
++			.name		= "WAP-5813n:green:wps",
++			.gpio		= 23,
++			.active_low	= 1,
++		},
++	},
++
++	.buttons = {
++		{
++			.desc		= "wlan",
++			.gpio		= 32,
++			.active_low	= 1,
++			.type		= EV_KEY,
++			.code		= KEY_WLAN,
++			.debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++		},
++		{
++			.desc		= "reset",
++			.gpio		= 34,
++			.active_low	= 1,
++			.type		= EV_KEY,
++			.code		= KEY_RESTART,
++			.debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++		},
++		{
++			.desc		= "wps",
++			.gpio		= 35,
++			.active_low	= 1,
++			.type		= EV_KEY,
++			.code		= KEY_WPS_BUTTON,
++			.debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++		},
++	},
++
++	.spis = WAP5813n_spi_devices,
++	.num_spis = ARRAY_SIZE(WAP5813n_spi_devices),
++};
+ #endif
+ 
+ /*
+@@ -4849,6 +4943,7 @@ static const struct board_info __initcon
+ #ifdef CONFIG_BCM63XX_CPU_6368
+ 	&board_96368mvwg,
+ 	&board_96368mvngr,
++	&board_WAP5813n,
+ #endif
+ #ifdef CONFIG_BCM63XX_CPU_63268
+ 	&board_963268bu_p300,