openwrt/target/linux/brcm63xx/patches-3.14/567-board_dsl-2751b_e1.patch
Jonas Gorski 52b0935efe brcm63xx: use dtb board detection for HW556
This requires individual images for each board version for now.
Linux partition was shrunk to ensure writing thewrong image won't
erase wifi calibration data.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 42126
2014-08-11 11:37:14 +00:00

153 lines
3.2 KiB
Diff

--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -264,6 +264,141 @@ static struct board_info __initdata boar
},
},
};
+
+static struct sprom_fixup __initdata dsl2751b_e1_fixups[] = {
+ { .offset = 96, .value = 0x2046 },
+ { .offset = 97, .value = 0xfe9d },
+ { .offset = 98, .value = 0x1854 },
+ { .offset = 99, .value = 0xfa59 },
+ { .offset = 112, .value = 0x2046 },
+ { .offset = 113, .value = 0xfe79 },
+ { .offset = 114, .value = 0x17f5 },
+ { .offset = 115, .value = 0xfa47 },
+ { .offset = 161, .value = 0x2222 },
+ { .offset = 162, .value = 0x2222 },
+ { .offset = 169, .value = 0x2222 },
+ { .offset = 170, .value = 0x2222 },
+ { .offset = 171, .value = 0x5555 },
+ { .offset = 172, .value = 0x5555 },
+ { .offset = 173, .value = 0x4444 },
+ { .offset = 174, .value = 0x4444 },
+ { .offset = 175, .value = 0x5555 },
+ { .offset = 176, .value = 0x5555 },
+};
+
+static struct board_info __initdata board_dsl_2751b_d1 = {
+ .name = "AW5200B",
+ .expected_cpu_id = 0x6318,
+
+ .has_uart0 = 1,
+ .has_pci = 1,
+ .use_fallback_sprom = 1,
+
+ .has_enetsw = 1,
+
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+ .num_usbh_ports = 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 = "dsl-275xb:green:power",
+ .gpio = 3,
+ .active_low = 1,
+ .default_trigger = "default-on",
+ },
+ {
+ .name = "dsl-275xb:green:inet",
+ .gpio = 8,
+ .active_low = 1,
+ },
+ {
+ .name = "dsl-275xb:red:inet-fail",
+ .gpio = 9,
+ .active_low = 1,
+ },
+ {
+ .name = "dsl-275xb:red:post-failed",
+ .gpio = 11,
+ .active_low = 1,
+ },
+ {
+ .name = "dsl-275xb:wps:blue",
+ .gpio = 16,
+ .active_low = 1,
+ },
+ {
+ .name = "dsl-275xb:green:dsl",
+ .gpio = 17,
+ .active_low = 1,
+ },
+ {
+ .name = "dsl-275xb:green:usb",
+ .gpio = 49, /* FIXME: does not work! */
+ .active_low = 1,
+ },
+ },
+
+ .buttons = {
+ {
+ .desc = "wlan",
+ .gpio = 2,
+ .active_low = 1,
+ .type = EV_KEY,
+ .code = KEY_WLAN,
+ .debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL,
+ },
+ {
+ .desc = "wps",
+ .gpio = 33,
+ .active_low = 1,
+ .type = EV_KEY,
+ .code = KEY_WPS_BUTTON,
+ .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,
+ },
+ },
+
+ .fallback_sprom = {
+ .type = SPROM_BCM43217,
+ .pci_bus = 1,
+ .pci_dev = 0,
+ .board_fixups = dsl2751b_e1_fixups,
+ .num_board_fixups = ARRAY_SIZE(dsl2751b_e1_fixups),
+ },
+};
#endif /* CONFIG_BCM63XX_CPU_6318 */
/*
@@ -5453,6 +5588,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6318
&board_96318ref,
&board_96318ref_p300,
+ &board_dsl_2751b_d1,
#endif
#ifdef CONFIG_BCM63XX_CPU_6328
&board_96328avng,