brcm63xx: Add kernel support for Sagemcom F@ST2704V2 ADSL router
[openwrt/openwrt.git] / target / linux / brcm63xx / patches-3.10 / 536-board_fast2704.patch
diff --git a/target/linux/brcm63xx/patches-3.10/536-board_fast2704.patch b/target/linux/brcm63xx/patches-3.10/536-board_fast2704.patch
new file mode 100644 (file)
index 0000000..f3d700a
--- /dev/null
@@ -0,0 +1,145 @@
+From: Marcin Jurkowski <marcin1j@gmail.com>
+Date: Thu, 31 Oct 2013 22:33:10 +0000
+Subject: [PATCH] bcm63xx: Add kernel support for Sagemcom F@ST2704V2 ADSL
+ router
+
+This adds kernel support support for Sagemcom F@st 2704 wireless ADSL
+router.
+It's a BCM6328-based 802.11n wireless router with USB port and ADSL2+
+modem equipped with 64 MiB RAM and 8 MiB flash.
+
+Signed-off-by: Marcin Jurkowski <marcin1j@gmail.com>
+---
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -1480,6 +1480,122 @@ static struct board_info __initdata boar
+       },
+ };
++static struct board_info __initdata board_FAST2704V2 = {
++      .name                           = "F@ST2704V2",
++      .expected_cpu_id                = 0x6328,
++
++      .has_uart0                      = 1,
++      .has_pci                        = 1,
++      .has_ohci0                      = 1,
++      .has_ehci0                      = 1,
++      .has_usbd                       = 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 = {
++              /* front LEDs */
++              {
++                      .name                   = "F@ST2704V2:green:power",
++                      .gpio                   = 4,
++                      .active_low             = 1,
++                      .default_trigger        = "default-on",
++              },
++              {
++                      .name                   = "F@ST2704V2:red:power",
++                      .gpio                   = 5,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "F@ST2704V2:red:inet",
++                      .gpio                   = 2,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "F@ST2704V2:green:dsl",
++                      .gpio                   = 3,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "F@ST2704V2:green:inet",
++                      .gpio                   = 11,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "F@ST2704V2:green:usb",
++                      .gpio                   = 1,
++                      .active_low             = 1,
++              },
++
++              /* side button LEDs */
++              {
++                      .name                   = "F@ST2704V2:green:wps",
++                      .gpio                   = 10,
++                      .active_low             = 1,
++              },
++
++              /* FIXME: can't control gpio0 line in "out" state, needs further investigation */
++              /*
++              {
++                      .name                   = "F@ST2704V2:green:rfkill",
++                      .gpio                   = 0,
++                      .active_low             = 1,
++              },
++              */
++
++      },
++      .buttons = {
++              {
++                      .desc                   = "reset",
++                      .gpio                   = 23,
++                      .active_low             = 1,
++                      .type                   = EV_KEY,
++                      .code                   = KEY_RESTART,
++                      .debounce_interval      = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++              },
++              {
++                      .desc                   = "wps",
++                      .gpio                   = 24,
++                      .active_low             = 1,
++                      .type                   = EV_KEY,
++                      .code                   = KEY_WPS_BUTTON,
++                      .debounce_interval      = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++              },
++              {
++                      .desc                   = "rfkill",
++                      .gpio                   = 15,
++                      .active_low             = 1,
++                      .type                   = EV_KEY,
++                      .code                   = KEY_WLAN,
++                      .debounce_interval      = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++              },
++      },
++};
++
+ static struct board_info __initdata board_rta1025w_16 = {
+       .name                           = "RTA1025W_16",
+       .expected_cpu_id                = 0x6348,
+@@ -3828,6 +3944,7 @@ static const struct board_info __initcon
+       &board_963281TAN,
+       &board_963281T_TEF,
+       &board_dsl_274xb_f1,
++      &board_FAST2704V2,
+ #endif
+ #ifdef CONFIG_BCM63XX_CPU_6338
+       &board_96338gw,