diff options
14 files changed, 255 insertions, 26 deletions
diff --git a/target/linux/bcm63xx/base-files/etc/board.d/01_leds b/target/linux/bcm63xx/base-files/etc/board.d/01_leds index 5a2a933b0c..299bb117e9 100755 --- a/target/linux/bcm63xx/base-files/etc/board.d/01_leds +++ b/target/linux/bcm63xx/base-files/etc/board.d/01_leds @@ -94,6 +94,10 @@ sercomm,h500-s-lowi|\ sercomm,h500-s-vfes) ucidef_set_led_netdev "wan" "WAN" "green:internet" "eth0.2" ;; +technicolor,tg582n) + ucidef_set_led_netdev "wlan0" "WIFI" "green:wifi" "wlan0" + ucidef_set_led_usbdev "usb" "USB" "red:power" "1-1" + ;; technicolor,tg582n-telecom-italia) ucidef_set_led_netdev "wlan0" "WIFI" "green:wifi" "wlan0" ucidef_set_led_usbdev "usb1" "USB1" "green:service" "1-1" diff --git a/target/linux/bcm63xx/base-files/etc/board.d/02_network b/target/linux/bcm63xx/base-files/etc/board.d/02_network index 9c9047b2fb..700439ec36 100755 --- a/target/linux/bcm63xx/base-files/etc/board.d/02_network +++ b/target/linux/bcm63xx/base-files/etc/board.d/02_network @@ -39,6 +39,7 @@ huawei,echolife-hg655b|\ nucom,r5010un-v2|\ sagem,fast-2504n|\ sagem,fast-2704-v2|\ +technicolor,tg582n|\ technicolor,tg582n-telecom-italia|\ zyxel,p870hw-51a-v2) ucidef_add_switch "switch0" \ diff --git a/target/linux/bcm63xx/base-files/etc/uci-defaults/09_fix_crc b/target/linux/bcm63xx/base-files/etc/uci-defaults/09_fix_crc index 9b94a23eaf..a176eb1735 100644 --- a/target/linux/bcm63xx/base-files/etc/uci-defaults/09_fix_crc +++ b/target/linux/bcm63xx/base-files/etc/uci-defaults/09_fix_crc @@ -34,6 +34,7 @@ case "$(board_name)" in nucom,r5010un-v2|\ observa,vh4032n|\ t-com,speedport-w-303v|\ + technicolor,tg582n|\ technicolor,tg582n-telecom-italia|\ telsey,cpva502plus|\ telsey,cpva642|\ diff --git a/target/linux/bcm63xx/dts/bcm6328-technicolor-tg582n.dts b/target/linux/bcm63xx/dts/bcm6328-technicolor-tg582n.dts new file mode 100644 index 0000000000..6ec20048cd --- /dev/null +++ b/target/linux/bcm63xx/dts/bcm6328-technicolor-tg582n.dts @@ -0,0 +1,166 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "bcm6328.dtsi" + +#include <dt-bindings/input/input.h> + +/ { + model = "Technicolor TG582n"; + compatible = "technicolor,tg582n", "brcm,bcm6328"; + + aliases { + led-boot = &led_power_green; + led-failsafe = &led_power_green; + led-running = &led_power_green; + led-upgrade = &led_power_green; + }; + + chosen { + bootargs = "rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200"; + stdout-path = "serial0:115200n8"; + }; + + keys { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + + wifi { + label = "wifi"; + gpios = <&pinctrl 15 1>; + linux,code = <KEY_WLAN>; + debounce-interval = <60>; + }; + + reset { + label = "reset"; + gpios = <&pinctrl 23 1>; + linux,code = <KEY_RESTART>; + debounce-interval = <60>; + }; + + wps { + label = "wps"; + gpios = <&pinctrl 24 1>; + linux,code = <KEY_WPS_BUTTON>; + debounce-interval = <60>; + }; + }; +}; + +&leds { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_leds>; + + led@1 { + reg = <1>; + active-low; + label = "green:internet"; + }; + + led@2 { + reg = <2>; + active-low; + label = "red:wifi"; + }; + + led@3 { + reg = <3>; + active-low; + label = "green:wifi"; + }; + + led_power_green: led@4 { + reg = <4>; + active-low; + label = "green:power"; + default-state = "on"; + }; + + led@5 { + reg = <5>; + active-low; + label = "green:ethernet"; + }; + + led@7 { + reg = <7>; + active-low; + label = "red:internet"; + }; + + led@8 { + reg = <8>; + active-low; + label = "red:power"; + }; + + led@9 { + reg = <9>; + active-low; + label = "green:wps"; + }; + + led@10 { + reg = <10>; + active-low; + label = "red:wps"; + }; + + led@11 { + reg = <11>; + active-low; + label = "green:broadband"; + }; +}; + +&hsspi { + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor"; + spi-max-frequency = <16666667>; + spi-tx-bus-width = <2>; + spi-rx-bus-width = <2>; + reg = <0>; + + #address-cells = <1>; + #size-cells = <1>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + reg = <0x000000 0x010000>; + label = "cfe"; + read-only; + }; + + partition@10000 { + reg = <0x010000 0xff0000>; + label = "linux"; + compatible = "brcm,bcm963xx-imagetag"; + }; + }; + }; +}; + +&pinctrl { + pinctrl_leds: leds { + function = "led"; + pins = "gpio1", "gpio2", + "gpio3", "gpio4", + "gpio5", "gpio7", + "gpio8", "gpio9", + "gpio10", "gpio11"; + }; +}; + +&uart0 { + status = "okay"; +}; diff --git a/target/linux/bcm63xx/image/bcm63xx.mk b/target/linux/bcm63xx/image/bcm63xx.mk index 81cf98b44b..773f098dea 100644 --- a/target/linux/bcm63xx/image/bcm63xx.mk +++ b/target/linux/bcm63xx/image/bcm63xx.mk @@ -1099,6 +1099,18 @@ endef TARGET_DEVICES += t-com_speedport-w-500v ### Technicolor ### +define Device/technicolor_tg582n + $(Device/bcm63xx) + DEVICE_VENDOR := Technicolor + DEVICE_MODEL := TG582n + IMAGES += sysupgrade.bin + CFE_BOARD_ID := DANT-1 + CHIP_ID := 6328 + FLASH_MB := 16 + DEVICE_PACKAGES := $(USB2_PACKAGES) $(B43_PACKAGES) +endef +TARGET_DEVICES += technicolor_tg582n + define Device/technicolor_tg582n-telecom-italia $(Device/bcm63xx) DEVICE_VENDOR := Technicolor diff --git a/target/linux/bcm63xx/patches-5.4/512-board_bcm6328.patch b/target/linux/bcm63xx/patches-5.4/512-board_bcm6328.patch index ebe1ac4d94..ae0c538660 100644 --- a/target/linux/bcm63xx/patches-5.4/512-board_bcm6328.patch +++ b/target/linux/bcm63xx/patches-5.4/512-board_bcm6328.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -348,6 +348,568 @@ static struct board_info __initdata boar +@@ -348,6 +348,611 @@ static struct board_info __initdata boar }, }, }; @@ -524,6 +524,49 @@ + }, +}; + ++static struct board_info __initdata board_TG582N = { ++ .name = "DANT-1", ++ .expected_cpu_id = 0x6328, ++ ++ .has_pci = 1, ++ .has_ohci0 = 1, ++ .has_ehci0 = 1, ++ .num_usbh_ports = 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", ++ }, ++ }, ++ }, ++ ++ .use_fallback_sprom = 1, ++ .fallback_sprom = { ++ .type = SPROM_BCM43225, ++ .pci_bus = 1, ++ .pci_dev = 0, ++ }, ++}; ++ +static struct board_info __initdata board_TG582N_TELECOM_ITALIA = { + .name = "DANT-V", + .expected_cpu_id = 0x6328, @@ -569,7 +612,7 @@ #endif /* CONFIG_BCM63XX_CPU_6328 */ /* -@@ -703,6 +1265,18 @@ static const struct board_info __initcon +@@ -703,6 +1308,19 @@ static const struct board_info __initcon #endif /* CONFIG_BCM63XX_CPU_6318 */ #ifdef CONFIG_BCM63XX_CPU_6328 &board_96328avng, @@ -583,12 +626,13 @@ + &board_FAST2704V2, + &board_PDG_A4001N_A_000_1A1_AX, + &board_PDG_A4101N_A_000_1A1_AE, ++ &board_TG582N, + &board_TG582N_TELECOM_ITALIA, + &board_R5010UNV2, #endif /* CONFIG_BCM63XX_CPU_6328 */ #ifdef CONFIG_BCM63XX_CPU_6338 &board_96338gw, -@@ -742,7 +1316,21 @@ static struct of_device_id const bcm963x +@@ -742,7 +1360,22 @@ static struct of_device_id const bcm963x { .compatible = "sagem,fast-2704n", .data = &board_FAST2704N, }, #endif /* CONFIG_BCM63XX_CPU_6318 */ #ifdef CONFIG_BCM63XX_CPU_6328 @@ -606,6 +650,7 @@ + { .compatible = "sagem,fast-2704-v2", .data = &board_FAST2704V2, }, + { .compatible = "sercomm,ad1018", .data = &board_AD1018, }, + { .compatible = "sercomm,ad1018-nor", .data = &board_AD1018, }, ++ { .compatible = "technicolor,tg582n", .data = &board_TG582N, }, + { .compatible = "technicolor,tg582n-telecom-italia", .data = &board_TG582N_TELECOM_ITALIA, }, #endif /* CONFIG_BCM63XX_CPU_6328 */ #ifdef CONFIG_BCM63XX_CPU_6338 diff --git a/target/linux/bcm63xx/patches-5.4/513-board-bcm6338.patch b/target/linux/bcm63xx/patches-5.4/513-board-bcm6338.patch index 1b3110a2ae..9319f974ac 100644 --- a/target/linux/bcm63xx/patches-5.4/513-board-bcm6338.patch +++ b/target/linux/bcm63xx/patches-5.4/513-board-bcm6338.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -943,6 +943,32 @@ static struct board_info __initdata boar +@@ -986,6 +986,32 @@ static struct board_info __initdata boar .force_duplex_full = 1, }, }; @@ -33,7 +33,7 @@ #endif /* CONFIG_BCM63XX_CPU_6338 */ /* -@@ -1281,6 +1307,8 @@ static const struct board_info __initcon +@@ -1325,6 +1351,8 @@ static const struct board_info __initcon #ifdef CONFIG_BCM63XX_CPU_6338 &board_96338gw, &board_96338w, @@ -42,7 +42,7 @@ #endif /* CONFIG_BCM63XX_CPU_6338 */ #ifdef CONFIG_BCM63XX_CPU_6345 &board_96345gw2, -@@ -1335,6 +1363,8 @@ static struct of_device_id const bcm963x +@@ -1380,6 +1408,8 @@ static struct of_device_id const bcm963x #ifdef CONFIG_BCM63XX_CPU_6338 { .compatible = "brcm,bcm96338gw", .data = &board_96338gw, }, { .compatible = "brcm,bcm96338w", .data = &board_96338w, }, diff --git a/target/linux/bcm63xx/patches-5.4/514-board_bcm6345.patch b/target/linux/bcm63xx/patches-5.4/514-board_bcm6345.patch index e037b321ac..3b1f2842b5 100644 --- a/target/linux/bcm63xx/patches-5.4/514-board_bcm6345.patch +++ b/target/linux/bcm63xx/patches-5.4/514-board_bcm6345.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -979,6 +979,19 @@ static struct board_info __initdata boar +@@ -1022,6 +1022,19 @@ static struct board_info __initdata boar .name = "96345GW2", .expected_cpu_id = 0x6345, }; @@ -20,7 +20,7 @@ #endif /* CONFIG_BCM63XX_CPU_6345 */ /* -@@ -1312,6 +1325,7 @@ static const struct board_info __initcon +@@ -1356,6 +1369,7 @@ static const struct board_info __initcon #endif /* CONFIG_BCM63XX_CPU_6338 */ #ifdef CONFIG_BCM63XX_CPU_6345 &board_96345gw2, @@ -28,7 +28,7 @@ #endif /* CONFIG_BCM63XX_CPU_6345 */ #ifdef CONFIG_BCM63XX_CPU_6348 &board_96348r, -@@ -1368,6 +1382,8 @@ static struct of_device_id const bcm963x +@@ -1413,6 +1427,8 @@ static struct of_device_id const bcm963x #endif /* CONFIG_BCM63XX_CPU_6338 */ #ifdef CONFIG_BCM63XX_CPU_6345 { .compatible = "brcm,bcm96345gw2", .data = &board_96345gw2, }, diff --git a/target/linux/bcm63xx/patches-5.4/515-board-bcm6348.patch b/target/linux/bcm63xx/patches-5.4/515-board-bcm6348.patch index c4fe0da97b..eb3eb26dd0 100644 --- a/target/linux/bcm63xx/patches-5.4/515-board-bcm6348.patch +++ b/target/linux/bcm63xx/patches-5.4/515-board-bcm6348.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1178,6 +1178,275 @@ static struct board_info __initdata boar +@@ -1221,6 +1221,275 @@ static struct board_info __initdata boar .has_ohci0 = 1, }; @@ -276,7 +276,7 @@ #endif /* CONFIG_BCM63XX_CPU_6348 */ /* -@@ -1336,6 +1605,19 @@ static const struct board_info __initcon +@@ -1380,6 +1649,19 @@ static const struct board_info __initcon &board_DV201AMR, &board_96348gw_a, &board_rta1025w_16, @@ -296,7 +296,7 @@ #endif /* CONFIG_BCM63XX_CPU_6348 */ #ifdef CONFIG_BCM63XX_CPU_6358 &board_96358vw, -@@ -1386,15 +1668,29 @@ static struct of_device_id const bcm963x +@@ -1431,15 +1713,29 @@ static struct of_device_id const bcm963x { .compatible = "dynalink,rta770w", .data = &board_rta770w, }, #endif /* CONFIG_BCM63XX_CPU_6345 */ #ifdef CONFIG_BCM63XX_CPU_6348 diff --git a/target/linux/bcm63xx/patches-5.4/516-board-bcm6358.patch b/target/linux/bcm63xx/patches-5.4/516-board-bcm6358.patch index 4e33123f5a..6af94bdbe0 100644 --- a/target/linux/bcm63xx/patches-5.4/516-board-bcm6358.patch +++ b/target/linux/bcm63xx/patches-5.4/516-board-bcm6358.patch @@ -8,7 +8,7 @@ #include <asm/addrspace.h> #include <bcm63xx_board.h> #include <bcm63xx_cpu.h> -@@ -1531,6 +1532,88 @@ static struct board_info __initdata boar +@@ -1574,6 +1575,88 @@ static struct board_info __initdata boar .has_ehci0 = 1, }; @@ -97,7 +97,7 @@ static struct board_info __initdata board_DWVS0 = { .name = "DWV-S0", .expected_cpu_id = 0x6358, -@@ -1555,6 +1638,238 @@ static struct board_info __initdata boar +@@ -1598,6 +1681,238 @@ static struct board_info __initdata boar .has_ohci0 = 1, .has_ehci0 = 1, }; @@ -336,7 +336,7 @@ #endif /* CONFIG_BCM63XX_CPU_6358 */ /* -@@ -1623,7 +1938,20 @@ static const struct board_info __initcon +@@ -1667,7 +1982,20 @@ static const struct board_info __initcon &board_96358vw, &board_96358vw2, &board_AGPFS0, @@ -357,7 +357,7 @@ #endif /* CONFIG_BCM63XX_CPU_6358 */ }; -@@ -1698,11 +2026,24 @@ static struct of_device_id const bcm963x +@@ -1743,11 +2071,24 @@ static struct of_device_id const bcm963x { .compatible = "alcatel,rg100a", .data = &board_96358vw2, }, { .compatible = "brcm,bcm96358vw", .data = &board_96358vw, }, { .compatible = "brcm,bcm96358vw2", .data = &board_96358vw2, }, diff --git a/target/linux/bcm63xx/patches-5.4/517-board_bcm6362.patch b/target/linux/bcm63xx/patches-5.4/517-board_bcm6362.patch index 18f571c061..c917914dd1 100644 --- a/target/linux/bcm63xx/patches-5.4/517-board_bcm6362.patch +++ b/target/linux/bcm63xx/patches-5.4/517-board_bcm6362.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -1872,6 +1872,117 @@ static struct board_info __initdata boar +@@ -1915,6 +1915,117 @@ static struct board_info __initdata boar }; #endif /* CONFIG_BCM63XX_CPU_6358 */ @@ -118,7 +118,7 @@ /* * all boards */ -@@ -1953,6 +2064,12 @@ static const struct board_info __initcon +@@ -1997,6 +2108,12 @@ static const struct board_info __initcon &board_nb4_fxc_r1, &board_spw303v, #endif /* CONFIG_BCM63XX_CPU_6358 */ @@ -131,7 +131,7 @@ }; static struct of_device_id const bcm963xx_boards_dt[] = { -@@ -2046,6 +2163,10 @@ static struct of_device_id const bcm963x +@@ -2091,6 +2208,10 @@ static struct of_device_id const bcm963x { .compatible = "telsey,cpva642", .data = &board_CPVA642, }, #endif /* CONFIG_BCM63XX_CPU_6358 */ #ifdef CONFIG_BCM63XX_CPU_6362 diff --git a/target/linux/bcm63xx/patches-5.4/518-board_bcm6368.patch b/target/linux/bcm63xx/patches-5.4/518-board_bcm6368.patch index 181c8fe466..31d724ca24 100644 --- a/target/linux/bcm63xx/patches-5.4/518-board_bcm6368.patch +++ b/target/linux/bcm63xx/patches-5.4/518-board_bcm6368.patch @@ -9,7 +9,7 @@ #include <asm/addrspace.h> #include <bcm63xx_board.h> #include <bcm63xx_cpu.h> -@@ -1984,6 +1986,648 @@ static struct board_info __initdata boar +@@ -2027,6 +2029,648 @@ static struct board_info __initdata boar #endif /* CONFIG_BCM63XX_CPU_6362 */ /* @@ -658,7 +658,7 @@ * all boards */ static const struct board_info __initconst *bcm963xx_boards[] = { -@@ -2070,6 +2714,22 @@ static const struct board_info __initcon +@@ -2114,6 +2758,22 @@ static const struct board_info __initcon &board_hg253s_v2, &board_nb6, #endif /* CONFIG_BCM63XX_CPU_6362 */ @@ -681,7 +681,7 @@ }; static struct of_device_id const bcm963xx_boards_dt[] = { -@@ -2169,6 +2829,20 @@ static struct of_device_id const bcm963x +@@ -2214,6 +2874,20 @@ static struct of_device_id const bcm963x { .compatible = "sfr,neufbox-6-sercomm-r0", .data = &board_nb6, }, #endif /* CONFIG_BCM63XX_CPU_6362 */ #ifdef CONFIG_BCM63XX_CPU_6368 diff --git a/target/linux/bcm63xx/patches-5.4/519-board_bcm63268.patch b/target/linux/bcm63xx/patches-5.4/519-board_bcm63268.patch index 5737bee24d..20fbf5e68e 100644 --- a/target/linux/bcm63xx/patches-5.4/519-board_bcm63268.patch +++ b/target/linux/bcm63xx/patches-5.4/519-board_bcm63268.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -2628,6 +2628,273 @@ static struct board_info __initdata boar +@@ -2671,6 +2671,273 @@ static struct board_info __initdata boar #endif /* CONFIG_BCM63XX_CPU_6368 */ /* @@ -274,7 +274,7 @@ * all boards */ static const struct board_info __initconst *bcm963xx_boards[] = { -@@ -2730,6 +2997,15 @@ static const struct board_info __initcon +@@ -2774,6 +3041,15 @@ static const struct board_info __initcon &board_VR3026e, &board_WAP5813n, #endif /* CONFIG_BCM63XX_CPU_6368 */ @@ -290,7 +290,7 @@ }; static struct of_device_id const bcm963xx_boards_dt[] = { -@@ -2845,6 +3121,14 @@ static struct of_device_id const bcm963x +@@ -2890,6 +3166,14 @@ static struct of_device_id const bcm963x { .compatible = "zyxel,p870hw-51a-v2", .data = &board_P870HW51A_V2, }, #endif /* CONFIG_BCM63XX_CPU_6368 */ #ifdef CONFIG_BCM63XX_CPU_63268 diff --git a/target/linux/bcm63xx/patches-5.4/531-board_bcm6348-bt-voyager-2500v-bb.patch b/target/linux/bcm63xx/patches-5.4/531-board_bcm6348-bt-voyager-2500v-bb.patch index ba47e209ac..23fefee97a 100644 --- a/target/linux/bcm63xx/patches-5.4/531-board_bcm6348-bt-voyager-2500v-bb.patch +++ b/target/linux/bcm63xx/patches-5.4/531-board_bcm6348-bt-voyager-2500v-bb.patch @@ -1,6 +1,6 @@ --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c -@@ -3157,6 +3157,22 @@ void __init board_bcm963xx_init(void) +@@ -3202,6 +3202,22 @@ void __init board_bcm963xx_init(void) val &= MPI_CSBASE_BASE_MASK; } boot_addr = (u8 *)KSEG1ADDR(val); |