diff --git a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh index 1930e37a25..f78ade0582 100755 --- a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh +++ b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh @@ -144,6 +144,9 @@ brcm63xx_dt_detect() { "Huawei EchoLife HG556a (version C)") board_name="hg556a_c" ;; + "Inteno VG50") + board_name="vg50" + ;; "Inventel Livebox 1") board_name="livebox1" ;; @@ -231,9 +234,6 @@ brcm63xx_legacy_detect() { local board_name case "$1" in - VW6339GU) - board_namge="vg50" - ;; *) board_name="unknown" ;; diff --git a/target/linux/brcm63xx/dts/vg50.dts b/target/linux/brcm63xx/dts/vg50.dts new file mode 100644 index 0000000000..3d1165c638 --- /dev/null +++ b/target/linux/brcm63xx/dts/vg50.dts @@ -0,0 +1,28 @@ +/dts-v1/; + +/include/ "bcm63268.dtsi" + +/ { + model = "Inteno VG50"; + compatible = "inteno,vg50", "brcm,bcm63268"; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio1 0 0>; + linux,code = <0x198>; + }; + + wps { + label = "wps"; + gpios = <&gpio1 2 0>; + linux,code = <0x211>; + }; + }; +}; diff --git a/target/linux/brcm63xx/image/Makefile b/target/linux/brcm63xx/image/Makefile index c71fc0a455..bd0fe0a654 100755 --- a/target/linux/brcm63xx/image/Makefile +++ b/target/linux/brcm63xx/image/Makefile @@ -355,6 +355,8 @@ $(eval $(call ImageDTB,CFEDTB,HG553,HG553,hg553,HW553,6358,--rsa-signature "Echo $(eval $(call ImageDTB,CFEDTB,HG556a_AB,HG556a_A,hg556a-a,HW556,6358,--rsa-signature "EchoLife_HG556a" --image-offset 0x20000 --block-size 0x10000 --tag-version 8)) $(eval $(call ImageDTB,CFEDTB,HG556a_AB,HG556a_B,hg556a-b,HW556,6358,--rsa-signature "EchoLife_HG556a" --image-offset 0x20000 --block-size 0x20000 --tag-version 8)) $(eval $(call ImageDTB,CFEDTB,HG556a_C,HG556a_C,hg556a-c,HW556,6358,--rsa-signature "EchoLife_HG556a" --image-offset 0x20000 --block-size 0x20000 --tag-version 8)) +# Inteno VG50 +$(eval $(call ImageDTB,Dummy,VG50,vg50,vg50,VW6339GU,63268)) # Inventel Livebox 1 $(eval $(call ImageDTB,RedBootDTB,Livebox,livebox,livebox-blue-5g)) # Netgear CVG834G diff --git a/target/linux/brcm63xx/patches-3.18/559-board_vw6339gu.patch b/target/linux/brcm63xx/patches-3.18/559-board_vw6339gu.patch index 2b70a99bdf..51c4b68d2c 100644 --- a/target/linux/brcm63xx/patches-3.18/559-board_vw6339gu.patch +++ b/target/linux/brcm63xx/patches-3.18/559-board_vw6339gu.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1864,6 +1864,108 @@ static struct board_info __initdata boar +@@ -1864,6 +1864,53 @@ static struct board_info __initdata boar }, }, }; @@ -50,66 +50,11 @@ + }, + }, + }, -+ -+ .leds = { -+ { -+ .name = "VW6339GU:green:power", -+ .gpio = 1, -+ .active_low = 1, -+ }, -+ { -+ .name = "VW6339GU:red:power", -+ .gpio = 0, -+ .active_low = 1, -+ }, -+ { -+ .name = "VW6339GU:green:internet", -+ .gpio = 8, -+ .active_low = 1, -+ }, -+ { -+ .name = "VW6339GU:red:internet", -+ .gpio = 2, -+ .active_low = 1, -+ }, -+ { -+ .name = "VW6339GU:green:dsl", -+ .gpio = 3, -+ .active_low = 1, -+ }, -+ { -+ .name = "VW6339GU:green:wps", -+ .gpio = 7, -+ .active_low = 1, -+ }, -+ { -+ .name = "VW6339GU:green:usb", -+ .gpio = 15, -+ .active_low = 1, -+ }, -+ }, -+ -+ .buttons = { -+ { -+ .desc = "reset", -+ .gpio = 32, -+ .type = EV_KEY, -+ .code = KEY_RESTART, -+ .debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL, -+ }, -+ { -+ .desc = "wps", -+ .gpio = 34, -+ .type = EV_KEY, -+ .code = KEY_WPS_BUTTON, -+ .debounce_interval = BCM963XX_KEYS_DEBOUNCE_INTERVAL, -+ }, -+ }, +}; #endif /* CONFIG_BCM63XX_CPU_63268 */ /* -@@ -1950,6 +2052,7 @@ static const struct board_info __initcon +@@ -1950,6 +1997,7 @@ static const struct board_info __initcon #endif #ifdef CONFIG_BCM63XX_CPU_63268 &board_963269bhr, @@ -117,3 +62,11 @@ #endif }; +@@ -2035,6 +2083,7 @@ static struct of_device_id const bcm963x + { .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, }, + #endif + #ifdef CONFIG_BCM63XX_CPU_63268 ++ { .compatible = "inteno,vg50", .data = &board_vw6339gu, }, + #endif + #endif /* CONFIG_OF */ + { }, diff --git a/target/linux/brcm63xx/patches-3.18/560-board_963268gu_p300.patch b/target/linux/brcm63xx/patches-3.18/560-board_963268gu_p300.patch index ccee0a8ac6..487867c931 100644 --- a/target/linux/brcm63xx/patches-3.18/560-board_963268gu_p300.patch +++ b/target/linux/brcm63xx/patches-3.18/560-board_963268gu_p300.patch @@ -67,7 +67,7 @@ static struct board_info __initdata board_963269bhr = { .name = "963269BHR", .expected_cpu_id = 0x63268, -@@ -2051,6 +2111,7 @@ static const struct board_info __initcon +@@ -1996,6 +2056,7 @@ static const struct board_info __initcon &board_96368mvngr, #endif #ifdef CONFIG_BCM63XX_CPU_63268 @@ -75,11 +75,11 @@ &board_963269bhr, &board_vw6339gu, #endif -@@ -2138,6 +2199,7 @@ static struct of_device_id const bcm963x +@@ -2083,6 +2144,7 @@ static struct of_device_id const bcm963x { .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, }, #endif #ifdef CONFIG_BCM63XX_CPU_63268 + { .compatible = "brcm,bcm963268bu_p300", .data = &board_963268bu_p300, }, + { .compatible = "inteno,vg50", .data = &board_vw6339gu, }, #endif #endif /* CONFIG_OF */ - { }, diff --git a/target/linux/brcm63xx/patches-3.18/561-board_WAP-5813n.patch b/target/linux/brcm63xx/patches-3.18/561-board_WAP-5813n.patch index c30467534d..e45da0a86e 100644 --- a/target/linux/brcm63xx/patches-3.18/561-board_WAP-5813n.patch +++ b/target/linux/brcm63xx/patches-3.18/561-board_WAP-5813n.patch @@ -76,7 +76,7 @@ #endif /* CONFIG_BCM63XX_CPU_6368 */ /* -@@ -2109,6 +2170,7 @@ static const struct board_info __initcon +@@ -2054,6 +2115,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6368 &board_96368mvwg, &board_96368mvngr, @@ -84,7 +84,7 @@ #endif #ifdef CONFIG_BCM63XX_CPU_63268 &board_963268bu_p300, -@@ -2197,6 +2259,7 @@ static struct of_device_id const bcm963x +@@ -2142,6 +2204,7 @@ static struct of_device_id const bcm963x #ifdef CONFIG_BCM63XX_CPU_6368 { .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, }, { .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, }, diff --git a/target/linux/brcm63xx/patches-3.18/562-board_VR-3025u.patch b/target/linux/brcm63xx/patches-3.18/562-board_VR-3025u.patch index 9fce17d907..c906494954 100644 --- a/target/linux/brcm63xx/patches-3.18/562-board_VR-3025u.patch +++ b/target/linux/brcm63xx/patches-3.18/562-board_VR-3025u.patch @@ -61,7 +61,7 @@ static struct b53_platform_data WAP5813n_b53_pdata = { .alias = "eth0", }; -@@ -2170,6 +2224,7 @@ static const struct board_info __initcon +@@ -2115,6 +2169,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6368 &board_96368mvwg, &board_96368mvngr, @@ -69,7 +69,7 @@ &board_WAP5813n, #endif #ifdef CONFIG_BCM63XX_CPU_63268 -@@ -2259,6 +2314,7 @@ static struct of_device_id const bcm963x +@@ -2204,6 +2259,7 @@ static struct of_device_id const bcm963x #ifdef CONFIG_BCM63XX_CPU_6368 { .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, }, { .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, }, diff --git a/target/linux/brcm63xx/patches-3.18/563-board_VR-3025un.patch b/target/linux/brcm63xx/patches-3.18/563-board_VR-3025un.patch index 5c27a05d48..bce8e5654b 100644 --- a/target/linux/brcm63xx/patches-3.18/563-board_VR-3025un.patch +++ b/target/linux/brcm63xx/patches-3.18/563-board_VR-3025un.patch @@ -61,7 +61,7 @@ static struct b53_platform_data WAP5813n_b53_pdata = { .alias = "eth0", }; -@@ -2225,6 +2279,7 @@ static const struct board_info __initcon +@@ -2170,6 +2224,7 @@ static const struct board_info __initcon &board_96368mvwg, &board_96368mvngr, &board_VR3025u, @@ -69,7 +69,7 @@ &board_WAP5813n, #endif #ifdef CONFIG_BCM63XX_CPU_63268 -@@ -2315,6 +2370,7 @@ static struct of_device_id const bcm963x +@@ -2260,6 +2315,7 @@ static struct of_device_id const bcm963x { .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, }, { .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, }, { .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, }, diff --git a/target/linux/brcm63xx/patches-3.18/564-board_P870HW-51a_v2.patch b/target/linux/brcm63xx/patches-3.18/564-board_P870HW-51a_v2.patch index d1d8cad296..5ba3ef860b 100644 --- a/target/linux/brcm63xx/patches-3.18/564-board_P870HW-51a_v2.patch +++ b/target/linux/brcm63xx/patches-3.18/564-board_P870HW-51a_v2.patch @@ -50,7 +50,7 @@ static struct board_info __initdata board_VR3025u = { .name = "96368M-1541N", .expected_cpu_id = 0x6368, -@@ -2278,6 +2321,7 @@ static const struct board_info __initcon +@@ -2223,6 +2266,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6368 &board_96368mvwg, &board_96368mvngr, @@ -58,7 +58,7 @@ &board_VR3025u, &board_VR3025un, &board_WAP5813n, -@@ -2372,6 +2416,7 @@ static struct of_device_id const bcm963x +@@ -2317,6 +2361,7 @@ static struct of_device_id const bcm963x { .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, }, { .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, }, { .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, }, diff --git a/target/linux/brcm63xx/patches-3.18/565-board_hw520.patch b/target/linux/brcm63xx/patches-3.18/565-board_hw520.patch index bd67ed4f31..cb4b822c17 100644 --- a/target/linux/brcm63xx/patches-3.18/565-board_hw520.patch +++ b/target/linux/brcm63xx/patches-3.18/565-board_hw520.patch @@ -38,7 +38,7 @@ static struct board_info __initdata board_HW553 = { .name = "HW553", .expected_cpu_id = 0x6358, -@@ -2305,6 +2336,7 @@ static const struct board_info __initcon +@@ -2250,6 +2281,7 @@ static const struct board_info __initcon &board_nb4_ser_r0, &board_nb4_fxc_r1, &board_ct6373_1, @@ -46,7 +46,7 @@ &board_HW553, &board_HW556_A, &board_HW556_B, -@@ -2393,6 +2425,7 @@ static struct of_device_id const bcm963x +@@ -2338,6 +2370,7 @@ static struct of_device_id const bcm963x { .compatible = "d-link,dsl-274xb-c2", .data = &board_dsl_274xb_rev_c, }, { .compatible = "d-link,dsl-2650u", .data = &board_96358vw2, }, { .compatible = "d-link,dva-g3810bn/tl", .data = &board_DVAG3810BN, }, diff --git a/target/linux/brcm63xx/patches-3.18/566-board_A4001N.patch b/target/linux/brcm63xx/patches-3.18/566-board_A4001N.patch index 548c65632a..6d1935f980 100644 --- a/target/linux/brcm63xx/patches-3.18/566-board_A4001N.patch +++ b/target/linux/brcm63xx/patches-3.18/566-board_A4001N.patch @@ -51,7 +51,7 @@ static struct board_info __initdata board_A4001N1 = { .name = "963281T_TEF", .expected_cpu_id = 0x6328, -@@ -2287,6 +2331,7 @@ static const struct board_info __initcon +@@ -2232,6 +2276,7 @@ static const struct board_info __initcon &board_AR5381u, &board_AR5387un, &board_963281TAN, @@ -59,7 +59,7 @@ &board_A4001N1, &board_dsl_274xb_f1, &board_FAST2704V2, -@@ -2371,6 +2416,7 @@ static struct of_device_id const bcm963x +@@ -2316,6 +2361,7 @@ static struct of_device_id const bcm963x { .compatible = "netgear,cvg834g", .data = &board_cvg834g, }, #endif #ifdef CONFIG_BCM63XX_CPU_6328 diff --git a/target/linux/brcm63xx/patches-3.18/567-board_dsl-2751b_e1.patch b/target/linux/brcm63xx/patches-3.18/567-board_dsl-2751b_e1.patch index 72be18cdb2..8dbd57f2ad 100644 --- a/target/linux/brcm63xx/patches-3.18/567-board_dsl-2751b_e1.patch +++ b/target/linux/brcm63xx/patches-3.18/567-board_dsl-2751b_e1.patch @@ -142,7 +142,7 @@ #endif /* CONFIG_BCM63XX_CPU_6318 */ /* -@@ -2325,6 +2460,7 @@ static const struct board_info __initcon +@@ -2270,6 +2405,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6318 &board_96318ref, &board_96318ref_p300, diff --git a/target/linux/brcm63xx/patches-3.18/568-board_DGND3700v1_3800B.patch b/target/linux/brcm63xx/patches-3.18/568-board_DGND3700v1_3800B.patch index 3b9551d03e..c8fb206516 100644 --- a/target/linux/brcm63xx/patches-3.18/568-board_DGND3700v1_3800B.patch +++ b/target/linux/brcm63xx/patches-3.18/568-board_DGND3700v1_3800B.patch @@ -49,7 +49,7 @@ static struct sprom_fixup __initdata vr3025u_fixups[] = { { .offset = 97, .value = 0xfeb3 }, { .offset = 98, .value = 0x1618 }, -@@ -2534,6 +2576,7 @@ static const struct board_info __initcon +@@ -2479,6 +2521,7 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6368 &board_96368mvwg, &board_96368mvngr, @@ -57,7 +57,7 @@ &board_P870HW51A_V2, &board_VR3025u, &board_VR3025un, -@@ -2631,6 +2674,7 @@ static struct of_device_id const bcm963x +@@ -2576,6 +2619,7 @@ static struct of_device_id const bcm963x { .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, }, { .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, }, { .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, }, diff --git a/target/linux/brcm63xx/patches-3.18/569-board_homehub2a.patch b/target/linux/brcm63xx/patches-3.18/569-board_homehub2a.patch index d9b4a4f420..a24e6a0570 100644 --- a/target/linux/brcm63xx/patches-3.18/569-board_homehub2a.patch +++ b/target/linux/brcm63xx/patches-3.18/569-board_homehub2a.patch @@ -33,7 +33,7 @@ static struct board_info __initdata board_HW520 = { .name = "HW6358GW_B", .expected_cpu_id = 0x6358, -@@ -2559,6 +2585,7 @@ static const struct board_info __initcon +@@ -2504,6 +2530,7 @@ static const struct board_info __initcon &board_nb4_ser_r0, &board_nb4_fxc_r1, &board_ct6373_1, @@ -41,7 +41,7 @@ &board_HW520, &board_HW553, &board_HW556_A, -@@ -2663,6 +2690,7 @@ static struct of_device_id const bcm963x +@@ -2608,6 +2635,7 @@ static struct of_device_id const bcm963x { .compatible = "sfr,nb4-fxc-r1", .data = &board_nb4_fxc_r1, }, { .compatible = "t-com,spw303v", .data = &board_spw303v, }, { .compatible = "telsey,cpva642", .data = &board_CPVA642, }, diff --git a/target/linux/brcm63xx/profiles/inteno.mk b/target/linux/brcm63xx/profiles/inteno.mk new file mode 100644 index 0000000000..a8043c9d6a --- /dev/null +++ b/target/linux/brcm63xx/profiles/inteno.mk @@ -0,0 +1,15 @@ +# +# Copyright (C) 2014 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/VG50 + NAME:=Inteno VG50 Multi-WAN CPE + PACKAGES:= kmod-usb-ohci kmod-usb2 +endef +define Profile/VG50/Description + Package set optimized for the Inteno VG50 Multi-WAN CPE. +endef +$(eval $(call Profile,VG50))