From daee6b466146fc20505adb2ef9f4be831f96d972 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Tue, 19 May 2020 10:21:46 +0200 Subject: [PATCH] bcm63xx: add Comtrend VG-8050 support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BCM63169 with 128M RAM, 128M NAND and BCM53125 switch. Switch is connected by HSSPI to CS5. More info: https://openwrt.org/toh/comtrend/vg8050 Signed-off-by: Álvaro Fernández Rojas --- .../bcm63xx/base-files/etc/board.d/02_network | 4 + .../base-files/lib/upgrade/platform.sh | 2 + .../bcm63xx/dts/bcm63169-comtrend-vg-8050.dts | 198 ++++++++++++++++++ target/linux/bcm63xx/image/bcm63xx_nand.mk | 17 ++ .../patches-5.4/601-board-VG-8050.patch | 48 +++++ 5 files changed, 269 insertions(+) create mode 100644 target/linux/bcm63xx/dts/bcm63169-comtrend-vg-8050.dts create mode 100644 target/linux/bcm63xx/patches-5.4/601-board-VG-8050.patch 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 928aff0498..d0c15a9f98 100755 --- a/target/linux/bcm63xx/base-files/etc/board.d/02_network +++ b/target/linux/bcm63xx/base-files/etc/board.d/02_network @@ -100,6 +100,10 @@ sagem,fast-2704n) ucidef_add_switch "switch0" \ "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "8t@eth0" ;; +comtrend,vg-8050) + ucidef_add_switch "switch0" \ + "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "8t@eth0" + ;; comtrend,vr-3032u) ucidef_add_switch "switch0" \ "0:lan:2" "1:lan:3" "2:lan:4" "3:lan:1" "8t@eth0" diff --git a/target/linux/bcm63xx/base-files/lib/upgrade/platform.sh b/target/linux/bcm63xx/base-files/lib/upgrade/platform.sh index 202f55535a..e92d025de7 100644 --- a/target/linux/bcm63xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/bcm63xx/base-files/lib/upgrade/platform.sh @@ -5,6 +5,7 @@ platform_check_image() { [ "$#" -gt 1 ] && return 1 case "$(board_name)" in + comtrend,vg-8050|\ comtrend,vr-3032u|\ netgear,dgnd3700-v2) # NAND sysupgrade @@ -62,6 +63,7 @@ cfe_jffs2_upgrade_tar() { platform_do_upgrade() { case "$(board_name)" in + comtrend,vg-8050|\ comtrend,vr-3032u|\ netgear,dgnd3700-v2) REQUIRE_IMAGE_METADATA=1 diff --git a/target/linux/bcm63xx/dts/bcm63169-comtrend-vg-8050.dts b/target/linux/bcm63xx/dts/bcm63169-comtrend-vg-8050.dts new file mode 100644 index 0000000000..4f54e9c842 --- /dev/null +++ b/target/linux/bcm63xx/dts/bcm63169-comtrend-vg-8050.dts @@ -0,0 +1,198 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +/dts-v1/; + +#include "bcm63268.dtsi" + +#include + +/ { + model = "Comtrend VG-8050"; + compatible = "comtrend,vg-8050", "brcm,bcm63268"; + + 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,ubifs noinitrd console=ttyS0,115200"; + stdout-path = "serial0:115200n8"; + }; + + keys { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + + reset { + label = "reset"; + gpios = <&pinctrl 33 1>; + linux,code = ; + debounce-interval = <60>; + }; + + wps { + label = "wps"; + gpios = <&pinctrl 34 1>; + linux,code = ; + debounce-interval = <60>; + }; + }; +}; + +&leds { + status = "ok"; + brcm,serial-leds; + brcm,serial-dat-low; + brcm,serial-shift-inv; + + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_serial_led>; + + led@2 { + reg = <2>; + active-low; + label = "vg-8050:red:internet"; + }; + + led@3 { + reg = <3>; + active-low; + label = "vg-8050:red:power"; + }; + + led_power_green: led@6 { + reg = <6>; + active-low; + label = "vg-8050:green:power"; + default-state = "on"; + }; + + led@7 { + reg = <7>; + active-low; + label = "vg-8050:green:wps"; + }; + + led@8 { + reg = <8>; + active-low; + label = "vg-8050:green:internet"; + }; + + led@10 { + reg = <10>; + active-low; + label = "vg-8050:green:voip"; + }; + + led@12 { + reg = <12>; + active-low; + label = "vg-8050:red:voip"; + }; + + led@14 { + reg = <14>; + active-low; + label = "vg-8050:red:wps"; + }; +}; + +&hsspi { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_hsspi_cs5>; + + switch@0 { + compatible = "brcm,bcm53125"; + reg = <5>; + spi-max-frequency = <781000>; + spi-cpha; + spi-cpol; + + lede,alias = "eth0"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + lan@0 { + reg = <0>; + label = "lan4"; + }; + + lan@1 { + reg = <1>; + label = "lan3"; + }; + + lan@2 { + reg = <2>; + label = "lan2"; + }; + + lan@3 { + reg = <3>; + label = "lan1"; + }; + + wan@4 { + reg = <4>; + label = "wan"; + }; + + cpu@8 { + reg = <8>; + label = "cpu"; + + fixed-link { + speed = <1000>; + full-duplex; + asym-pause; + pause; + }; + }; + }; + }; +}; + +&nflash { + status = "okay"; + + nandcs@0 { + compatible = "brcm,nandcs"; + #size-cells = <1>; + #address-cells = <1>; + reg = <0>; + nand-ecc-step-size = <512>; + nand-ecc-strength = <15>; + nand-on-flash-bbt; + brcm,nand-oob-sector-size = <64>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + cferom@0 { + label = "cferom"; + reg = <0x0000000 0x0020000>; + read-only; + }; + + wfi@20000 { + compatible = "brcm,wfi"; + label = "wfi"; + reg = <0x0020000 0x7ee0000>; + }; + }; + }; +}; + +&uart0 { + status = "ok"; +}; diff --git a/target/linux/bcm63xx/image/bcm63xx_nand.mk b/target/linux/bcm63xx/image/bcm63xx_nand.mk index c0505aceaa..9ff2c989b8 100644 --- a/target/linux/bcm63xx/image/bcm63xx_nand.mk +++ b/target/linux/bcm63xx/image/bcm63xx_nand.mk @@ -52,6 +52,23 @@ define Device/comtrend_vr-3032u endef TARGET_DEVICES += comtrend_vr-3032u +define Device/comtrend_vg-8050 + $(Device/bcm63xx-nand) + DEVICE_VENDOR := Comtrend + DEVICE_MODEL := VG-8050 + CFE_CHIP_ID := 63268 + SOC := bcm63169 + CFE_RAM_FILE := comtrend,vg-8050/cferam.000 + CFE_RAM_JFFS2_NAME := cferam.000 + BLOCKSIZE := 128k + PAGESIZE := 2048 + SUBPAGESIZE := 512 + VID_HDR_OFFSET := 2048 + DEVICE_PACKAGES += $(USB2_PACKAGES) + CFE_WFI_FLASH_TYPE := 3 +endef +TARGET_DEVICES += comtrend_vg-8050 + ### Netgear ### define Device/netgear_dgnd3700-v2 $(Device/bcm63xx-nand) diff --git a/target/linux/bcm63xx/patches-5.4/601-board-VG-8050.patch b/target/linux/bcm63xx/patches-5.4/601-board-VG-8050.patch new file mode 100644 index 0000000000..75fdf7a698 --- /dev/null +++ b/target/linux/bcm63xx/patches-5.4/601-board-VG-8050.patch @@ -0,0 +1,48 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -2635,6 +2635,29 @@ static struct board_info __initdata boar + }, + }; + ++static struct board_info __initdata board_VG8050 = { ++ .name = "963169P-1861N5", ++ .expected_cpu_id = 0x63268, ++ ++ .has_ehci0 = 1, ++ .has_ohci0 = 1, ++ .num_usbh_ports = 2, ++ ++ .has_enetsw = 1, ++ .enetsw = { ++ .used_ports = { ++ [6] = { ++ .used = 1, ++ .phy_id = 0xff, ++ .bypass_link = 1, ++ .force_speed = 1000, ++ .force_duplex_full = 1, ++ .name = "RGMII", ++ }, ++ }, ++ }, ++}; ++ + static struct board_info __initdata board_VR3032u = { + .name = "963168M-1841N1", + .expected_cpu_id = 0x63268, +@@ -2868,6 +2891,7 @@ static const struct board_info __initcon + #ifdef CONFIG_BCM63XX_CPU_63268 + &board_963268bu_p300, + &board_963269bhr, ++ &board_VG8050, + &board_VR3032u, + &board_vw6339gu, + &board_BSKYB_63168, +@@ -2983,6 +3007,7 @@ static struct of_device_id const bcm963x + #ifdef CONFIG_BCM63XX_CPU_63268 + { .compatible = "brcm,bcm963268bu-p300", .data = &board_963268bu_p300, }, + { .compatible = "brcm,bcm963269bhr", .data = &board_963269bhr, }, ++ { .compatible = "comtrend,vg-8050", .data = &board_VG8050, }, + { .compatible = "comtrend,vr-3032u", .data = &board_VR3032u, }, + { .compatible = "inteno,vg50", .data = &board_vw6339gu, }, + { .compatible = "sky,sr102", .data = &board_BSKYB_63168, },