From f92b2a956bbd35964dcd77ca34c4f3b55ada32bc Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Sat, 22 Feb 2014 11:16:30 +0000 Subject: [PATCH] brcm63xx: 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 Patchwork: http://patchwork.openwrt.org/patch/4266/ Signed-off-by: Jonas Gorski SVN-Revision: 39671 --- .../patches-3.10/536-board_fast2704.patch | 145 ++++++++++++++++++ .../patches-3.10/550-alice_gate2_leds.patch | 2 +- .../patches-3.10/551-96348gw_a_leds.patch | 2 +- .../553-boards_probe_switch.patch | 10 +- .../554-board_DWVS0_leds_buttons.patch | 2 +- .../patches-3.10/555-board_96318ref.patch | 2 +- .../556-board_96318ref_p300.patch | 2 +- .../patches-3.10/557-board_bcm963269bhr.patch | 4 +- .../801-ssb_export_fallback_sprom.patch | 4 +- 9 files changed, 159 insertions(+), 14 deletions(-) create mode 100644 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 index 000000000000..f3d700a4d62e --- /dev/null +++ b/target/linux/brcm63xx/patches-3.10/536-board_fast2704.patch @@ -0,0 +1,145 @@ +From: Marcin Jurkowski +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 +--- +--- 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, diff --git a/target/linux/brcm63xx/patches-3.10/550-alice_gate2_leds.patch b/target/linux/brcm63xx/patches-3.10/550-alice_gate2_leds.patch index 0d65f3ed3701..b687cb5e393b 100644 --- a/target/linux/brcm63xx/patches-3.10/550-alice_gate2_leds.patch +++ b/target/linux/brcm63xx/patches-3.10/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 -@@ -2094,6 +2094,99 @@ static struct board_info __initdata boar +@@ -2210,6 +2210,99 @@ static struct board_info __initdata boar .has_ohci0 = 1, .has_ehci0 = 1, diff --git a/target/linux/brcm63xx/patches-3.10/551-96348gw_a_leds.patch b/target/linux/brcm63xx/patches-3.10/551-96348gw_a_leds.patch index 2a04ad158317..07fceaaeb804 100644 --- a/target/linux/brcm63xx/patches-3.10/551-96348gw_a_leds.patch +++ b/target/linux/brcm63xx/patches-3.10/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 -@@ -1539,6 +1539,19 @@ static struct board_info __initdata boar +@@ -1655,6 +1655,19 @@ static struct board_info __initdata boar }, .has_ohci0 = 1, diff --git a/target/linux/brcm63xx/patches-3.10/553-boards_probe_switch.patch b/target/linux/brcm63xx/patches-3.10/553-boards_probe_switch.patch index 882b141794d6..e36a38f4d919 100644 --- a/target/linux/brcm63xx/patches-3.10/553-boards_probe_switch.patch +++ b/target/linux/brcm63xx/patches-3.10/553-boards_probe_switch.patch @@ -54,7 +54,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -1545,6 +1557,12 @@ static struct board_info __initdata boar +@@ -1621,6 +1633,12 @@ static struct board_info __initdata boar .use_internal_phy = 1, }, .enet1 = { @@ -67,7 +67,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -1920,6 +1938,8 @@ static struct board_info __initdata boar +@@ -2036,6 +2054,8 @@ static struct board_info __initdata boar }, .enet1 = { @@ -76,7 +76,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -1972,6 +1992,8 @@ static struct board_info __initdata boar +@@ -2088,6 +2108,8 @@ static struct board_info __initdata boar }, .enet1 = { @@ -85,7 +85,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -2112,6 +2134,8 @@ static struct board_info __initdata boar +@@ -2228,6 +2250,8 @@ static struct board_info __initdata boar }, .enet1 = { @@ -94,7 +94,7 @@ .force_speed_100 = 1, .force_duplex_full = 1, }, -@@ -2229,6 +2253,8 @@ static struct board_info __initdata boar +@@ -2345,6 +2369,8 @@ static struct board_info __initdata boar }, .enet1 = { diff --git a/target/linux/brcm63xx/patches-3.10/554-board_DWVS0_leds_buttons.patch b/target/linux/brcm63xx/patches-3.10/554-board_DWVS0_leds_buttons.patch index 0f5c7f3fad45..d7e1f406d04d 100644 --- a/target/linux/brcm63xx/patches-3.10/554-board_DWVS0_leds_buttons.patch +++ b/target/linux/brcm63xx/patches-3.10/554-board_DWVS0_leds_buttons.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -2261,6 +2261,94 @@ static struct board_info __initdata boar +@@ -2377,6 +2377,94 @@ static struct board_info __initdata boar .has_ohci0 = 1, .has_ehci0 = 1, diff --git a/target/linux/brcm63xx/patches-3.10/555-board_96318ref.patch b/target/linux/brcm63xx/patches-3.10/555-board_96318ref.patch index 11cc46b405c5..087d99bbe461 100644 --- a/target/linux/brcm63xx/patches-3.10/555-board_96318ref.patch +++ b/target/linux/brcm63xx/patches-3.10/555-board_96318ref.patch @@ -94,7 +94,7 @@ * known 6328 boards */ #ifdef CONFIG_BCM63XX_CPU_6328 -@@ -4052,6 +4139,9 @@ static const struct board_info __initcon +@@ -4168,6 +4255,9 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_3368 &board_cvg834g, #endif diff --git a/target/linux/brcm63xx/patches-3.10/556-board_96318ref_p300.patch b/target/linux/brcm63xx/patches-3.10/556-board_96318ref_p300.patch index edabea5f1894..e06200fa26ea 100644 --- a/target/linux/brcm63xx/patches-3.10/556-board_96318ref_p300.patch +++ b/target/linux/brcm63xx/patches-3.10/556-board_96318ref_p300.patch @@ -95,7 +95,7 @@ #endif /* -@@ -4141,6 +4229,7 @@ static const struct board_info __initcon +@@ -4257,6 +4345,7 @@ static const struct board_info __initcon #endif #ifdef CONFIG_BCM63XX_CPU_6318 &board_96318ref, diff --git a/target/linux/brcm63xx/patches-3.10/557-board_bcm963269bhr.patch b/target/linux/brcm63xx/patches-3.10/557-board_bcm963269bhr.patch index 8fcd420ff12b..2a0cd81a5e66 100644 --- a/target/linux/brcm63xx/patches-3.10/557-board_bcm963269bhr.patch +++ b/target/linux/brcm63xx/patches-3.10/557-board_bcm963269bhr.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -4221,6 +4221,75 @@ static struct board_info __initdata boar +@@ -4337,6 +4337,75 @@ static struct board_info __initdata boar #endif /* @@ -76,7 +76,7 @@ * all boards */ static const struct board_info __initconst *bcm963xx_boards[] = { -@@ -4303,6 +4372,9 @@ static const struct board_info __initcon +@@ -4420,6 +4489,9 @@ static const struct board_info __initcon &board_96368mvwg, &board_96368mvngr, #endif diff --git a/target/linux/brcm63xx/patches-3.10/801-ssb_export_fallback_sprom.patch b/target/linux/brcm63xx/patches-3.10/801-ssb_export_fallback_sprom.patch index 5d3bc21dedf7..7ed27a6211bc 100644 --- a/target/linux/brcm63xx/patches-3.10/801-ssb_export_fallback_sprom.patch +++ b/target/linux/brcm63xx/patches-3.10/801-ssb_export_fallback_sprom.patch @@ -8,7 +8,7 @@ #include #include #include -@@ -4382,7 +4383,7 @@ static const struct board_info __initcon +@@ -4499,7 +4500,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, -@@ -4402,6 +4403,7 @@ static struct ssb_sprom bcm63xx_sprom = +@@ -4519,6 +4520,7 @@ static struct ssb_sprom bcm63xx_sprom = .boardflags_lo = 0x2848, .boardflags_hi = 0x0000, }; -- 2.30.2