brcm63xx: add kernel 3.18 support
[openwrt.git] / target / linux / brcm63xx / patches-3.18 / 534-board_hw556.patch
diff --git a/target/linux/brcm63xx/patches-3.18/534-board_hw556.patch b/target/linux/brcm63xx/patches-3.18/534-board_hw556.patch
new file mode 100644 (file)
index 0000000..06ad96a
--- /dev/null
@@ -0,0 +1,433 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -12,6 +12,7 @@
+ #include <linux/string.h>
+ #include <linux/gpio_keys.h>
+ #include <linux/input.h>
++#include <linux/pci_ids.h>
+ #include <linux/platform_device.h>
+ #include <linux/spi/spi.h>
+ #include <linux/spi/spi_gpio.h>
+@@ -2660,6 +2661,402 @@ static struct board_info __initdata boar
+       },
+ };
++static struct board_info __initdata board_HW556_C = {
++      .name                                   = "HW556_C",
++      .expected_cpu_id                        = 0x6358,
++
++      .has_uart0                              = 1,
++      .has_pci                                = 1,
++      .has_ohci0                              = 1,
++      .has_ehci0                              = 1,
++      .num_usbh_ports                         = 2,
++
++      .has_caldata                            = 1,
++      .caldata = {
++              {
++                      .vendor                 = PCI_VENDOR_ID_RALINK,
++                      .caldata_offset         = 0xeffe00,
++                      .slot                   = 1,
++                      .eeprom                 = "rt2x00.eeprom",
++              },
++      },
++
++      .has_enet1                              = 1,
++      .enet1 = {
++              .has_phy                        = 1,
++              .phy_id                         = 0,
++              .force_speed_100                = 1,
++              .force_duplex_full              = 1,
++      },
++
++      .leds = {
++              {
++                      .name                   = "HW556:green:lan1",
++                      .gpio                   = 0,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:green:lan2",
++                      .gpio                   = 1,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:dsl",
++                      .gpio                   = 2,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:power",
++                      .gpio                   = 3,
++                      .active_low             = 1,
++                      .default_trigger        = "default-on",
++              },
++              {
++                      .name                   = "HW556:red:message",
++                      .gpio                   = 12,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:lan1",
++                      .gpio                   = 13,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:hspa",
++                      .gpio                   = 15,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:lan2",
++                      .gpio                   = 22,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:green:lan3",
++                      .gpio                   = 23,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:lan3",
++                      .gpio                   = 26,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:green:lan4",
++                      .gpio                   = 27,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:lan4",
++                      .gpio                   = 28,
++                      .active_low             = 1,
++              },
++      },
++
++      .buttons = {
++              {
++                      .desc                   = "help",
++                      .gpio                   = 8,
++                      .active_low             = 1,
++                      .type                   = EV_KEY,
++                      .code                   = KEY_HELP,
++                      .debounce_interval      = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++              },
++              {
++                      .desc                   = "wlan",
++                      .gpio                   = 9,
++                      .active_low             = 1,
++                      .type                   = EV_KEY,
++                      .code                   = KEY_WLAN,
++                      .debounce_interval      = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++              },
++              {
++                      .desc                   = "restart",
++                      .gpio                   = 10,
++                      .active_low             = 1,
++                      .type                   = EV_KEY,
++                      .code                   = KEY_RESTART,
++                      .debounce_interval      = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++              },
++              {
++                      .desc                   = "reset",
++                      .gpio                   = 11,
++                      .active_low             = 1,
++                      .type                   = EV_KEY,
++                      .code                   = KEY_CONFIG,
++                      .debounce_interval      = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++              },
++      },
++};
++static struct board_info __initdata board_HW556_A = {
++      .name                                   = "HW556_A",
++      .expected_cpu_id                        = 0x6358,
++
++      .has_uart0                              = 1,
++      .has_pci                                = 1,
++      .has_ohci0                              = 1,
++      .has_ehci0                              = 1,
++      .num_usbh_ports                         = 2,
++
++      .has_caldata                            = 1,
++      .caldata = {
++              {
++                      .vendor                 = PCI_VENDOR_ID_ATHEROS,
++                      .caldata_offset         = 0xf7e000,
++                      .slot                   = 1,
++                      .endian_check           = 1,
++                      .led_pin                = 2,
++              },
++      },
++
++      .has_enet1                              = 1,
++      .enet1 = {
++              .has_phy                        = 1,
++              .phy_id                         = 0,
++              .force_speed_100                = 1,
++              .force_duplex_full              = 1,
++      },
++
++      .leds = {
++              {
++                      .name                   = "HW556:red:message",
++                      .gpio                   = 0,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:hspa",
++                      .gpio                   = 1,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:dsl",
++                      .gpio                   = 2,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:power",
++                      .gpio                   = 3,
++                      .active_low             = 1,
++                      .default_trigger        = "default-on",
++              },
++              {
++                      .name                   = "HW556:red:all",
++                      .gpio                   = 6,
++                      .active_low             = 1,
++                      .default_trigger        = "default-on",
++              },
++              {
++                      .name                   = "HW556:green:lan1",
++                      .gpio                   = 12,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:lan1",
++                      .gpio                   = 13,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:green:lan2",
++                      .gpio                   = 15,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:lan2",
++                      .gpio                   = 22,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:green:lan3",
++                      .gpio                   = 23,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:lan3",
++                      .gpio                   = 26,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:green:lan4",
++                      .gpio                   = 27,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:lan4",
++                      .gpio                   = 28,
++                      .active_low             = 1,
++              },
++      },
++
++      .buttons = {
++              {
++                      .desc                   = "help",
++                      .gpio                   = 8,
++                      .active_low             = 1,
++                      .type                   = EV_KEY,
++                      .code                   = KEY_HELP,
++                      .debounce_interval      = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++              },
++              {
++                      .desc                   = "wlan",
++                      .gpio                   = 9,
++                      .active_low             = 1,
++                      .type                   = EV_KEY,
++                      .code                   = KEY_WLAN,
++                      .debounce_interval      = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++              },
++              {
++                      .desc                   = "restart",
++                      .gpio                   = 10,
++                      .active_low             = 1,
++                      .type                   = EV_KEY,
++                      .code                   = KEY_RESTART,
++                      .debounce_interval      = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++              },
++              {
++                      .desc                   = "reset",
++                      .gpio                   = 11,
++                      .active_low             = 1,
++                      .type                   = EV_KEY,
++                      .code                   = KEY_CONFIG,
++                      .debounce_interval      = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++              },
++      },
++};
++static struct board_info __initdata board_HW556_B = {
++      .name                                   = "HW556_B",
++      .expected_cpu_id                        = 0x6358,
++
++      .has_uart0                              = 1,
++      .has_pci                                = 1,
++      .has_ohci0                              = 1,
++      .has_ehci0                              = 1,
++      .num_usbh_ports                         = 2,
++
++      .has_caldata                            = 1,
++      .caldata = {
++              {
++                      .vendor                 = PCI_VENDOR_ID_ATHEROS,
++                      .caldata_offset         = 0xefe000,
++                      .slot                   = 1,
++                      .endian_check           = 1,
++                      .led_pin                = 2,
++              },
++      },
++
++      .has_enet1                              = 1,
++      .enet1 = {
++              .has_phy                        = 1,
++              .phy_id                         = 0,
++              .force_speed_100                = 1,
++              .force_duplex_full              = 1,
++      },
++
++      .leds = {
++              {
++                      .name                   = "HW556:red:message",
++                      .gpio                   = 0,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:hspa",
++                      .gpio                   = 1,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:dsl",
++                      .gpio                   = 2,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:power",
++                      .gpio                   = 3,
++                      .active_low             = 1,
++                      .default_trigger        = "default-on",
++              },
++              {
++                      .name                   = "HW556:red:all",
++                      .gpio                   = 6,
++                      .active_low             = 1,
++                      .default_trigger        = "default-on",
++              },
++              {
++                      .name                   = "HW556:green:lan1",
++                      .gpio                   = 12,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:lan1",
++                      .gpio                   = 13,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:green:lan2",
++                      .gpio                   = 15,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:lan2",
++                      .gpio                   = 22,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:green:lan3",
++                      .gpio                   = 23,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:lan3",
++                      .gpio                   = 26,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:green:lan4",
++                      .gpio                   = 27,
++                      .active_low             = 1,
++              },
++              {
++                      .name                   = "HW556:red:lan4",
++                      .gpio                   = 28,
++                      .active_low             = 1,
++              },
++      },
++
++      .buttons = {
++              {
++                      .desc                   = "help",
++                      .gpio                   = 8,
++                      .active_low             = 1,
++                      .type                   = EV_KEY,
++                      .code                   = KEY_HELP,
++                      .debounce_interval      = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++              },
++              {
++                      .desc                   = "wlan",
++                      .gpio                   = 9,
++                      .active_low             = 1,
++                      .type                   = EV_KEY,
++                      .code                   = KEY_WLAN,
++                      .debounce_interval      = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++              },
++              {
++                      .desc                   = "restart",
++                      .gpio                   = 10,
++                      .active_low             = 1,
++                      .type                   = EV_KEY,
++                      .code                   = KEY_RESTART,
++                      .debounce_interval      = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++              },
++              {
++                      .desc                   = "reset",
++                      .gpio                   = 11,
++                      .active_low             = 1,
++                      .type                   = EV_KEY,
++                      .code                   = KEY_CONFIG,
++                      .debounce_interval      = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
++              },
++      },
++};
++
+  /* T-Home Speedport W 303V Typ B */
+ static struct board_info __initdata board_spw303v = {
+       .name                   = "96358-502V",
+@@ -3096,6 +3493,9 @@ static const struct board_info __initcon
+       &board_nb4_fxc_r1,
+       &board_ct6373_1,
+       &board_HW553,
++      &board_HW556_A,
++      &board_HW556_B,
++      &board_HW556_C,
+       &board_spw303v,
+       &board_DVAG3810BN,
+ #endif
+@@ -3155,6 +3555,9 @@ static struct of_device_id const bcm963x
+       { .compatible = "d-link,dsl-2650u", .data = &board_96358vw2, },
+       { .compatible = "d-link,dva-g3810bn/tl", .data = &board_DVAG3810BN, },
+       { .compatible = "huawei,hg553", .data = &board_HW553, },
++      { .compatible = "huawei,hg556a-a", .data = &board_HW556_A, },
++      { .compatible = "huawei,hg556a-b", .data = &board_HW556_B, },
++      { .compatible = "huawei,hg556a-c", .data = &board_HW556_C, },
+       { .compatible = "pirelli,a226g", .data = &board_DWVS0, },
+       { .compatible = "pirelli,a226m", .data = &board_DWVS0, },
+       { .compatible = "pirelli,a226m-fwb", .data = &board_DWVS0, },