diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile index 8e70afca5927..93ad11c87da8 100644 --- a/arch/arm64/boot/dts/mediatek/Makefile +++ b/arch/arm64/boot/dts/mediatek/Makefile @@ -83,18 +83,19 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-2g5.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-emmc.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-nopcie2.dtbo +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-nand.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-4e.dtb dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-4e-wan-2g5.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-4e-wan-sfp.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-8x.dtb +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-8x-lan-phy.dtbo +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-8x-lan-sfp.dtbo +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-8x-wan-phy.dtbo +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-8x-wan-sfp.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-cn13.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-cn14.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-cn15.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-cn18.dtbo -dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-lan-phy.dtbo -dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-lan-sfp.dtbo -dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-wan-phy.dtbo -dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-wan-sfp.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-emmc.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-pro-sd.dtbo dtb-$(CONFIG_ARCH_MEDIATEK) += mt7988a-bananapi-bpi-r4-sd.dtbo diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-nand.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-nand.dtso new file mode 100644 index 000000000000..648c59d78cd5 --- /dev/null +++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-nand.dtso @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) +/* + * Copyright (C) 2025 MediaTek Inc. + * Author: Frank Wunderlich + */ + +/* This updates NAND size to 256MB on BPI-R4-8G */ + +/dts-v1/; +/plugin/; + +/ { + compatible = "bananapi,bpi-r4", "mediatek,mt7988a"; +}; + +&{/soc/spi@11007000/flash@0/partitions/partition@200000} { + reg = <0x200000 0xfe00000>; +}; diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts index a9fdf9d07cf4..9472fa1cc481 100644 --- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts +++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e.dts @@ -15,6 +15,15 @@ "mediatek,mt7988a"; }; +&gsw_phy2 { + status = "okay"; +}; + +&gsw_port2 { + label = "lan5"; + status = "okay"; +}; + &switch16 { ports { port6: port@6 { @@ -29,12 +38,3 @@ }; }; }; - -&gsw_phy2 { - status = "okay"; -}; - -&gsw_port2 { - status = "okay"; - label = "lan5"; -}; diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-lan-phy.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-lan-phy.dtso similarity index 100% rename from arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-lan-phy.dtso rename to arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-lan-phy.dtso diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-lan-sfp.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-lan-sfp.dtso similarity index 100% rename from arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-lan-sfp.dtso rename to arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-lan-sfp.dtso diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-wan-phy.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-wan-phy.dtso similarity index 100% rename from arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-wan-phy.dtso rename to arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-wan-phy.dtso diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-wan-sfp.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-wan-sfp.dtso similarity index 100% rename from arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-wan-sfp.dtso rename to arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-wan-sfp.dtso diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn13.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn13.dtso index 973b76ba0cbf..68978445b592 100644 --- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn13.dtso +++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn13.dtso @@ -15,6 +15,7 @@ compatible = "bananapi,bpi-r4-pro", "mediatek,mt7988a"; }; -&{/soc/pinctrl@1001f000/pcie-2-hog} { +&pcie_2_hog { + gpio-hog; output-high; }; diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn14.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn14.dtso index 90b2a64459c3..38c589b2c780 100644 --- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn14.dtso +++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn14.dtso @@ -15,6 +15,7 @@ compatible = "bananapi,bpi-r4-pro", "mediatek,mt7988a"; }; -&{/soc/pinctrl@1001f000/pcie-3-hog} { +&pcie_3_hog { + gpio-hog; output-high; }; diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn15.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn15.dtso index 9750916042de..7797919df716 100644 --- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn15.dtso +++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn15.dtso @@ -15,6 +15,7 @@ compatible = "bananapi,bpi-r4-pro", "mediatek,mt7988a"; }; -&{/soc/pinctrl@1001f000/pcie-2-hog} { +&pcie_2_hog { + gpio-hog; output-low; }; diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn18.dtso b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn18.dtso index 9830fb0fd97a..65cfa9b2f1e8 100644 --- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn18.dtso +++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-cn18.dtso @@ -15,6 +15,7 @@ compatible = "bananapi,bpi-r4-pro", "mediatek,mt7988a"; }; -&{/soc/pinctrl@1001f000/pcie-3-hog} { +&pcie_3_hog { + gpio-hog; output-low; }; diff --git a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi index b8e458599e38..0f3ddcc2ebbb 100644 --- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro.dtsi @@ -562,17 +562,23 @@ }; }; - /* 1L0 0=key-b (CN15), 1=key-m (CN13) */ - pcie-2-hog { - gpio-hog; - gpios = <79 GPIO_ACTIVE_HIGH>; - }; - - /* 1L1 0=key-b (CN18), 1=key-m (CN14) */ - pcie-3-hog { - gpio-hog; - gpios = <63 GPIO_ACTIVE_HIGH>; - }; + /* pcie-2-hog (1L0 0=key-b (CN15), 1=key-m (CN13)) + * Add one overlay to configure the CN to connect (CN13 is default): + * - mt7988a-bananapi-bpi-r4-pro-cn13 + * - mt7988a-bananapi-bpi-r4-pro-cn15 + */ + pcie_2_hog: pcie-2-hog { + gpios = <79 GPIO_ACTIVE_HIGH>; + }; + + /* pcie-3-hog (1L1 0=key-b (CN18), 1=key-m (CN14)) + * Add one overlay to configure the CN to connect (CN14 is default): + * - mt7988a-bananapi-bpi-r4-pro-cn14 + * - mt7988a-bananapi-bpi-r4-pro-cn18 + */ + pcie_3_hog: pcie-3-hog { + gpios = <63 GPIO_ACTIVE_HIGH>; + }; pwm0_pins: pwm0-pins { mux { diff --git a/bpi-r4.its b/bpi-r4.its index 602122ec2397..fc0144722b12 100644 --- a/bpi-r4.its +++ b/bpi-r4.its @@ -148,24 +148,36 @@ data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-emmc.dtbo"); type = "flat_dt"; }; - fdt-ov-pro-lan-phy { + + fdt-ov-pro-4e-wan-phy { + description = "DT overlay for R4Pro 4E WAN-PHY"; + data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e-wan-2g5.dtbo"); + type = "flat_dt"; + }; + fdt-ov-pro-4e-wan-sfp { + description = "DT overlay for R4Pro 4E WAN-SFP"; + data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-4e-wan-sfp.dtbo"); + type = "flat_dt"; + }; + + fdt-ov-pro-8x-lan-phy { description = "DT overlay for R4Pro LAN-PHY"; - data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-lan-phy.dtbo"); + data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-lan-phy.dtbo"); type = "flat_dt"; }; - fdt-ov-pro-lan-sfp { + fdt-ov-pro-8x-lan-sfp { description = "DT overlay for R4Pro LAN-SFP"; - data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-lan-sfp.dtbo"); + data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-lan-sfp.dtbo"); type = "flat_dt"; }; - fdt-ov-pro-wan-phy { + fdt-ov-pro-8x-wan-phy { description = "DT overlay for R4Pro WAN-PHY"; - data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-wan-phy.dtbo"); + data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-wan-phy.dtbo"); type = "flat_dt"; }; - fdt-ov-pro-wan-sfp { + fdt-ov-pro-8x-wan-sfp { description = "DT overlay for R4Pro WAN-SFP"; - data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-wan-sfp.dtbo"); + data = /incbin/("./arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4-pro-8x-wan-sfp.dtbo"); type = "flat_dt"; }; /* ramdisk-1 { @@ -314,22 +326,30 @@ description = "CN18 FDT overlay blob for R4 Pro"; fdt = "fdt-ov-pro-cn18"; }; - //setenv addconf "#ov-pro-lan-phy#ov-pro-wan-phy" - ov-pro-lan-phy { - description = "LAN-PHY FDT overlay blob for R4 Pro"; - fdt = "fdt-ov-pro-lan-phy"; + ov-pro-4e-wan-phy { + description = "WAN-PHY FDT overlay blob for R4 Pro 4E"; + fdt = "fdt-ov-pro-4e-wan-phy"; + }; + ov-pro-4e-wan-sfp { + description = "WAN-SFP FDT overlay blob for R4 Pro 4E"; + fdt = "fdt-ov-pro-4e-wan-sfp"; + }; + //setenv addconf "#ov-pro-8x-lan-phy#ov-pro-8x-wan-phy" + ov-pro-8x-lan-phy { + description = "LAN-PHY FDT overlay blob for R4 Pro 8X"; + fdt = "fdt-ov-pro-8x-lan-phy"; }; - ov-pro-lan-sfp { - description = "LAN-SFP FDT overlay blob for R4 Pro"; - fdt = "fdt-ov-pro-lan-sfp"; + ov-pro-8x-lan-sfp { + description = "LAN-SFP FDT overlay blob for R4 Pro 8X"; + fdt = "fdt-ov-pro-8x-lan-sfp"; }; - ov-pro-wan-phy { - description = "WAN-PHY FDT overlay blob for R4 Pro"; - fdt = "fdt-ov-pro-wan-phy"; + ov-pro-8x-wan-phy { + description = "WAN-PHY FDT overlay blob for R4 Pro 8X"; + fdt = "fdt-ov-pro-8x-wan-phy"; }; - ov-pro-wan-sfp { - description = "WAN-SFP FDT overlay blob for R4 Pro"; - fdt = "fdt-ov-pro-wan-sfp"; + ov-pro-8x-wan-sfp { + description = "WAN-SFP FDT overlay blob for R4 Pro 8X"; + fdt = "fdt-ov-pro-8x-wan-sfp"; }; }; }; diff --git a/build.sh b/build.sh index 1dcbc3708f3d..78a256d4a383 100755 --- a/build.sh +++ b/build.sh @@ -1139,12 +1139,10 @@ if [ -n "$kernver" ]; then ;; "dtbs_check") - export ARCH=arm64 - export CROSS_COMPILE='aarch64-linux-gnu-' - if [[ "$2" == "disable_unrelated" ]];then - sed -i.bak '/mediatek\|rockchip/! s/^/#/' arch/arm64/boot/dts/Makefile - sed -i.bak '/bpi/! s/^/#/' arch/arm64/boot/dts/{mediatek,rockchip}/Makefile - fi + unset ARCH + unset CROSS_COMPILE + unset CC + unset HOSTCC if [[ ! -e .venv ]];then python3 -m venv .venv fi @@ -1152,6 +1150,14 @@ if [ -n "$kernver" ]; then if [[ $? -ne 0 ]];then exit 1;fi pip3 install dtschema --upgrade pip3 show dtschema + if [[ $? -ne 0 ]];then exit 1;fi + + if [[ "$2" == "disable_unrelated" ]];then + sed -i.bak '/mediatek\|rockchip/! s/^/#/' arch/arm64/boot/dts/Makefile + sed -i.bak '/bpi/! s/^/#/' arch/arm64/boot/dts/{mediatek,rockchip}/Makefile + fi + export ARCH=arm64 + export CROSS_COMPILE='aarch64-linux-gnu-' make dt_binding_check 2>&1 | tee dtbs_check.log make defconfig make dtbs_check 2>&1 | tee -a dtbs_check.log