Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
@@ -54,11 +54,22 @@ define U-Boot/an7581_gemtek_w1700k
|
||||
UBOOT_IMAGE:=u-boot.bin
|
||||
endef
|
||||
|
||||
define U-Boot/an7581_nokia_valyrian
|
||||
NAME:=Nokia Valyrian
|
||||
UBOOT_CONFIG:=an7581_nokia_valyrian
|
||||
BUILD_DEVICES:=nokia_valyrian
|
||||
BUILD_SUBTARGET:=an7581
|
||||
UBOOT_IMAGE:=u-boot.fip
|
||||
BL2_IMAGE:=an7581-bl2.bin
|
||||
BL31_IMAGE:=an7581-bl31.bin
|
||||
endef
|
||||
|
||||
UBOOT_TARGETS := \
|
||||
en7523_rfb \
|
||||
an7581_rfb \
|
||||
an7583_rfb \
|
||||
an7581_gemtek_w1700k
|
||||
an7581_gemtek_w1700k \
|
||||
an7581_nokia_valyrian
|
||||
|
||||
UBOOT_CUSTOMIZE_CONFIG := \
|
||||
--disable TOOLS_KWBIMAGE \
|
||||
|
||||
@@ -0,0 +1,242 @@
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/dts/an7581-nokia-valyrian-u-boot.dtsi
|
||||
@@ -0,0 +1,104 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
+
|
||||
+/ {
|
||||
+ /* When running as a first-stage bootloader this isn't filled in automatically */
|
||||
+ memory@80000000 {
|
||||
+ device_type = "memory";
|
||||
+ reg = <0x0 0x80000000 0x0 0x40000000>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+#include "an7581-u-boot.dtsi"
|
||||
+
|
||||
+&mmc0 {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ card@0 {
|
||||
+ compatible = "mmc-card";
|
||||
+ reg = <0>;
|
||||
+
|
||||
+ partitions {
|
||||
+ compatible = "fixed-partitions";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+
|
||||
+ bl@800 {
|
||||
+ label = "bl2";
|
||||
+ reg = <0x00000800 0x0001f800>;
|
||||
+ };
|
||||
+
|
||||
+ bootloader@20000 {
|
||||
+ label = "bootloader";
|
||||
+ reg = <0x00020000 0x000e0000>;
|
||||
+ };
|
||||
+
|
||||
+ bootloader-inactive@100000 {
|
||||
+ label = "bootloader-inactive";
|
||||
+ reg = <0x00100000 0x000e0000>;
|
||||
+ };
|
||||
+
|
||||
+ u-boot-env@1e0000 {
|
||||
+ label = "u-boot-env";
|
||||
+ reg = <0x001e0000 0x00020000>;
|
||||
+
|
||||
+ u-boot,mmc-env-partition;
|
||||
+ };
|
||||
+
|
||||
+ factory@200000 {
|
||||
+ label = "factory";
|
||||
+ reg = <0x00200000 0x00800000>;
|
||||
+ };
|
||||
+
|
||||
+ mfgdata@a00000 {
|
||||
+ label = "mfgdata";
|
||||
+ reg = <0x00a00000 0x00100000>;
|
||||
+ };
|
||||
+
|
||||
+ kernel-active@b00000 {
|
||||
+ label = "kernel-active";
|
||||
+ reg = <0x00b00000 0x00800000>;
|
||||
+ };
|
||||
+
|
||||
+ kernel-inactive@1300000 {
|
||||
+ label = "kernel-inactive";
|
||||
+ reg = <0x01300000 0x00800000>;
|
||||
+ };
|
||||
+
|
||||
+ rootfs-active@1b00000 {
|
||||
+ label = "rootfs-active";
|
||||
+ reg = <0x01b00000 0x06400000>;
|
||||
+ };
|
||||
+
|
||||
+ rootfs-inactive@7f00000 {
|
||||
+ label = "rootfs-inactive";
|
||||
+ reg = <0x07f00000 0x06400000>;
|
||||
+ };
|
||||
+
|
||||
+ rootfs-data@e300000 {
|
||||
+ label = "rootfs_data";
|
||||
+ reg = <0x0e300000 0x02000000>;
|
||||
+ };
|
||||
+
|
||||
+ securestore@10300000 {
|
||||
+ label = "securestore";
|
||||
+ reg = <0x10300000 0x1000000>;
|
||||
+ };
|
||||
+
|
||||
+ lcm-data@11300000 {
|
||||
+ label = "lcm_data";
|
||||
+ reg = <0x11300000 0x40000000>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+ð {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&gdm1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
--- /dev/null
|
||||
+++ b/configs/an7581_nokia_valyrian_defconfig
|
||||
@@ -0,0 +1,85 @@
|
||||
+CONFIG_ARM=y
|
||||
+CONFIG_ARCH_AIROHA=y
|
||||
+CONFIG_AUTOBOOT_USE_MENUKEY=y
|
||||
+CONFIG_AUTOBOOT_MENU_SHOW=y
|
||||
+CONFIG_TARGET_AN7581=y
|
||||
+CONFIG_TEXT_BASE=0x81e00000
|
||||
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||
+CONFIG_NR_DRAM_BANKS=1
|
||||
+CONFIG_ENV_SIZE=0x20000
|
||||
+CONFIG_ENV_OFFSET=0x1e0000
|
||||
+CONFIG_DM_GPIO=y
|
||||
+CONFIG_DEFAULT_DEVICE_TREE="airoha/an7581-nokia-valyrian"
|
||||
+CONFIG_SYS_LOAD_ADDR=0x81800000
|
||||
+CONFIG_BUILD_TARGET="u-boot.bin"
|
||||
+# CONFIG_EFI_LOADER is not set
|
||||
+CONFIG_FIT=y
|
||||
+CONFIG_FIT_VERBOSE=y
|
||||
+CONFIG_BOOTDELAY=3
|
||||
+CONFIG_DEFAULT_FDT_FILE="airoha/an7581-nokia-valyrian.dtb"
|
||||
+CONFIG_SYS_PBSIZE=1049
|
||||
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
|
||||
+# CONFIG_DISPLAY_BOARDINFO is not set
|
||||
+CONFIG_HUSH_PARSER=y
|
||||
+CONFIG_SYS_PROMPT="AN7581> "
|
||||
+CONFIG_SYS_MAXARGS=8
|
||||
+CONFIG_CMD_ASKENV=y
|
||||
+CONFIG_CMD_BOOTZ=y
|
||||
+CONFIG_CMD_BOOTMENU=y
|
||||
+# CONFIG_CMD_ELF is not set
|
||||
+# CONFIG_CMD_XIMG is not set
|
||||
+CONFIG_CMD_BIND=y
|
||||
+CONFIG_CMD_ERASEENV=y
|
||||
+CONFIG_CMD_GPIO=y
|
||||
+CONFIG_CMD_MMC=y
|
||||
+CONFIG_CMD_MTD=y
|
||||
+CONFIG_CMD_SF_TEST=y
|
||||
+CONFIG_CMD_SPI=y
|
||||
+# CONFIG_CMD_SETEXPR is not set
|
||||
+CONFIG_CMD_PING=y
|
||||
+CONFIG_CMD_EXT4=y
|
||||
+CONFIG_CMD_FAT=y
|
||||
+CONFIG_CMD_FS_GENERIC=y
|
||||
+CONFIG_CMD_MTDPARTS=y
|
||||
+CONFIG_CMD_LOG=y
|
||||
+CONFIG_OF_UPSTREAM=y
|
||||
+CONFIG_ENV_OVERWRITE=y
|
||||
+CONFIG_ENV_IS_IN_MMC=y
|
||||
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
||||
+CONFIG_NET_RANDOM_ETHADDR=y
|
||||
+CONFIG_SYS_RX_ETH_BUFFER=8
|
||||
+CONFIG_REGMAP=y
|
||||
+CONFIG_SYSCON=y
|
||||
+CONFIG_CLK=y
|
||||
+CONFIG_DMA=y
|
||||
+CONFIG_LED=y
|
||||
+CONFIG_LED_GPIO=y
|
||||
+CONFIG_MMC_HS200_SUPPORT=y
|
||||
+CONFIG_MMC_MTK=y
|
||||
+CONFIG_AIROHA_ETH=y
|
||||
+CONFIG_DM_MDIO=y
|
||||
+CONFIG_CMD_MII=y
|
||||
+CONFIG_CMD_MDIO=y
|
||||
+CONFIG_PCS_AIROHA_AN7581=y
|
||||
+CONFIG_PHY=y
|
||||
+CONFIG_PINCTRL=y
|
||||
+CONFIG_PINCONF=y
|
||||
+CONFIG_POWER_DOMAIN=y
|
||||
+CONFIG_DM_REGULATOR=y
|
||||
+CONFIG_DM_REGULATOR_FIXED=y
|
||||
+CONFIG_RAM=y
|
||||
+CONFIG_DM_SERIAL=y
|
||||
+CONFIG_SYS_NS16550=y
|
||||
+CONFIG_SPI=y
|
||||
+CONFIG_DM_SPI=y
|
||||
+CONFIG_AIROHA_SNFI_SPI=y
|
||||
+CONFIG_SHA512=y
|
||||
+CONFIG_USE_DEFAULT_ENV_FILE=y
|
||||
+CONFIG_DEFAULT_ENV_FILE="defenvs/an7581_nokia_valyrian_env"
|
||||
+CONFIG_FIP_LOADER=y
|
||||
+CONFIG_PCS_AIROHA_AN7581=y
|
||||
+CONFIG_PHY_AIROHA_EN8811=y
|
||||
+CONFIG_PHY_ANEG_TIMEOUT=10000
|
||||
+CONFIG_PHY_ETHERNET_ID=y
|
||||
+CONFIG_PHY_AS21XXX=y
|
||||
--- /dev/null
|
||||
+++ b/defenvs/an7581_nokia_valyrian_env
|
||||
@@ -0,0 +1,25 @@
|
||||
+loadaddr=0x90000000
|
||||
+ipaddr=192.168.1.1
|
||||
+serverip=192.168.1.10
|
||||
+emmc_bootfile_bl2=immortalwrt-airoha-an7581-nokia_valyrian-preloader.bin
|
||||
+emmc_bootfile_fip=immortalwrt-airoha-an7581-nokia_valyrian-bl31-uboot.fip
|
||||
+bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
|
||||
+bootmenu_default=0
|
||||
+bootmenu_delay=0
|
||||
+bootmenu_title= [0;34m( ( ( [1;39mOpenWrt[0;34m ) ) ) [0;36m[EMMC][0m
|
||||
+bootmenu_0=Initialize environment.=run _firstboot
|
||||
+bootmenu_0d=Run default boot command.=run boot_default
|
||||
+bootmenu_1=[31mLoad BL31+U-Boot FIP via TFTP then write to eMMC.[0m=run emmc_boot_tftp_write_fip ; run bootmenu_confirm_return
|
||||
+bootmenu_2=[31mLoad BL2 preloader via TFTP then write to eMMC.[0m=run emmc_boot_tftp_write_bl2 ; run bootmenu_confirm_return
|
||||
+bootmenu_3=Reboot.=reset
|
||||
+bootmenu_4=Reset all settings to factory defaults.=run reset_factory ; reset
|
||||
+boot_default=bootm
|
||||
+reset_factory=eraseenv && reset
|
||||
+emmc_boot_tftp_write_fip=tftpboot $loadaddr $emmc_bootfile_fip && run emmc_write_fip
|
||||
+emmc_boot_tftp_write_bl2=tftpboot $loadaddr $emmc_bootfile_bl2 && run emmc_write_bl2
|
||||
+emmc_write_bl2=mmc erase 0x4 0xfc && mmc write $fileaddr 0x4 0xfc
|
||||
+emmc_write_fip=mmc erase 0x100 0x700 && mmc write $fileaddr 0x100 0x700
|
||||
+_init_env=setenv _init_env ; saveenv
|
||||
+_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; bootmenu
|
||||
+_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
|
||||
+_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title [33m$ver[0m"
|
||||
--- /dev/null
|
||||
+++ b/dts/upstream/src/arm64/airoha/an7581-nokia-valyrian.dts
|
||||
@@ -0,0 +1,16 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include <dt-bindings/leds/common.h>
|
||||
+#include <dt-bindings/gpio/gpio.h>
|
||||
+#include <dt-bindings/input/input.h>
|
||||
+#include "en7581.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Nokia Valyrian";
|
||||
+ compatible = "nokia,valyrian", "airoha,an7581", "airoha,en7581";
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = &uart1;
|
||||
+ };
|
||||
+};
|
||||
@@ -10,9 +10,9 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/chunkeey/FritzBox-4040-UBOOT
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=6909090cb82db96f8ef0cd211ca91e87d69a07fc
|
||||
PKG_SOURCE_DATE:=2026-03-04
|
||||
PKG_MIRROR_HASH:=741da058f24e559befff1f2d28d057dbfe9b3a6af67e60191cbefdbacc9143bb
|
||||
PKG_SOURCE_VERSION:=056376fc703f2af0b93d673bf8ab4184689c5403
|
||||
PKG_SOURCE_DATE:=2026-03-08
|
||||
PKG_MIRROR_HASH:=1d7e4fe9116dc9378ee5569b48a1ce7bd41a8138928905010ebe79b8771c39dc
|
||||
|
||||
PKG_RELEASE:=1
|
||||
|
||||
|
||||
@@ -7,6 +7,12 @@ touch /etc/config/ubootenv
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
ubootenv_add_mtd() {
|
||||
local idx="$(find_mtd_index "${1}")"
|
||||
[ -n "$idx" ] && \
|
||||
ubootenv_add_uci_config "/dev/mtd$idx" "${2}" "${3}" "${4}"
|
||||
}
|
||||
|
||||
case "$board" in
|
||||
8devices,mango-dvk|\
|
||||
8devices,mango-dvk-sfp|\
|
||||
@@ -25,7 +31,7 @@ netgear,wax214|\
|
||||
netgear,wax610|\
|
||||
netgear,wax610y|\
|
||||
tplink,eap610-outdoor|\
|
||||
tplink,eap623od-hd-v1|\
|
||||
tplink,eap623-outdoor-hd-v1|\
|
||||
tplink,eap620-hd-v3|\
|
||||
tplink,eap625-outdoor-hd-v1)
|
||||
ubootenv_add_mtd "0:appsblenv" "0x0" "0x40000" "0x20000"
|
||||
|
||||
@@ -47,11 +47,6 @@ define Package/ath11k-firmware-default
|
||||
DEPENDS:=
|
||||
endef
|
||||
|
||||
define Package/ath11k-firmware-ipq5018
|
||||
$(Package/ath11k-firmware-default)
|
||||
TITLE:=IPQ5018 ath11k firmware
|
||||
endef
|
||||
|
||||
define Package/ath11k-firmware-ipq5018-qcn6122
|
||||
$(Package/ath11k-firmware-default)
|
||||
TITLE:=IPQ5018/QCN6122 ath11k firmware
|
||||
@@ -62,16 +57,6 @@ $(Package/ath11k-firmware-default)
|
||||
TITLE:=IPQ6018 ath11k firmware
|
||||
endef
|
||||
|
||||
define Package/ath11k-firmware-ipq8074
|
||||
$(Package/ath11k-firmware-default)
|
||||
TITLE:=IPQ8074 ath11k firmware
|
||||
endef
|
||||
|
||||
define Package/ath11k-firmware-qcn9074
|
||||
$(Package/ath11k-firmware-default)
|
||||
TITLE:=QCN9074 ath11k firmware
|
||||
endef
|
||||
|
||||
define Build/Clean
|
||||
$(call Build/Clean/Default,)
|
||||
|
||||
@@ -91,13 +76,6 @@ define Build/Compile
|
||||
|
||||
endef
|
||||
|
||||
define Package/ath11k-firmware-ipq5018/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/IPQ5018/hw1.0
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/IPQ5018/hw1.0/2.6.0.1/WLAN.HK.2.6.0.1-01291-QCAHKSWPL_SILICONZ-1/* \
|
||||
$(1)/lib/firmware/ath11k/IPQ5018/hw1.0/
|
||||
endef
|
||||
|
||||
define Package/ath11k-firmware-ipq5018-qcn6122/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/IPQ5018/hw1.0
|
||||
$(INSTALL_DATA) \
|
||||
@@ -116,24 +94,5 @@ define Package/ath11k-firmware-ipq6018/install
|
||||
$(1)/lib/firmware/IPQ6018/
|
||||
endef
|
||||
|
||||
define Package/ath11k-firmware-ipq8074/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/IPQ8074
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/IPQ8074/hw2.0/2.9.0.1/WLAN.HK.2.9.0.1-02146-QCAHKSWPL_SILICONZ-1/* \
|
||||
$(1)/lib/firmware/IPQ8074/
|
||||
endef
|
||||
|
||||
define Package/ath11k-firmware-qcn9074/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/QCN9074/hw1.0
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/QCN9074/hw1.0/2.9.0.1/WLAN.HK.2.9.0.1-02146-QCAHKSWPL_SILICONZ-1/* \
|
||||
$(1)/lib/firmware/ath11k/QCN9074/hw1.0/
|
||||
$(INSTALL_BIN) \
|
||||
$(PKG_BUILD_DIR)/QCN9074/hw1.0/board-2.bin $(1)/lib/firmware/ath11k/QCN9074/hw1.0/board-2.bin
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,ath11k-firmware-ipq5018))
|
||||
$(eval $(call BuildPackage,ath11k-firmware-ipq5018-qcn6122))
|
||||
$(eval $(call BuildPackage,ath11k-firmware-ipq6018))
|
||||
$(eval $(call BuildPackage,ath11k-firmware-ipq8074))
|
||||
$(eval $(call BuildPackage,ath11k-firmware-qcn9074))
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=intel-microcode
|
||||
PKG_VERSION:=20251111
|
||||
PKG_VERSION:=20260227
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=intel-microcode_3.$(PKG_VERSION).1.tar.xz
|
||||
PKG_SOURCE_URL:=@DEBIAN/pool/non-free-firmware/i/intel-microcode/
|
||||
PKG_HASH:=9b6d11cf851dbe483d3afe73e93049263f06b2f93c78a5f7b0068fb2f7ea3411
|
||||
PKG_HASH:=15289edaaa2db7976e005628027f16d19945f1eab1bb2d5dd44133cd06c4ad25
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/intel-microcode-3.$(PKG_VERSION).1
|
||||
PKG_CPE_ID:=cpe:/a:intel:microcode
|
||||
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=linux-firmware
|
||||
PKG_VERSION:=20260221
|
||||
PKG_VERSION:=20260309
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/kernel/firmware
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_HASH:=bd19acc4c1a02548e09d3df67f987fe6e378df735bab138c1d9e917962056d94
|
||||
PKG_HASH:=c74cc6f562b58ad5bc6b2b00a61abc29c9e49e06126e7ba34fbca9928e07a96c
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
Package/ath11k-firmware-ipq5018 = $(call Package/firmware-default,IPQ5018 ath11k firmware,,LICENCE.atheros_firmware)
|
||||
define Package/ath11k-firmware-ipq5018/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/IPQ5018/hw1.0
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/ath11k/IPQ5018/hw1.0/* $(1)/lib/firmware/ath11k/IPQ5018/hw1.0/
|
||||
endef
|
||||
$(eval $(call BuildPackage,ath11k-firmware-ipq5018))
|
||||
|
||||
Package/ath11k-firmware-ipq8074 = $(call Package/firmware-default,IPQ8074 ath11k firmware,,LICENCE.atheros_firmware)
|
||||
define Package/ath11k-firmware-ipq8074/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/IPQ8074
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/ath11k/IPQ8074/hw2.0/* $(1)/lib/firmware/IPQ8074/
|
||||
endef
|
||||
$(eval $(call BuildPackage,ath11k-firmware-ipq8074))
|
||||
|
||||
Package/ath11k-firmware-qca2066 = $(call Package/firmware-default,QCA2066 ath11k firmware,,LICENCE.atheros_firmware)
|
||||
define Package/ath11k-firmware-qca2066/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/QCA2066/hw2.1
|
||||
@@ -14,6 +30,14 @@ define Package/ath11k-firmware-qca6390/install
|
||||
endef
|
||||
$(eval $(call BuildPackage,ath11k-firmware-qca6390))
|
||||
|
||||
Package/ath11k-firmware-qcn9074 = $(call Package/firmware-default,QCN9074 ath11k firmware,,LICENCE.atheros_firmware)
|
||||
define Package/ath11k-firmware-qcn9074/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/QCN9074/hw1.0
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/ath11k/QCN9074/hw1.0/* $(1)/lib/firmware/ath11k/QCN9074/hw1.0/
|
||||
endef
|
||||
$(eval $(call BuildPackage,ath11k-firmware-qcn9074))
|
||||
|
||||
Package/ath11k-firmware-wcn6750 = $(call Package/firmware-default,WCN6750 ath11k firmware,,LICENCE.atheros_firmware)
|
||||
define Package/ath11k-firmware-wcn6750/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/WCN6750/hw1.0
|
||||
|
||||
@@ -705,6 +705,64 @@ endef
|
||||
|
||||
$(eval $(call KernelPackage,dsa-b53-mdio))
|
||||
|
||||
|
||||
define KernelPackage/dsa-ksz9477
|
||||
SUBMENU:=$(NETWORK_DEVICES_MENU)
|
||||
TITLE:=Microchip KSZ9477 family managed switch DSA support
|
||||
DEPENDS:=@TARGET_imx_cortexa53 +kmod-dsa +kmod-dsa-notag +kmod-phy-micrel +kmod-regmap-core
|
||||
KCONFIG:= \
|
||||
CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON \
|
||||
CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C=n \
|
||||
CONFIG_NET_DSA_MICROCHIP_KSZ_SPI=n \
|
||||
CONFIG_NET_DSA_MICROCHIP_KSZ_PTP=n \
|
||||
CONFIG_NET_DSA_MICROCHIP_KSZ8863_SMI=n \
|
||||
CONFIG_NET_DSA_TAG_KSZ=y
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/drivers/net/dsa/microchip/ksz_switch.ko \
|
||||
$(LINUX_DIR)/net/dsa/tag_ksz.ko
|
||||
AUTOLOAD:=$(call AutoProbe,ksz_switch)
|
||||
endef
|
||||
|
||||
define KernelPackage/dsa-ksz9477/description
|
||||
Microchip KSZ9477 family managed switch support. Note that this should be target
|
||||
specific as the driver enables DCB which grows the static kernel code.
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,dsa-ksz9477))
|
||||
|
||||
|
||||
define KernelPackage/dsa-ksz9477-i2c
|
||||
SUBMENU:=$(NETWORK_DEVICES_MENU)
|
||||
TITLE:=Microchip KSZ9477 family managed switch DSA support via I2C
|
||||
DEPENDS:=+kmod-dsa-ksz9477 +kmod-regmap-i2c
|
||||
KCONFIG:=CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C
|
||||
FILES:= $(LINUX_DIR)/drivers/net/dsa/microchip/ksz9477_i2c.ko
|
||||
AUTOLOAD:=$(call AutoProbe,ksz9477_i2c)
|
||||
endef
|
||||
|
||||
define KernelPackage/dsa-ksz9477-i2c/description
|
||||
Microchip KSZ9477 family managed switch support via I2C
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,dsa-ksz9477-i2c))
|
||||
|
||||
|
||||
define KernelPackage/dsa-ksz9477-spi
|
||||
SUBMENU:=$(NETWORK_DEVICES_MENU)
|
||||
TITLE:=Microchip KSZ9477 family managed switch DSA support via SPI
|
||||
DEPENDS:=+kmod-dsa-ksz9477 +kmod-regmap-spi
|
||||
KCONFIG:=CONFIG_NET_DSA_MICROCHIP_KSZ_SPI
|
||||
FILES:= $(LINUX_DIR)/drivers/net/dsa/microchip/ksz_spi.ko
|
||||
AUTOLOAD:=$(call AutoProbe,ksz_spi)
|
||||
endef
|
||||
|
||||
define KernelPackage/dsa-ksz9477-spi/description
|
||||
Microchip KSZ9477 family managed switch support via SPI
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,dsa-ksz9477-spi))
|
||||
|
||||
|
||||
define KernelPackage/dsa-mv88e6060
|
||||
SUBMENU:=$(NETWORK_DEVICES_MENU)
|
||||
TITLE:=Marvell MV88E6060 DSA Switch
|
||||
|
||||
@@ -13,6 +13,7 @@ PKG_CONFIG_DEPENDS += \
|
||||
CONFIG_ATH10K_LEDS \
|
||||
CONFIG_ATH10K_THERMAL \
|
||||
CONFIG_ATH11K_THERMAL \
|
||||
CONFIG_ATH12K_THERMAL \
|
||||
CONFIG_ATH_USER_REGD
|
||||
|
||||
ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
|
||||
@@ -59,6 +60,7 @@ config-$(CONFIG_ATH9K_UBNTHSR) += ATH9K_UBNTHSR
|
||||
config-$(CONFIG_ATH10K_LEDS) += ATH10K_LEDS
|
||||
config-$(CONFIG_ATH10K_THERMAL) += ATH10K_THERMAL
|
||||
config-$(CONFIG_ATH11K_THERMAL) += ATH11K_THERMAL
|
||||
config-$(CONFIG_ATH12K_THERMAL) += ATH12K_THERMAL
|
||||
|
||||
config-$(call config_package,ath9k-htc) += ATH9K_HTC
|
||||
config-$(call config_package,ath10k,regular) += ATH10K ATH10K_PCI
|
||||
@@ -389,7 +391,8 @@ define KernelPackage/ath12k
|
||||
URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath12k
|
||||
DEPENDS+= @PCI_SUPPORT +kmod-ath +@DRIVER_11AC_SUPPORT +@DRIVER_11AX_SUPPORT \
|
||||
+kmod-crypto-michael-mic +kmod-qrtr-mhi \
|
||||
+kmod-qcom-qmi-helpers +@DRIVER_11BE_SUPPORT
|
||||
+kmod-qcom-qmi-helpers +@DRIVER_11BE_SUPPORT \
|
||||
+ATH12K_THERMAL:kmod-hwmon-core +ATH12K_THERMAL:kmod-thermal
|
||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath12k/ath12k.ko
|
||||
AUTOLOAD:=$(call AutoProbe,ath12k)
|
||||
endef
|
||||
@@ -399,6 +402,14 @@ This module adds support for Qualcomm Technologies 802.11be family of
|
||||
chipsets with PCI bus.
|
||||
endef
|
||||
|
||||
define KernelPackage/ath12k/config
|
||||
|
||||
config ATH12K_THERMAL
|
||||
bool "Enable ath12k thermal sensor support"
|
||||
depends on PACKAGE_kmod-ath12k
|
||||
|
||||
endef
|
||||
|
||||
define KernelPackage/carl9170
|
||||
$(call KernelPackage/mac80211/Default)
|
||||
TITLE:=Driver for Atheros AR9170 USB sticks
|
||||
|
||||
@@ -35,14 +35,6 @@ config-$(CONFIG_PACKAGE_BRCM80211_DEBUG) += BRCMDBG
|
||||
config-$(CONFIG_LEDS_TRIGGERS) += B43_LEDS B43LEGACY_LEDS
|
||||
|
||||
#Broadcom firmware
|
||||
ifneq ($(CONFIG_B43_FW_6_30),)
|
||||
PKG_B43_FWV4_NAME:=broadcom-wl
|
||||
PKG_B43_FWV4_VERSION:=6.30.163.46
|
||||
PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).wl_apsta.o
|
||||
PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
|
||||
PKG_B43_FWV4_SOURCE_URL:=http://www.lwfinger.com/b43-firmware/
|
||||
PKG_B43_FWV4_HASH:=a07c3b6b277833c7dbe61daa511f908cd66c5e2763eb7a0859abc36cd9335c2d
|
||||
else
|
||||
ifneq ($(CONFIG_B43_FW_5_10),)
|
||||
PKG_B43_FWV4_NAME:=broadcom-wl
|
||||
PKG_B43_FWV4_VERSION:=5.10.56.27.3
|
||||
@@ -64,7 +56,7 @@ ifneq ($(CONFIG_B43_FW_5_100_138),)
|
||||
PKG_B43_FWV4_VERSION:=5.100.138
|
||||
PKG_B43_FWV4_OBJECT:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION)/linux/wl_apsta.o
|
||||
PKG_B43_FWV4_SOURCE:=$(PKG_B43_FWV4_NAME)-$(PKG_B43_FWV4_VERSION).tar.bz2
|
||||
PKG_B43_FWV4_SOURCE_URL:=http://www.lwfinger.com/b43-firmware/
|
||||
PKG_B43_FWV4_SOURCE_URL:=@OPENWRT
|
||||
PKG_B43_FWV4_HASH:=f1e7067aac5b62b67b8b6e4c517990277804339ac16065eb13c731ff909ae46f
|
||||
else
|
||||
PKG_B43_FWV4_NAME:=broadcom-wl
|
||||
@@ -76,7 +68,6 @@ else
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifneq ($(CONFIG_B43_OPENFIRMWARE),)
|
||||
PKG_B43_FWV4_NAME:=broadcom-wl
|
||||
PKG_B43_FWV4_VERSION:=5.2
|
||||
@@ -164,15 +155,6 @@ config PACKAGE_B43_USE_BCMA
|
||||
|
||||
If unsure, select the this firmware.
|
||||
|
||||
config B43_FW_6_30
|
||||
bool "Firmware 784.2 from driver 6.30.163.46 (experimental)"
|
||||
help
|
||||
Newer experimental firmware for BCM43xx devices.
|
||||
|
||||
This firmware is mostly untested.
|
||||
|
||||
If unsure, select the "stable" firmware.
|
||||
|
||||
config B43_OPENFIRMWARE
|
||||
bool "Open FirmWare for WiFi networks"
|
||||
help
|
||||
@@ -367,7 +349,7 @@ PKG_BRCMSMAC_FW_NAME:=broadcom-wl
|
||||
PKG_BRCMSMAC_FW_VERSION:=5.100.138
|
||||
PKG_BRCMSMAC_FW_OBJECT:=$(PKG_BRCMSMAC_FW_NAME)-$(PKG_BRCMSMAC_FW_VERSION)/linux/wl_apsta.o
|
||||
PKG_BRCMSMAC_FW_SOURCE:=$(PKG_BRCMSMAC_FW_NAME)-$(PKG_BRCMSMAC_FW_VERSION).tar.bz2
|
||||
PKG_BRCMSMAC_FW_SOURCE_URL:=http://www.lwfinger.com/b43-firmware/
|
||||
PKG_BRCMSMAC_FW_SOURCE_URL:=@OPENWRT
|
||||
PKG_BRCMSMAC_FW_HASH:=f1e7067aac5b62b67b8b6e4c517990277804339ac16065eb13c731ff909ae46f
|
||||
|
||||
define Download/brcmsmac
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
|
||||
break;
|
||||
+ case M3_DUMP_REGION_TYPE:
|
||||
+ if (of_property_read_u32(dev->of_node, "qcom,m3-dump-addr", &addr)) {
|
||||
+ ath11k_warn(ab, "qmi fail to get qcom,m3-dump-addr, ignore m3 dump mem req\n");
|
||||
+ ath11k_dbg(ab, ATH11K_DBG_QMI, "qmi fail to get qcom,m3-dump-addr, ignore m3 dump mem req\n");
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
|
||||
@@ -22,10 +22,8 @@ This patch:
|
||||
This targets monitor capture length correctness only and keeps the fix scoped
|
||||
to the monitor RX delivery path.
|
||||
|
||||
Index: backports-6.18.7/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||
===================================================================
|
||||
--- backports-6.18.7.orig/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||
+++ backports-6.18.7/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
|
||||
@@ -4931,8 +4931,13 @@ ath11k_dp_rx_mon_merg_msdus(struct ath11
|
||||
}
|
||||
|
||||
|
||||
+380
@@ -0,0 +1,380 @@
|
||||
From 151322bccdbdb132f5a73cc8ad5d3ab89b90ed52 Mon Sep 17 00:00:00 2001
|
||||
From: Maharaja Kennadyrajan <maharaja.kennadyrajan@oss.qualcomm.com>
|
||||
Date: Mon, 23 Feb 2026 18:56:22 +0530
|
||||
Subject: wifi: ath12k: add basic hwmon temperature reporting
|
||||
|
||||
Add initial thermal support by wiring up a per-radio (pdev) hwmon temperature
|
||||
sensor backed by the existing WMI pdev temperature command and event.
|
||||
When userspace reads the sysfs file temp1_input, the driver sends
|
||||
WMI_PDEV_GET_TEMPERATURE_CMDID (tag WMI_TAG_PDEV_GET_TEMPERATURE_CMD) and waits
|
||||
for the corresponding WMI_PDEV_TEMPERATURE_EVENTID
|
||||
(tag WMI_TAG_PDEV_TEMPERATURE_EVENT) to get the temperature and pdev_id.
|
||||
|
||||
Export the reported value in millidegrees Celsius as required by hwmon.
|
||||
The temperature reported is per-radio (pdev). In a multi-radio wiphy under a
|
||||
single phy, a separate hwmon device is created for each radio.
|
||||
|
||||
Sample command and output:
|
||||
$ cat /sys/devices/pci0000:00/.../ieee80211/phyX/hwmonY/temp1_input
|
||||
$ 50000
|
||||
|
||||
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.6-01243-QCAHKSWPL_SILICONZ-1
|
||||
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3
|
||||
|
||||
Co-developed-by: Aishwarya R <aishwarya.r@oss.qualcomm.com>
|
||||
Signed-off-by: Aishwarya R <aishwarya.r@oss.qualcomm.com>
|
||||
Signed-off-by: Maharaja Kennadyrajan <maharaja.kennadyrajan@oss.qualcomm.com>
|
||||
Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com>
|
||||
Link: https://patch.msgid.link/20260223132622.43464-1-maharaja.kennadyrajan@oss.qualcomm.com
|
||||
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
|
||||
---
|
||||
drivers/net/wireless/ath/ath12k/Makefile | 1 +
|
||||
drivers/net/wireless/ath/ath12k/core.c | 13 ++++
|
||||
drivers/net/wireless/ath/ath12k/core.h | 3 +
|
||||
drivers/net/wireless/ath/ath12k/mac.c | 4 +
|
||||
drivers/net/wireless/ath/ath12k/thermal.c | 124 ++++++++++++++++++++++++++++++
|
||||
drivers/net/wireless/ath/ath12k/thermal.h | 40 ++++++++++
|
||||
drivers/net/wireless/ath/ath12k/wmi.c | 57 +++++++-------
|
||||
7 files changed, 211 insertions(+), 31 deletions(-)
|
||||
create mode 100644 drivers/net/wireless/ath/ath12k/thermal.c
|
||||
create mode 100644 drivers/net/wireless/ath/ath12k/thermal.h
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath12k/core.c
|
||||
+++ b/drivers/net/wireless/ath/ath12k/core.c
|
||||
@@ -857,11 +857,22 @@ static int ath12k_core_pdev_create(struc
|
||||
return ret;
|
||||
}
|
||||
|
||||
+ ret = ath12k_thermal_register(ab);
|
||||
+ if (ret) {
|
||||
+ ath12k_err(ab, "could not register thermal device: %d\n", ret);
|
||||
+ goto err_dp_pdev_free;
|
||||
+ }
|
||||
+
|
||||
return 0;
|
||||
+
|
||||
+err_dp_pdev_free:
|
||||
+ ath12k_dp_pdev_free(ab);
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
static void ath12k_core_pdev_destroy(struct ath12k_base *ab)
|
||||
{
|
||||
+ ath12k_thermal_unregister(ab);
|
||||
ath12k_dp_pdev_free(ab);
|
||||
}
|
||||
|
||||
@@ -1350,6 +1361,7 @@ static int ath12k_core_reconfigure_on_cr
|
||||
int ret, total_vdev;
|
||||
|
||||
mutex_lock(&ab->core_lock);
|
||||
+ ath12k_thermal_unregister(ab);
|
||||
ath12k_dp_pdev_free(ab);
|
||||
ath12k_ce_cleanup_pipes(ab);
|
||||
ath12k_wmi_detach(ab);
|
||||
@@ -1491,6 +1503,7 @@ static void ath12k_core_pre_reconfigure_
|
||||
complete(&ar->vdev_delete_done);
|
||||
complete(&ar->bss_survey_done);
|
||||
complete_all(&ar->regd_update_completed);
|
||||
+ complete_all(&ar->thermal.wmi_sync);
|
||||
|
||||
wake_up(&ar->dp.tx_empty_waitq);
|
||||
idr_for_each(&ar->txmgmt_idr,
|
||||
--- a/drivers/net/wireless/ath/ath12k/core.h
|
||||
+++ b/drivers/net/wireless/ath/ath12k/core.h
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "wow.h"
|
||||
#include "debugfs_htt_stats.h"
|
||||
#include "coredump.h"
|
||||
+#include "thermal.h"
|
||||
|
||||
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
|
||||
|
||||
@@ -846,6 +847,8 @@ struct ath12k {
|
||||
|
||||
s8 max_allowed_tx_power;
|
||||
struct ath12k_pdev_rssi_offsets rssi_info;
|
||||
+
|
||||
+ struct ath12k_thermal thermal;
|
||||
};
|
||||
|
||||
struct ath12k_hw {
|
||||
--- a/drivers/net/wireless/ath/ath12k/mac.c
|
||||
+++ b/drivers/net/wireless/ath/ath12k/mac.c
|
||||
@@ -14057,6 +14057,10 @@ static void ath12k_mac_setup(struct ath1
|
||||
init_completion(&ar->mlo_setup_done);
|
||||
init_completion(&ar->completed_11d_scan);
|
||||
init_completion(&ar->regd_update_completed);
|
||||
+ init_completion(&ar->thermal.wmi_sync);
|
||||
+
|
||||
+ ar->thermal.temperature = 0;
|
||||
+ ar->thermal.hwmon_dev = NULL;
|
||||
|
||||
INIT_DELAYED_WORK(&ar->scan.timeout, ath12k_scan_timeout_work);
|
||||
wiphy_work_init(&ar->scan.vdev_clean_wk, ath12k_scan_vdev_clean_work);
|
||||
--- a/drivers/net/wireless/ath/ath12k/Makefile
|
||||
+++ b/drivers/net/wireless/ath/ath12k/Makefile
|
||||
@@ -30,6 +30,7 @@ ath12k-$(CPTCFG_ATH12K_TRACING) += trace
|
||||
ath12k-$(CONFIG_PM) += wow.o
|
||||
ath12k-$(CPTCFG_ATH12K_COREDUMP) += coredump.o
|
||||
ath12k-$(CPTCFG_NL80211_TESTMODE) += testmode.o
|
||||
+ath12k-$(CONFIG_THERMAL) += thermal.o
|
||||
|
||||
# for tracing framework to find trace.h
|
||||
CFLAGS_trace.o := -I$(src)
|
||||
--- /dev/null
|
||||
+++ b/drivers/net/wireless/ath/ath12k/thermal.c
|
||||
@@ -0,0 +1,124 @@
|
||||
+// SPDX-License-Identifier: BSD-3-Clause-Clear
|
||||
+/*
|
||||
+ * Copyright (c) 2020 The Linux Foundation. All rights reserved.
|
||||
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
|
||||
+ */
|
||||
+
|
||||
+#include <linux/device.h>
|
||||
+#include <linux/hwmon.h>
|
||||
+#include <linux/hwmon-sysfs.h>
|
||||
+#include <linux/sysfs.h>
|
||||
+#include <linux/thermal.h>
|
||||
+#include "core.h"
|
||||
+#include "debug.h"
|
||||
+
|
||||
+static ssize_t ath12k_thermal_temp_show(struct device *dev,
|
||||
+ struct device_attribute *attr,
|
||||
+ char *buf)
|
||||
+{
|
||||
+ struct ath12k *ar = dev_get_drvdata(dev);
|
||||
+ unsigned long time_left;
|
||||
+ int ret, temperature;
|
||||
+
|
||||
+ guard(wiphy)(ath12k_ar_to_hw(ar)->wiphy);
|
||||
+
|
||||
+ if (ar->ah->state != ATH12K_HW_STATE_ON)
|
||||
+ return -ENETDOWN;
|
||||
+
|
||||
+ reinit_completion(&ar->thermal.wmi_sync);
|
||||
+ ret = ath12k_wmi_send_pdev_temperature_cmd(ar);
|
||||
+ if (ret) {
|
||||
+ ath12k_warn(ar->ab, "failed to read temperature %d\n", ret);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ if (test_bit(ATH12K_FLAG_CRASH_FLUSH, &ar->ab->dev_flags))
|
||||
+ return -ESHUTDOWN;
|
||||
+
|
||||
+ time_left = wait_for_completion_timeout(&ar->thermal.wmi_sync,
|
||||
+ ATH12K_THERMAL_SYNC_TIMEOUT_HZ);
|
||||
+ if (!time_left) {
|
||||
+ ath12k_warn(ar->ab, "failed to synchronize thermal read\n");
|
||||
+ return -ETIMEDOUT;
|
||||
+ }
|
||||
+
|
||||
+ spin_lock_bh(&ar->data_lock);
|
||||
+ temperature = ar->thermal.temperature;
|
||||
+ spin_unlock_bh(&ar->data_lock);
|
||||
+
|
||||
+ /* display in millidegree celsius */
|
||||
+ return sysfs_emit(buf, "%d\n", temperature * 1000);
|
||||
+}
|
||||
+
|
||||
+void ath12k_thermal_event_temperature(struct ath12k *ar, int temperature)
|
||||
+{
|
||||
+ spin_lock_bh(&ar->data_lock);
|
||||
+ ar->thermal.temperature = temperature;
|
||||
+ spin_unlock_bh(&ar->data_lock);
|
||||
+ complete_all(&ar->thermal.wmi_sync);
|
||||
+}
|
||||
+
|
||||
+static SENSOR_DEVICE_ATTR_RO(temp1_input, ath12k_thermal_temp, 0);
|
||||
+
|
||||
+static struct attribute *ath12k_hwmon_attrs[] = {
|
||||
+ &sensor_dev_attr_temp1_input.dev_attr.attr,
|
||||
+ NULL,
|
||||
+};
|
||||
+ATTRIBUTE_GROUPS(ath12k_hwmon);
|
||||
+
|
||||
+int ath12k_thermal_register(struct ath12k_base *ab)
|
||||
+{
|
||||
+ struct ath12k *ar;
|
||||
+ int i, j, ret;
|
||||
+
|
||||
+ if (!IS_REACHABLE(CONFIG_HWMON))
|
||||
+ return 0;
|
||||
+
|
||||
+ for (i = 0; i < ab->num_radios; i++) {
|
||||
+ ar = ab->pdevs[i].ar;
|
||||
+ if (!ar)
|
||||
+ continue;
|
||||
+
|
||||
+ ar->thermal.hwmon_dev =
|
||||
+ hwmon_device_register_with_groups(&ar->ah->hw->wiphy->dev,
|
||||
+ "ath12k_hwmon", ar,
|
||||
+ ath12k_hwmon_groups);
|
||||
+ if (IS_ERR(ar->thermal.hwmon_dev)) {
|
||||
+ ret = PTR_ERR(ar->thermal.hwmon_dev);
|
||||
+ ar->thermal.hwmon_dev = NULL;
|
||||
+ ath12k_err(ar->ab, "failed to register hwmon device: %d\n",
|
||||
+ ret);
|
||||
+ for (j = i - 1; j >= 0; j--) {
|
||||
+ ar = ab->pdevs[j].ar;
|
||||
+ if (!ar)
|
||||
+ continue;
|
||||
+
|
||||
+ hwmon_device_unregister(ar->thermal.hwmon_dev);
|
||||
+ ar->thermal.hwmon_dev = NULL;
|
||||
+ }
|
||||
+ return ret;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+void ath12k_thermal_unregister(struct ath12k_base *ab)
|
||||
+{
|
||||
+ struct ath12k *ar;
|
||||
+ int i;
|
||||
+
|
||||
+ if (!IS_REACHABLE(CONFIG_HWMON))
|
||||
+ return;
|
||||
+
|
||||
+ for (i = 0; i < ab->num_radios; i++) {
|
||||
+ ar = ab->pdevs[i].ar;
|
||||
+ if (!ar)
|
||||
+ continue;
|
||||
+
|
||||
+ if (ar->thermal.hwmon_dev) {
|
||||
+ hwmon_device_unregister(ar->thermal.hwmon_dev);
|
||||
+ ar->thermal.hwmon_dev = NULL;
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
--- /dev/null
|
||||
+++ b/drivers/net/wireless/ath/ath12k/thermal.h
|
||||
@@ -0,0 +1,40 @@
|
||||
+/* SPDX-License-Identifier: BSD-3-Clause-Clear */
|
||||
+/*
|
||||
+ * Copyright (c) 2020 The Linux Foundation. All rights reserved.
|
||||
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
|
||||
+ */
|
||||
+
|
||||
+#ifndef _ATH12K_THERMAL_
|
||||
+#define _ATH12K_THERMAL_
|
||||
+
|
||||
+#define ATH12K_THERMAL_SYNC_TIMEOUT_HZ (5 * HZ)
|
||||
+
|
||||
+struct ath12k_thermal {
|
||||
+ struct completion wmi_sync;
|
||||
+
|
||||
+ /* temperature value in Celsius degree protected by data_lock. */
|
||||
+ int temperature;
|
||||
+ struct device *hwmon_dev;
|
||||
+};
|
||||
+
|
||||
+#if IS_REACHABLE(CONFIG_THERMAL)
|
||||
+int ath12k_thermal_register(struct ath12k_base *ab);
|
||||
+void ath12k_thermal_unregister(struct ath12k_base *ab);
|
||||
+void ath12k_thermal_event_temperature(struct ath12k *ar, int temperature);
|
||||
+#else
|
||||
+static inline int ath12k_thermal_register(struct ath12k_base *ab)
|
||||
+{
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static inline void ath12k_thermal_unregister(struct ath12k_base *ab)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
+static inline void ath12k_thermal_event_temperature(struct ath12k *ar,
|
||||
+ int temperature)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
+#endif /* _ATH12K_THERMAL_ */
|
||||
--- a/drivers/net/wireless/ath/ath12k/wmi.c
|
||||
+++ b/drivers/net/wireless/ath/ath12k/wmi.c
|
||||
@@ -6674,31 +6674,6 @@ static int ath12k_pull_peer_assoc_conf_e
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static int
|
||||
-ath12k_pull_pdev_temp_ev(struct ath12k_base *ab, struct sk_buff *skb,
|
||||
- const struct wmi_pdev_temperature_event *ev)
|
||||
-{
|
||||
- const void **tb;
|
||||
- int ret;
|
||||
-
|
||||
- tb = ath12k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC);
|
||||
- if (IS_ERR(tb)) {
|
||||
- ret = PTR_ERR(tb);
|
||||
- ath12k_warn(ab, "failed to parse tlv: %d\n", ret);
|
||||
- return ret;
|
||||
- }
|
||||
-
|
||||
- ev = tb[WMI_TAG_PDEV_TEMPERATURE_EVENT];
|
||||
- if (!ev) {
|
||||
- ath12k_warn(ab, "failed to fetch pdev temp ev");
|
||||
- kfree(tb);
|
||||
- return -EPROTO;
|
||||
- }
|
||||
-
|
||||
- kfree(tb);
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
static void ath12k_wmi_op_ep_tx_credits(struct ath12k_base *ab)
|
||||
{
|
||||
/* try to send pending beacons first. they take priority */
|
||||
@@ -8713,25 +8688,45 @@ static void
|
||||
ath12k_wmi_pdev_temperature_event(struct ath12k_base *ab,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
+ const struct wmi_pdev_temperature_event *ev;
|
||||
struct ath12k *ar;
|
||||
- struct wmi_pdev_temperature_event ev = {};
|
||||
+ const void **tb;
|
||||
+ int temp;
|
||||
+ u32 pdev_id;
|
||||
|
||||
- if (ath12k_pull_pdev_temp_ev(ab, skb, &ev) != 0) {
|
||||
- ath12k_warn(ab, "failed to extract pdev temperature event");
|
||||
+ tb = ath12k_wmi_tlv_parse_alloc(ab, skb, GFP_ATOMIC);
|
||||
+ if (IS_ERR(tb)) {
|
||||
+ ath12k_warn(ab, "failed to parse tlv: %ld\n", PTR_ERR(tb));
|
||||
return;
|
||||
}
|
||||
|
||||
+ ev = tb[WMI_TAG_PDEV_TEMPERATURE_EVENT];
|
||||
+ if (!ev) {
|
||||
+ ath12k_warn(ab, "failed to fetch pdev temp ev\n");
|
||||
+ kfree(tb);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ temp = a_sle32_to_cpu(ev->temp);
|
||||
+ pdev_id = le32_to_cpu(ev->pdev_id);
|
||||
+
|
||||
+ kfree(tb);
|
||||
+
|
||||
ath12k_dbg(ab, ATH12K_DBG_WMI,
|
||||
- "pdev temperature ev temp %d pdev_id %d\n", ev.temp, ev.pdev_id);
|
||||
+ "pdev temperature ev temp %d pdev_id %u\n",
|
||||
+ temp, pdev_id);
|
||||
|
||||
rcu_read_lock();
|
||||
|
||||
- ar = ath12k_mac_get_ar_by_pdev_id(ab, le32_to_cpu(ev.pdev_id));
|
||||
+ ar = ath12k_mac_get_ar_by_pdev_id(ab, pdev_id);
|
||||
if (!ar) {
|
||||
- ath12k_warn(ab, "invalid pdev id in pdev temperature ev %d", ev.pdev_id);
|
||||
+ ath12k_warn(ab, "invalid pdev id %u in pdev temperature ev\n",
|
||||
+ pdev_id);
|
||||
goto exit;
|
||||
}
|
||||
|
||||
+ ath12k_thermal_event_temperature(ar, temp);
|
||||
+
|
||||
exit:
|
||||
rcu_read_unlock();
|
||||
}
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
From b6a3bb1561e98980b24f08bffe91327b29091c82 Mon Sep 17 00:00:00 2001
|
||||
From: Matt Merhar <mattmerhar@protonmail.com>
|
||||
Date: Wed, 4 Mar 2026 22:07:15 -0500
|
||||
Subject: [PATCH] ath12k: control thermal support via symbol
|
||||
|
||||
As is already done for ath10k and ath11k, add a new ATH12K_THERMAL
|
||||
symbol to decouple the enablement of thermal support from
|
||||
CONFIG_THERMAL.
|
||||
|
||||
Signed-off-by: Matt Merhar <mattmerhar@protonmail.com>
|
||||
---
|
||||
drivers/net/wireless/ath/ath12k/Kconfig | 7 +++++++
|
||||
drivers/net/wireless/ath/ath12k/Makefile | 2 +-
|
||||
drivers/net/wireless/ath/ath12k/thermal.h | 2 +-
|
||||
local-symbols | 1 +
|
||||
4 files changed, 10 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/net/wireless/ath/ath12k/Kconfig
|
||||
+++ b/drivers/net/wireless/ath/ath12k/Kconfig
|
||||
@@ -61,3 +61,10 @@ config ATH12K_COREDUMP
|
||||
|
||||
If unsure, say Y to make it easier to debug problems. But if
|
||||
dump collection not required choose N.
|
||||
+
|
||||
+config ATH12K_THERMAL
|
||||
+ bool "ath12k thermal sensor support"
|
||||
+ depends on ATH12K
|
||||
+ depends on THERMAL
|
||||
+ help
|
||||
+ Enable ath12k thermal sensor support.
|
||||
--- a/drivers/net/wireless/ath/ath12k/Makefile
|
||||
+++ b/drivers/net/wireless/ath/ath12k/Makefile
|
||||
@@ -30,7 +30,7 @@ ath12k-$(CPTCFG_ATH12K_TRACING) += trace
|
||||
ath12k-$(CONFIG_PM) += wow.o
|
||||
ath12k-$(CPTCFG_ATH12K_COREDUMP) += coredump.o
|
||||
ath12k-$(CPTCFG_NL80211_TESTMODE) += testmode.o
|
||||
-ath12k-$(CONFIG_THERMAL) += thermal.o
|
||||
+ath12k-$(CPTCFG_ATH12K_THERMAL) += thermal.o
|
||||
|
||||
# for tracing framework to find trace.h
|
||||
CFLAGS_trace.o := -I$(src)
|
||||
--- a/drivers/net/wireless/ath/ath12k/thermal.h
|
||||
+++ b/drivers/net/wireless/ath/ath12k/thermal.h
|
||||
@@ -17,7 +17,7 @@ struct ath12k_thermal {
|
||||
struct device *hwmon_dev;
|
||||
};
|
||||
|
||||
-#if IS_REACHABLE(CONFIG_THERMAL)
|
||||
+#if IS_REACHABLE(CPTCFG_ATH12K_THERMAL)
|
||||
int ath12k_thermal_register(struct ath12k_base *ab);
|
||||
void ath12k_thermal_unregister(struct ath12k_base *ab);
|
||||
void ath12k_thermal_event_temperature(struct ath12k *ar, int temperature);
|
||||
--- a/local-symbols
|
||||
+++ b/local-symbols
|
||||
@@ -170,6 +170,7 @@ ATH12K_DEBUG=
|
||||
ATH12K_DEBUGFS=
|
||||
ATH12K_TRACING=
|
||||
ATH12K_COREDUMP=
|
||||
+ATH12K_THERMAL=
|
||||
WLAN_VENDOR_ATMEL=
|
||||
AT76C50X_USB=
|
||||
WLAN_VENDOR_BROADCOM=
|
||||
+1
-1
@@ -21,7 +21,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
|
||||
--- a/local-symbols
|
||||
+++ b/local-symbols
|
||||
@@ -336,6 +336,7 @@ RT2X00_LIB_FIRMWARE=
|
||||
@@ -337,6 +337,7 @@ RT2X00_LIB_FIRMWARE=
|
||||
RT2X00_LIB_CRYPTO=
|
||||
RT2X00_LIB_LEDS=
|
||||
RT2X00_LIB_DEBUGFS=
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mt76
|
||||
PKG_RELEASE=1
|
||||
PKG_RELEASE=2
|
||||
|
||||
PKG_LICENSE:=BSD-3-Clause-Clear
|
||||
PKG_LICENSE_FILES:=
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
From e78688a4f44478a9270813ac494fc548ed6b3be9 Mon Sep 17 00:00:00 2001
|
||||
From: David Bauer <mail@david-bauer.net>
|
||||
Date: Fri, 13 Mar 2026 12:19:37 +0100
|
||||
Subject: [PATCH] wifi: mt76: mt7915: set mt76 specific PS flag
|
||||
|
||||
mt76 tracks the PSM state of a sta internally with a wcid flag. TX to
|
||||
such clients is skipped based on the presence of this flag.
|
||||
|
||||
This flag was not added to the PS state notify handler for MT7915 chips.
|
||||
Without this flag, mt76 queues pending frames to the hardware,
|
||||
accounting for airtime when a PSM notification is received while in a TX
|
||||
iteration.
|
||||
|
||||
Set the PS flag for the STA WCID to prevent this from happening. TX gets
|
||||
skipped in presence of this flag.
|
||||
|
||||
Link: https://patchwork.kernel.org/project/linux-wireless/patch/20260313112502.2026974-1-mail@david-bauer.net/
|
||||
|
||||
Signed-off-by: David Bauer <mail@david-bauer.net>
|
||||
---
|
||||
mt7915/mcu.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/mt7915/mcu.c b/mt7915/mcu.c
|
||||
index 6625f905..52c89d2b 100644
|
||||
--- a/mt7915/mcu.c
|
||||
+++ b/mt7915/mcu.c
|
||||
@@ -421,6 +421,11 @@ static void mt7915_mcu_rx_ps_sync(struct mt7915_dev *dev, struct sk_buff *skb)
|
||||
if (!sta)
|
||||
goto out;
|
||||
|
||||
+ if (p->ps_bit)
|
||||
+ set_bit(MT_WCID_FLAG_PS, &wcid->flags);
|
||||
+ else
|
||||
+ clear_bit(MT_WCID_FLAG_PS, &wcid->flags);
|
||||
+
|
||||
ieee80211_sta_ps_transition_ni(sta, !!p->ps_bit);
|
||||
|
||||
out:
|
||||
--
|
||||
2.51.0
|
||||
|
||||
@@ -5,9 +5,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/qca-nss-dp.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2025-11-24
|
||||
PKG_SOURCE_VERSION:=19c51af0c5be0afcbd57a9e0e50928759d7d08da
|
||||
PKG_MIRROR_HASH:=96aafb7c8f09ecde036ed706535111368874b06cd412a7b9df950415e5b4b334
|
||||
PKG_SOURCE_DATE:=2026-03-13
|
||||
PKG_SOURCE_VERSION:=6a5c4716ca258d67202fc7964c9294dfefa3ccfa
|
||||
PKG_MIRROR_HASH:=5f9a9a44f91842492d8c9038670379011b90e68fda7af291b2bdd81889a9ea1a
|
||||
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
@@ -152,7 +152,7 @@ static int trelay_do_add(char *name, char *devn1, char *devn2)
|
||||
struct trelay *tr, *tr1;
|
||||
int ret;
|
||||
|
||||
tr = kzalloc(sizeof(*tr) + strlen(name) + 1, GFP_KERNEL);
|
||||
tr = kzalloc(struct_size(tr, name, strlen(name) + 1), GFP_KERNEL);
|
||||
if (!tr)
|
||||
return -ENOMEM;
|
||||
|
||||
|
||||
@@ -5,9 +5,9 @@ PKG_RELEASE=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/libubox.git
|
||||
PKG_MIRROR_HASH:=fb43a86d13bbbf16d47358caa2fe7eec3b802e3a57ba5142520add159469c927
|
||||
PKG_SOURCE_DATE:=2026-02-13
|
||||
PKG_SOURCE_VERSION:=1aa36ee774c8db4d7a396903e0d2e1fb79ee8bf1
|
||||
PKG_MIRROR_HASH:=55b2298ea74bb4c7267e4b615d442aeff601e0de88ec0e641e4c40eed8454e85
|
||||
PKG_SOURCE_DATE:=2026-03-13
|
||||
PKG_SOURCE_VERSION:=815633847cd32ffe6da28943cbeb37edc88265c8
|
||||
PKG_ABI_VERSION:=$(call abi_version_str,$(PKG_SOURCE_DATE))
|
||||
CMAKE_INSTALL:=1
|
||||
|
||||
|
||||
@@ -8,13 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=zlib
|
||||
PKG_VERSION:=1.3.1
|
||||
PKG_VERSION:=1.3.2
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/madler/zlib
|
||||
PKG_SOURCE_VERSION:=51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf
|
||||
PKG_MIRROR_HASH:=6558577038f4839057fad93afb295bf32e84dc9bd2c33512d40a5eab6d4889ef
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=https://github.com/madler/zlib/releases/download/v$(PKG_VERSION)
|
||||
PKG_HASH:=d7a0654783a4da529d1bb793b7ad9c3318020af77667bcae35f95d0e42a792f3
|
||||
|
||||
PKG_LICENSE:=Zlib
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
@@ -71,7 +70,7 @@ define Build/InstallDev
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libz.{a,so*} \
|
||||
$(1)/usr/lib/
|
||||
mkdir -p $(1)/usr/lib/pkgconfig
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/share/pkgconfig/zlib.pc \
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/zlib.pc \
|
||||
$(1)/usr/lib/pkgconfig/
|
||||
endef
|
||||
|
||||
@@ -91,7 +90,7 @@ define Package/zlib-dev/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libz.a $(1)/usr/lib/
|
||||
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/pkgconfig/zlib.pc \
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/zlib.pc \
|
||||
$(1)/usr/lib/pkgconfig/
|
||||
endef
|
||||
|
||||
|
||||
+26
-31
@@ -1,9 +1,9 @@
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -93,34 +93,67 @@ set(ZLIB_PUBLIC_HDRS
|
||||
${CMAKE_CURRENT_BINARY_DIR}/zconf.h
|
||||
zlib.h
|
||||
)
|
||||
@@ -121,33 +121,64 @@ configure_file(${zlib_BINARY_DIR}/zconf.
|
||||
|
||||
set(ZLIB_PUBLIC_HDRS ${zlib_BINARY_DIR}/zconf.h zlib.h)
|
||||
|
||||
-set(ZLIB_PRIVATE_HDRS
|
||||
- crc32.h
|
||||
- deflate.h
|
||||
@@ -13,8 +13,20 @@
|
||||
- inflate.h
|
||||
- inftrees.h
|
||||
- trees.h
|
||||
- zutil.h
|
||||
-)
|
||||
- zutil.h)
|
||||
+if(ARMv8)
|
||||
+ set(ZLIB_PRIVATE_HDRS
|
||||
+ crc32.h
|
||||
+ deflate.h
|
||||
+ gzguts.h
|
||||
+ inffast.h
|
||||
+ inffixed.h
|
||||
+ inflate.h
|
||||
+ inftrees.h
|
||||
+ trees.h
|
||||
+ zutil.h
|
||||
+ contrib/arm/chunkcopy.h)
|
||||
|
||||
-set(ZLIB_SRCS
|
||||
- adler32.c
|
||||
- compress.c
|
||||
@@ -30,22 +42,7 @@
|
||||
- inffast.c
|
||||
- trees.c
|
||||
- uncompr.c
|
||||
- zutil.c
|
||||
-)
|
||||
+
|
||||
+if(ARMv8)
|
||||
+ set(ZLIB_PRIVATE_HDRS
|
||||
+ crc32.h
|
||||
+ deflate.h
|
||||
+ gzguts.h
|
||||
+ inffast.h
|
||||
+ inffixed.h
|
||||
+ inflate.h
|
||||
+ inftrees.h
|
||||
+ trees.h
|
||||
+ zutil.h
|
||||
+ contrib/arm/chunkcopy.h
|
||||
+ )
|
||||
- zutil.c)
|
||||
+ set(ZLIB_SRCS
|
||||
+ adler32.c
|
||||
+ compress.c
|
||||
@@ -61,9 +58,8 @@
|
||||
+ contrib/arm/inffast.c
|
||||
+ trees.c
|
||||
+ uncompr.c
|
||||
+ zutil.c
|
||||
+ )
|
||||
+ else()
|
||||
+ zutil.c)
|
||||
+else()
|
||||
+ set(ZLIB_PRIVATE_HDRS
|
||||
+ crc32.h
|
||||
+ deflate.h
|
||||
@@ -73,8 +69,8 @@
|
||||
+ inflate.h
|
||||
+ inftrees.h
|
||||
+ trees.h
|
||||
+ zutil.h
|
||||
+ )
|
||||
+ zutil.h)
|
||||
+
|
||||
+ set(ZLIB_SRCS
|
||||
+ adler32.c
|
||||
+ compress.c
|
||||
@@ -90,9 +86,8 @@
|
||||
+ inffast.c
|
||||
+ trees.c
|
||||
+ uncompr.c
|
||||
+ zutil.c
|
||||
+ )
|
||||
+ zutil.c)
|
||||
+endif()
|
||||
|
||||
if(NOT MINGW)
|
||||
set(ZLIB_DLL_SRCS
|
||||
if(WIN32)
|
||||
set(zlib_static_suffix "s")
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
--- a/zlib.pc.cmakein
|
||||
+++ b/zlib.pc.cmakein
|
||||
@@ -1,8 +1,8 @@
|
||||
prefix=@CMAKE_INSTALL_PREFIX@
|
||||
exec_prefix=@CMAKE_INSTALL_PREFIX@
|
||||
-libdir=@INSTALL_LIB_DIR@
|
||||
-sharedlibdir=@INSTALL_LIB_DIR@
|
||||
-includedir=@INSTALL_INC_DIR@
|
||||
+libdir=${exec_prefix}/lib
|
||||
+sharedlibdir=${exec_prefix}/lib
|
||||
+includedir=${prefix}/include
|
||||
|
||||
Name: zlib
|
||||
Description: zlib compression library
|
||||
@@ -354,10 +354,10 @@ function device_htmode_append(config) {
|
||||
config.vht_capab += '[BF-ANTENNA-' + min(((vht_capab >> 13) & 3) + 1, config.beamformer_antennas) + ']';
|
||||
|
||||
/* supported Channel widths */
|
||||
if ((vht_capab & 0xc) == 8 && config.vht160 <= 2)
|
||||
config.vht_capab += '[VHT160-80PLUS80]';
|
||||
else if ((vht_capab & 0xc) == 4 && config.vht160 <= 2)
|
||||
if (((vht_capab & 0xc) == 4 || (vht_capab & 0xc) == 8) && config.vht160 >= 1)
|
||||
config.vht_capab += '[VHT160]';
|
||||
if ((vht_capab & 0xc) == 8 && config.vht160 >= 2)
|
||||
config.vht_capab += '[VHT160-80PLUS80]';
|
||||
|
||||
/* maximum MPDU length */
|
||||
if ((vht_capab & 3) > 1 && config.vht_max_mpdu >= 11454)
|
||||
|
||||
@@ -12,9 +12,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcpd.git
|
||||
PKG_MIRROR_HASH:=89af53f1b6db61a5cc31eb39713f52eaa521e3ed3da12a742ad55b0bd8e5c248
|
||||
PKG_SOURCE_DATE:=2026-01-19
|
||||
PKG_SOURCE_VERSION:=13ef483716a504378b223d668c2482c93a804336
|
||||
PKG_MIRROR_HASH:=1d0008c049d98c7e663d59fe7285e9d4a47552df3806494fe0fdba4658829904
|
||||
PKG_SOURCE_DATE:=2026-03-16
|
||||
PKG_SOURCE_VERSION:=160e5fa3957cfd9d89f8ff7493f28a8baaf6ced7
|
||||
|
||||
PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@@ -12,9 +12,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/mdnsd.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2025-10-04
|
||||
PKG_SOURCE_VERSION:=2f75344fd0cc848558bf2ea3a94c0bf8b903ff89
|
||||
PKG_MIRROR_HASH:=ca03392a39e3e38b276514d4627bab25093cf873abf361352c82dfec0c4bdc93
|
||||
PKG_SOURCE_DATE:=2026-02-06
|
||||
PKG_SOURCE_VERSION:=a52cdb354d13c179150d2ba26f9f8a51d418b43d
|
||||
PKG_MIRROR_HASH:=64d6b454aefd208881a130ec0d503e690375565ed3de0171a8c70f5d1a4a25bf
|
||||
|
||||
PKG_MAINTAINER:=John Crispin <john@phrozen.org>
|
||||
PKG_LICENSE:=LGPL-2.1
|
||||
|
||||
@@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=iptables
|
||||
PKG_VERSION:=1.8.10
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE_URL:=https://netfilter.org/projects/iptables/files
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
@@ -144,6 +144,7 @@ $(call Package/iptables/Default)
|
||||
TITLE:=IP firewall administration tool nft
|
||||
DEPENDS:=+kmod-ipt-core +xtables-nft
|
||||
PROVIDES:=iptables
|
||||
DEFAULT_VARIANT:=1
|
||||
ALTERNATIVES:=\
|
||||
300:/usr/sbin/iptables:xtables-nft-multi \
|
||||
300:/usr/sbin/iptables-restore:xtables-nft-multi \
|
||||
@@ -489,6 +490,7 @@ $(call Package/iptables/Default)
|
||||
DEPENDS:=@IPV6 +kmod-ip6tables +xtables-nft
|
||||
TITLE:=IP firewall administration tool nft
|
||||
PROVIDES:=ip6tables
|
||||
DEFAULT_VARIANT:=1
|
||||
ALTERNATIVES:=\
|
||||
300:/usr/sbin/ip6tables:xtables-nft-multi \
|
||||
300:/usr/sbin/ip6tables-restore:xtables-nft-multi \
|
||||
|
||||
@@ -10,12 +10,12 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=wireguard-tools
|
||||
|
||||
PKG_VERSION:=1.0.20250521
|
||||
PKG_VERSION:=1.0.20260223
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=wireguard-tools-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=https://git.zx2c4.com/wireguard-tools/snapshot/
|
||||
PKG_HASH:=b6f2628b85b1b23cc06517ec9c74f82d52c4cdbd020f3dd2f00c972a1782950e
|
||||
PKG_HASH:=af459827b80bfd31b83b08077f4b5843acb7d18ad9a33a2ef532d3090f291fbf
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
PKG_LICENSE_FILES:=COPYING
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=apk
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE_URL=https://gitlab.alpinelinux.org/alpine/apk-tools.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
diff --git a/src/genhelp_apk.lua b/src/genhelp_apk.lua
|
||||
index a62e84d22ed5..a97264f6ab3c 100644
|
||||
--- a/src/genhelp_apk.lua
|
||||
+++ b/src/genhelp_apk.lua
|
||||
@@ -65,7 +65,7 @@ local function render_options(doc, out, options)
|
||||
@@ -65,7 +65,7 @@ local function render_options(doc, out,
|
||||
end
|
||||
|
||||
local function render_footer(doc, out)
|
||||
|
||||
@@ -46,3 +46,16 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
}
|
||||
|
||||
r = apk_solver_commit(db, 0, world);
|
||||
--- a/doc/apk-add.8.scd
|
||||
+++ b/doc/apk-add.8.scd
|
||||
@@ -30,6 +30,10 @@ To later upgrade or downgrade back to a
|
||||
*apk add* supports the commit options described in *apk*(8), as well as the
|
||||
following options:
|
||||
|
||||
+*--force-reinstall*
|
||||
+ Allow reinstalling already-installed packages without a version
|
||||
+ change. Only the named packages are reinstalled, not dependencies.
|
||||
+
|
||||
*--initdb*
|
||||
Initialize a new package database.
|
||||
|
||||
|
||||
@@ -12,9 +12,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
|
||||
PKG_MIRROR_HASH:=123c54964fd8048931002bd74181335dfcbff8ed949af2055e367e03180fe287
|
||||
PKG_SOURCE_DATE:=2026-02-20
|
||||
PKG_SOURCE_VERSION:=2881a59f304326cf0a71c849738d052ba317b4cb
|
||||
PKG_MIRROR_HASH:=8bd86938479609045e1ceebed904e4f5cb96fdb38220d41c3579b7e764fbb05b
|
||||
PKG_SOURCE_DATE:=2026-03-13
|
||||
PKG_SOURCE_VERSION:=58eb263d5abe03f8c1280bdfa65a3b052614215d
|
||||
CMAKE_INSTALL:=1
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@@ -5,9 +5,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/jsonpath.git
|
||||
PKG_SOURCE_DATE:=2025-10-04
|
||||
PKG_SOURCE_VERSION:=f4fe702d0e8d9f8704b42f5d5c10950470ada231
|
||||
PKG_MIRROR_HASH:=799b630107aedb5bfd4b0494af82843f803759324140cce89256b479124d5b1c
|
||||
PKG_SOURCE_DATE:=2026-03-16
|
||||
PKG_SOURCE_VERSION:=b9034210bd331749673416c6bf389cccd4e23610
|
||||
PKG_MIRROR_HASH:=e8616b3eee53c6dd3420a7d800337e13a61e1333dfbd8551b50ab15bafd94a0e
|
||||
CMAKE_INSTALL:=1
|
||||
|
||||
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
|
||||
|
||||
@@ -36,8 +36,9 @@ def add_artifact(artifact, prefix="openwrt-"):
|
||||
output[artifact] = {}
|
||||
for file in files:
|
||||
file = str(file.name)
|
||||
arch = re.match(r".*Linux-([^.]*)\.", file).group(1)
|
||||
output[artifact][arch] = file
|
||||
arch = re.match(r".*Linux-([^.]*)\.", file)
|
||||
if arch:
|
||||
output[artifact][arch.group(1)] = file
|
||||
|
||||
|
||||
for json_file in work_dir.glob("*.json"):
|
||||
|
||||
@@ -17,6 +17,8 @@ an7581_setup_interfaces()
|
||||
gemtek,w1700k-ubi)
|
||||
ucidef_set_interfaces_lan_wan "lan2 lan3 lan4" "wan"
|
||||
;;
|
||||
nokia,valyrian)
|
||||
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 10g" "wan"
|
||||
*)
|
||||
echo "Unsupported hardware. Network interfaces not initialized"
|
||||
;;
|
||||
|
||||
Regular → Executable
+2
-1
@@ -1,3 +1,4 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
#
|
||||
# Copyright (C) 2025 openwrt.org
|
||||
#
|
||||
@@ -14,7 +15,7 @@ find_nct7802()
|
||||
return
|
||||
fi
|
||||
done
|
||||
echo "/sys/class/hwmon/hwmon5" # fallback
|
||||
echo "/sys/class/hwmon/hwmon3" # fallback
|
||||
}
|
||||
|
||||
boot()
|
||||
|
||||
@@ -0,0 +1,539 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include "an7581.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Nokia Valyrian";
|
||||
compatible = "nokia,valyrian", "airoha,an7581", "airoha,en7581";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart1;
|
||||
led-boot = &led_status_white;
|
||||
led-failsafe = &led_status_red;
|
||||
led-running = &led_status_green;
|
||||
led-upgrade = &led_status_blue;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = "earlycon";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory@80000000 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x80000000 0x2 0x00000000>;
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
btn-0 {
|
||||
label = "reset";
|
||||
linux,code = <KEY_RESTART>;
|
||||
gpios = <&en7581_pinctrl 0 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
btn-1 {
|
||||
label = "wps";
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
gpios = <&en7581_pinctrl 13 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
btn-2 {
|
||||
label = "wifi";
|
||||
linux,code = <KEY_RFKILL>;
|
||||
gpios = <&en7581_pinctrl 16 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led_status_red: led-0 {
|
||||
function = LED_FUNCTION_STATUS;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
gpios = <&leds_shift_reg 0 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led_status_green: led-1 {
|
||||
function = LED_FUNCTION_STATUS;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&leds_shift_reg 1 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led_status_blue: led-2 {
|
||||
function = LED_FUNCTION_STATUS;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
gpios = <&leds_shift_reg 2 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led_status_white: led-3 {
|
||||
function = LED_FUNCTION_STATUS;
|
||||
color = <LED_COLOR_ID_WHITE>;
|
||||
gpios = <&leds_shift_reg 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-4 {
|
||||
function = LED_FUNCTION_POWER;
|
||||
color = <LED_COLOR_ID_AMBER>;
|
||||
gpios = <&leds_shift_reg 4 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-5 {
|
||||
function = LED_FUNCTION_POWER;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&leds_shift_reg 5 GPIO_ACTIVE_LOW>;
|
||||
default-state = "on";
|
||||
};
|
||||
|
||||
led-6 {
|
||||
function = LED_FUNCTION_POWER;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
gpios = <&leds_shift_reg 6 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-7 {
|
||||
function = LED_FUNCTION_MOBILE;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&leds_shift_reg 7 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-8 {
|
||||
function = LED_FUNCTION_WAN;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&leds_shift_reg 8 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-9 {
|
||||
function = LED_FUNCTION_WAN;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
gpios = <&leds_shift_reg 9 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
led-10 {
|
||||
function = LED_FUNCTION_USB;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&leds_shift_reg 10 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
sfp: sfp {
|
||||
compatible = "sff,sfp";
|
||||
|
||||
i2c-bus = <&i2c0>;
|
||||
|
||||
mod-def0-gpios = <&en7581_pinctrl 33 GPIO_ACTIVE_LOW>;
|
||||
los-gpios = <&en7581_pinctrl 36 GPIO_ACTIVE_HIGH>;
|
||||
tx-disable-gpios = <&en7581_pinctrl 41 GPIO_ACTIVE_HIGH>;
|
||||
tx-fault-gpios = <&en7581_pinctrl 40 GPIO_ACTIVE_HIGH>;
|
||||
maximum-power-milliwatt = <3000>;
|
||||
};
|
||||
|
||||
i2c-1 {
|
||||
compatible = "i2c-gpio";
|
||||
|
||||
sda-gpios = <&en7581_pinctrl 2 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
|
||||
scl-gpios = <&en7581_pinctrl 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
|
||||
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
adc@40 {
|
||||
compatible = "richtek,rtq6059";
|
||||
reg = <0x40>;
|
||||
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
spi-0 {
|
||||
compatible = "spi-gpio";
|
||||
|
||||
sck-gpios = <&en7581_pinctrl 4 GPIO_ACTIVE_HIGH>;
|
||||
mosi-gpios = <&en7581_pinctrl 3 GPIO_ACTIVE_HIGH>;
|
||||
cs-gpios = <&en7581_pinctrl 30 GPIO_ACTIVE_LOW>;
|
||||
|
||||
num-chipselects = <1>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
leds_shift_reg: gpio-expander@0 {
|
||||
compatible = "fairchild,74hc595";
|
||||
reg = <0>;
|
||||
|
||||
enable-gpios = <&en7581_pinctrl 14 GPIO_ACTIVE_LOW>;
|
||||
|
||||
gpio-controller;
|
||||
|
||||
registers-number = <2>;
|
||||
spi-max-frequency = <100000>;
|
||||
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&en7581_pinctrl {
|
||||
gpio-ranges = <&en7581_pinctrl 0 13 47>;
|
||||
|
||||
pcie1_rst_pins: pcie1-rst-pins {
|
||||
conf {
|
||||
pins = "pcie_reset1";
|
||||
drive-open-drain = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
pcie2_rst_pins: pcie2-rst-pins {
|
||||
conf {
|
||||
pins = "pcie_reset2";
|
||||
drive-open-drain = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
gswp1_led0_pins: gswp1-led1-pins {
|
||||
mux {
|
||||
function = "phy1_led0";
|
||||
pins = "gpio43";
|
||||
};
|
||||
};
|
||||
|
||||
gswp2_led0_pins: gswp2-led1-pins {
|
||||
mux {
|
||||
function = "phy2_led0";
|
||||
pins = "gpio44";
|
||||
};
|
||||
};
|
||||
|
||||
gswp3_led0_pins: gswp3-led1-pins {
|
||||
mux {
|
||||
function = "phy3_led0";
|
||||
pins = "gpio45";
|
||||
};
|
||||
};
|
||||
|
||||
mmc_pins: mmc-pins {
|
||||
mux {
|
||||
function = "emmc";
|
||||
groups = "emmc";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
pinctrl-names = "default", "state_uhs";
|
||||
pinctrl-0 = <&mmc_pins>;
|
||||
pinctrl-1 = <&mmc_pins>;
|
||||
status = "okay";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
card@0 {
|
||||
compatible = "mmc-card";
|
||||
reg = <0>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
bl@800 {
|
||||
label = "bl2";
|
||||
reg = <0x00000800 0x0001f800>;
|
||||
};
|
||||
|
||||
bootloader@20000 {
|
||||
label = "bootloader";
|
||||
reg = <0x00020000 0x000e0000>;
|
||||
};
|
||||
|
||||
bootloader-inactive@100000 {
|
||||
label = "bootloader-inactive";
|
||||
reg = <0x00100000 0x000e0000>;
|
||||
};
|
||||
|
||||
u-boot-env@1e0000 {
|
||||
label = "u-boot-env";
|
||||
reg = <0x001e0000 0x00020000>;
|
||||
|
||||
nvmem-layout {
|
||||
compatible = "u-boot,env-layout";
|
||||
};
|
||||
};
|
||||
|
||||
factory@200000 {
|
||||
label = "factory";
|
||||
reg = <0x00200000 0x00800000>;
|
||||
|
||||
nvmem-layout {
|
||||
compatible = "fixed-layout";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
eeprom_factory_0: eeprom@0 {
|
||||
reg = <0x40000 0x1e00>;
|
||||
};
|
||||
|
||||
mac_factory_2c0000: mac@2c0000 {
|
||||
compatible = "mac-base";
|
||||
reg = <0x2c0000 0x6>;
|
||||
|
||||
#nvmem-cell-cells = <1>;
|
||||
};
|
||||
|
||||
onu_type_factory_2e0000: onu_type@2e0000 {
|
||||
reg = <0x2e0000 0x10>;
|
||||
};
|
||||
|
||||
board_config_factory_2e0010: board_config@2e0010 {
|
||||
reg = <0x2e0010 0x8>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
mfgdata@a00000 {
|
||||
label = "mfgdata";
|
||||
reg = <0x00a00000 0x00100000>;
|
||||
};
|
||||
|
||||
kernel-active@b00000 {
|
||||
label = "kernel-active";
|
||||
reg = <0x00b00000 0x00800000>;
|
||||
};
|
||||
|
||||
kernel-inactive@1300000 {
|
||||
label = "kernel-inactive";
|
||||
reg = <0x01300000 0x00800000>;
|
||||
};
|
||||
|
||||
rootfs-active@1b00000 {
|
||||
label = "rootfs-active";
|
||||
reg = <0x01b00000 0x06400000>;
|
||||
};
|
||||
|
||||
rootfs-inactive@7f00000 {
|
||||
label = "rootfs-inactive";
|
||||
reg = <0x07f00000 0x06400000>;
|
||||
};
|
||||
|
||||
rootfs-data@e300000 {
|
||||
label = "rootfs_data";
|
||||
reg = <0x0e300000 0x02000000>;
|
||||
};
|
||||
|
||||
securestore@10300000 {
|
||||
label = "securestore";
|
||||
reg = <0x10300000 0x1000000>;
|
||||
};
|
||||
|
||||
lcm-data@11300000 {
|
||||
label = "lcm_data";
|
||||
reg = <0x11300000 0x40000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&usb0 {
|
||||
status = "okay";
|
||||
|
||||
mediatek,u3p-dis-msk = <0x1>;
|
||||
phys = <&usb0_phy PHY_TYPE_USB2>;
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pciephy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie1_rst_pins>;
|
||||
status = "okay";
|
||||
|
||||
pcie@0,0 {
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
|
||||
wifi@0,0 {
|
||||
compatible = "mediatek,mt76";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
|
||||
nvmem-cells = <&eeprom_factory_0>;
|
||||
nvmem-cell-names = "eeprom";
|
||||
|
||||
airoha,npu = <&npu>;
|
||||
airoha,eth = <ð>;
|
||||
|
||||
band@0 {
|
||||
/* 2.4 GHz */
|
||||
reg = <0>;
|
||||
nvmem-cells = <&mac_factory_2c0000 6>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
band@1 {
|
||||
/* 5 GHz */
|
||||
reg = <1>;
|
||||
nvmem-cells = <&mac_factory_2c0000 7>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
band@2 {
|
||||
/* 6 GHz */
|
||||
reg = <2>;
|
||||
nvmem-cells =<&mac_factory_2c0000 8>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pcie2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie2_rst_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ð {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gdm1 {
|
||||
status = "okay";
|
||||
|
||||
nvmem-cells = <&mac_factory_2c0000 3>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&mdio {
|
||||
as21xx: ethernet-phy@1c {
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
reg = <0x1c>;
|
||||
|
||||
firmware-name = "as21x1x_fw.bin";
|
||||
|
||||
reset-deassert-us = <1000000>;
|
||||
reset-assert-us = <1000000>;
|
||||
reset-gpios = <&en7581_pinctrl 31 GPIO_ACTIVE_LOW>;
|
||||
|
||||
leds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
led@0 {
|
||||
reg = <0>;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
default-state = "keep";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&switch {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pon_pcs {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gdm2 {
|
||||
status = "okay";
|
||||
|
||||
sfp = <&sfp>;
|
||||
|
||||
managed = "in-band-status";
|
||||
phy-mode = "usxgmii";
|
||||
|
||||
nvmem-cells = <&mac_factory_2c0000 4>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
openwrt,netdev-name = "wan";
|
||||
};
|
||||
|
||||
ð_pcs {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gdm4 {
|
||||
status = "okay";
|
||||
|
||||
managed = "in-band-status";
|
||||
phy-handle = <&as21xx>;
|
||||
phy-mode = "usxgmii";
|
||||
|
||||
nvmem-cells = <&mac_factory_2c0000 5>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
openwrt,netdev-name = "10g";
|
||||
};
|
||||
|
||||
&gsw_port1 {
|
||||
label = "lan1";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gsw_phy1 {
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gswp1_led0_pins>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gsw_phy1_led0 {
|
||||
function = LED_FUNCTION_LAN;
|
||||
active-low;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gsw_port2 {
|
||||
label = "lan2";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gsw_phy2 {
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gswp2_led0_pins>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gsw_phy2_led0 {
|
||||
function = LED_FUNCTION_LAN;
|
||||
active-low;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gsw_port3 {
|
||||
label = "lan3";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gsw_phy3 {
|
||||
pinctrl-names = "gbe-led";
|
||||
pinctrl-0 = <&gswp3_led0_pins>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gsw_phy3_led0 {
|
||||
function = LED_FUNCTION_LAN;
|
||||
active-low;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
@@ -104,3 +104,17 @@ define Device/gemtek_w1700k-ubi
|
||||
SOC := an7581
|
||||
endef
|
||||
TARGET_DEVICES += gemtek_w1700k-ubi
|
||||
|
||||
define Device/nokia_valyrian
|
||||
DEVICE_VENDOR := Nokia
|
||||
DEVICE_MODEL := Valyrian
|
||||
DEVICE_DTS := an7581-nokia-valyrian
|
||||
DEVICE_PACKAGES := kmod-spi-gpio kmod-gpio-nxp-74hc164 kmod-leds-gpio \
|
||||
kmod-i2c-an7581 kmod-i2c-gpio kmod-iio-richtek-rtq6056 \
|
||||
kmod-sfp kmod-phy-aeonsemi-as21xxx \
|
||||
kmod-mt7996-firmware
|
||||
ARTIFACT/preloader.bin := an7581-preloader nokia_valyrian
|
||||
ARTIFACT/bl31-uboot.fip := an7581-bl31-uboot nokia_valyrian
|
||||
ARTIFACTS := preloader.bin bl31-uboot.fip
|
||||
endef
|
||||
TARGET_DEVICES += nokia_valyrian
|
||||
|
||||
@@ -20,10 +20,10 @@ endef
|
||||
$(eval $(call KernelPackage,i2c-an7581))
|
||||
|
||||
|
||||
define KernelPackage/pwm-an7581
|
||||
define KernelPackage/pwm-airoha
|
||||
SUBMENU:=$(OTHER_MENU)
|
||||
TITLE:=Airoha EN7581 PWM
|
||||
DEPENDS:=@(TARGET_airoha_an7581)
|
||||
TITLE:=Airoha AN7581 and AN7583 PWM
|
||||
DEPENDS:=@TARGET_airoha_an7581||TARGET_airoha_an7583
|
||||
KCONFIG:= \
|
||||
CONFIG_PWM=y \
|
||||
CONFIG_PWM_AIROHA=y \
|
||||
@@ -33,10 +33,10 @@ define KernelPackage/pwm-an7581
|
||||
AUTOLOAD:=$(call AutoProbe,pwm-airoha)
|
||||
endef
|
||||
|
||||
define KernelPackage/pwm-an7581/description
|
||||
define KernelPackage/pwm-airoha/description
|
||||
Kernel module to use the PWM channel on Airoha SoC
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,pwm-an7581))
|
||||
$(eval $(call KernelPackage,pwm-airoha))
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
||||
|
||||
--- a/MAINTAINERS
|
||||
+++ b/MAINTAINERS
|
||||
@@ -18198,6 +18198,13 @@ F: drivers/pinctrl/
|
||||
@@ -18204,6 +18204,13 @@ F: drivers/pinctrl/
|
||||
F: include/dt-bindings/pinctrl/
|
||||
F: include/linux/pinctrl/
|
||||
|
||||
|
||||
+1
-1
@@ -107,7 +107,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
module_phy_driver(as21xxx_drivers);
|
||||
--- a/drivers/net/phy/phy_device.c
|
||||
+++ b/drivers/net/phy/phy_device.c
|
||||
@@ -2074,7 +2074,8 @@ void phy_detach(struct phy_device *phyde
|
||||
@@ -2069,7 +2069,8 @@ void phy_detach(struct phy_device *phyde
|
||||
device_release_driver(&phydev->mdio.dev);
|
||||
|
||||
/* Assert the reset signal */
|
||||
|
||||
+1
-3
@@ -13,11 +13,9 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
drivers/net/ethernet/airoha/airoha_npu.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/drivers/net/ethernet/airoha/airoha_npu.c b/drivers/net/ethernet/airoha/airoha_npu.c
|
||||
index 22f72c14606599..a56b3780bb627c 100644
|
||||
--- a/drivers/net/ethernet/airoha/airoha_npu.c
|
||||
+++ b/drivers/net/ethernet/airoha/airoha_npu.c
|
||||
@@ -519,6 +519,14 @@ static int airoha_npu_wlan_init_memory(struct airoha_npu *npu)
|
||||
@@ -519,6 +519,14 @@ static int airoha_npu_wlan_init_memory(s
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
|
||||
+5
-7
@@ -20,8 +20,6 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
drivers/net/ethernet/airoha/airoha_npu.c | 46 ++++++++++++++++++++----
|
||||
1 file changed, 40 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/ethernet/airoha/airoha_npu.c b/drivers/net/ethernet/airoha/airoha_npu.c
|
||||
index a56b3780bb627c..89f22f3f47dc56 100644
|
||||
--- a/drivers/net/ethernet/airoha/airoha_npu.c
|
||||
+++ b/drivers/net/ethernet/airoha/airoha_npu.c
|
||||
@@ -16,6 +16,8 @@
|
||||
@@ -33,7 +31,7 @@ index a56b3780bb627c..89f22f3f47dc56 100644
|
||||
#define NPU_AN7583_FIRMWARE_DATA "airoha/an7583_npu_data.bin"
|
||||
#define NPU_AN7583_FIRMWARE_RV32 "airoha/an7583_npu_rv32.bin"
|
||||
#define NPU_EN7581_FIRMWARE_RV32_MAX_SIZE 0x200000
|
||||
@@ -195,18 +197,18 @@ static int airoha_npu_send_msg(struct airoha_npu *npu, int func_id,
|
||||
@@ -195,18 +197,18 @@ static int airoha_npu_send_msg(struct ai
|
||||
}
|
||||
|
||||
static int airoha_npu_load_firmware(struct device *dev, void __iomem *addr,
|
||||
@@ -56,7 +54,7 @@ index a56b3780bb627c..89f22f3f47dc56 100644
|
||||
ret = -E2BIG;
|
||||
goto out;
|
||||
}
|
||||
@@ -218,6 +220,28 @@ static int airoha_npu_load_firmware(struct device *dev, void __iomem *addr,
|
||||
@@ -218,6 +220,28 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -83,9 +81,9 @@ index a56b3780bb627c..89f22f3f47dc56 100644
|
||||
+}
|
||||
+
|
||||
static int airoha_npu_run_firmware(struct device *dev, void __iomem *base,
|
||||
struct resource *res)
|
||||
struct reserved_mem *rmem)
|
||||
{
|
||||
@@ -233,14 +257,22 @@ static int airoha_npu_run_firmware(struct device *dev, void __iomem *base,
|
||||
@@ -233,14 +257,22 @@ static int airoha_npu_run_firmware(struc
|
||||
if (IS_ERR(addr))
|
||||
return PTR_ERR(addr);
|
||||
|
||||
@@ -110,7 +108,7 @@ index a56b3780bb627c..89f22f3f47dc56 100644
|
||||
}
|
||||
|
||||
static irqreturn_t airoha_npu_mbox_handler(int irq, void *npu_instance)
|
||||
@@ -790,6 +822,8 @@ module_platform_driver(airoha_npu_driver);
|
||||
@@ -791,6 +823,8 @@ module_platform_driver(airoha_npu_driver
|
||||
|
||||
MODULE_FIRMWARE(NPU_EN7581_FIRMWARE_DATA);
|
||||
MODULE_FIRMWARE(NPU_EN7581_FIRMWARE_RV32);
|
||||
|
||||
@@ -25,7 +25,7 @@ Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+&pcie0 {
|
||||
+&pcie_bridge0 {
|
||||
+ wifi@0,0 {
|
||||
+ reg = <0x0000 0 0 0 0>;
|
||||
+ compatible = "brcm,bcm43431";
|
||||
@@ -34,7 +34,7 @@ Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&pcie1 {
|
||||
+&pcie_bridge1 {
|
||||
+ wifi@0,0 {
|
||||
+ reg = <0x0000 0 0 0 0>;
|
||||
+ compatible = "brcm,bcm43431";
|
||||
@@ -43,7 +43,7 @@ Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&pcie2 {
|
||||
+&pcie_bridge2 {
|
||||
+ wifi@0,0 {
|
||||
+ reg = <0x0000 0 0 0 0>;
|
||||
+ compatible = "brcm,bcm43428";
|
||||
|
||||
@@ -310,7 +310,7 @@ static struct phy_driver rtk_phy_drivers[] = {
|
||||
module_phy_driver(rtk_phy_drivers);
|
||||
|
||||
|
||||
static struct mdio_device_id __maybe_unused rtk_phy_tbl[] = {
|
||||
static const struct mdio_device_id __maybe_unused rtk_phy_tbl[] = {
|
||||
{ PHY_ID_MATCH_EXACT(REALTEK_PHY_ID_RTL8261N) },
|
||||
{ PHY_ID_MATCH_EXACT(REALTEK_PHY_ID_RTL8264B) },
|
||||
{ PHY_ID_MATCH_EXACT(REALTEK_PHY_ID_RTL8264) },
|
||||
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
From 63161fb6353493c648a260244f6ac7eca65fd48e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jakub=20Van=C4=9Bk?= <linuxtardis@gmail.com>
|
||||
Date: Mon, 2 Mar 2026 20:31:37 +0100
|
||||
Subject: [PATCH] net: phy: Work around MDIO collisions in the YT8821 driver
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The Cudy M3000 router suffers from a MDIO bus collision:
|
||||
- The MT7981B internal gigabit PHY listens on address 0.
|
||||
- The Motorcomm YT8821 is strapped to listen on address 1,
|
||||
but it initially also listens on address 0 (Motorcomm
|
||||
incorrectly considers that address a broadcast address).
|
||||
|
||||
Without this patch, the YT8821 reacts to MDIO commands intended
|
||||
for the internal gigabit PHY and that makes it work unreliably.
|
||||
The YT8821 state somehow gets corrupted by the commands for the MT7981
|
||||
(e.g. we get 100Mbps speeds on gigabit links).
|
||||
|
||||
This dirty workaround resets the PHY to cancel out any earlier
|
||||
YT8821 register corruption and then it disables the address 0
|
||||
as soon as possible. This should make the YT8821 work reliably.
|
||||
|
||||
BEWARE though: the PHY will be reset only if the device tree
|
||||
node that defines the PHY carries the reset-gpios attribute.
|
||||
The PHY will not be reset if the reset GPIO is either on the MDIO
|
||||
bus node or is not defined at all. This might not always be a problem --
|
||||
some routers do not require the PHY to be reset (e.g. Cudy WR3000H,
|
||||
where there likely is less communication with the MT7981B PHY,
|
||||
and so the YT8821 PHY works reasonably well there even without this patch).
|
||||
|
||||
This patch also does not address the possible MDIO bus collisions
|
||||
when the MT7981B PHY driver initially configures that PHY and invokes
|
||||
some read transactions on the bus. I am hoping that the MT7981B MDIO
|
||||
bus controller gives priority to the internal PHY and so it would
|
||||
not be affected by these collisions. However, I don't have anything
|
||||
to base this on apart from it "seeming to be working okay".
|
||||
|
||||
This patch is unlikely to be mergeable into the mainline kernel.
|
||||
Upstream has strongly indicated that they would prefer this problem
|
||||
to be resolved by the platform bootloader (e.g. U-Boot), see
|
||||
- https://lore.kernel.org/all/d3bb9c36-5a0e-4339-901d-2dd21bdba395@gmail.com/
|
||||
- https://lore.kernel.org/all/20260228232241.1274236-1-linuxtardis@gmail.com/
|
||||
|
||||
Signed-off-by: Jakub Vaněk <linuxtardis@gmail.com>
|
||||
---
|
||||
drivers/net/phy/motorcomm.c | 20 ++++++++++++++++++++
|
||||
1 file changed, 20 insertions(+)
|
||||
|
||||
--- a/drivers/net/phy/motorcomm.c
|
||||
+++ b/drivers/net/phy/motorcomm.c
|
||||
@@ -214,6 +214,9 @@
|
||||
#define YT8521_RC1R_RGMII_2_100_NS 14
|
||||
#define YT8521_RC1R_RGMII_2_250_NS 15
|
||||
|
||||
+#define YTPHY_MDIO_ADDRESS_CONTROL_REG 0xA005
|
||||
+#define YTPHY_MACR_EN_PHY_ADDR_0 BIT(6)
|
||||
+
|
||||
#define YTPHY_MISC_CONFIG_REG 0xA006
|
||||
#define YTPHY_MCR_FIBER_SPEED_MASK BIT(0)
|
||||
#define YTPHY_MCR_FIBER_1000BX (0x1 << 0)
|
||||
@@ -2659,6 +2662,23 @@ static int yt8821_config_init(struct phy
|
||||
int ret;
|
||||
u16 set;
|
||||
|
||||
+ /* Hard-reset the PHY to clear out any register corruption
|
||||
+ * from preceding MDIO bus conflicts.
|
||||
+ */
|
||||
+ phy_device_reset(phydev, 1);
|
||||
+
|
||||
+ /* Deassert the reset GPIO under the MDIO bus lock to make
|
||||
+ * sure that nothing will communicate on the bus until we
|
||||
+ * disable the broadcast address in the YT8821.
|
||||
+ */
|
||||
+ phy_lock_mdio_bus(phydev);
|
||||
+ phy_device_reset(phydev, 0);
|
||||
+ ret = ytphy_modify_ext(phydev,
|
||||
+ YTPHY_MDIO_ADDRESS_CONTROL_REG,
|
||||
+ YTPHY_MACR_EN_PHY_ADDR_0,
|
||||
+ 0);
|
||||
+ phy_unlock_mdio_bus(phydev);
|
||||
+
|
||||
if (phydev->interface == PHY_INTERFACE_MODE_2500BASEX)
|
||||
mode = YT8821_CHIP_MODE_FORCE_BX2500;
|
||||
|
||||
@@ -108,11 +108,6 @@ CONFIG_MFD_ROHM_BD718XX=y
|
||||
# CONFIG_MMC_SDHCI_PCI is not set
|
||||
CONFIG_MODULES_USE_ELF_RELA=y
|
||||
CONFIG_NEED_SG_DMA_LENGTH=y
|
||||
# CONFIG_NET_DSA_MICROCHIP_KSZ8863_SMI is not set
|
||||
CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C=y
|
||||
CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON=y
|
||||
# CONFIG_NET_DSA_MICROCHIP_KSZ_SPI is not set
|
||||
CONFIG_NET_DSA_TAG_KSZ=y
|
||||
CONFIG_NOP_USB_XCEIV=y
|
||||
CONFIG_PARTITION_PERCPU=y
|
||||
CONFIG_PCI=y
|
||||
|
||||
@@ -74,7 +74,8 @@ define Device/gateworks_venice
|
||||
kmod-hwmon-gsc kmod-rtc-ds1672 kmod-eeprom-at24 \
|
||||
kmod-gpio-button-hotplug kmod-leds-gpio kmod-pps-gpio \
|
||||
kmod-lan743x kmod-sky2 kmod-iio-st_accel-i2c \
|
||||
kmod-can kmod-can-flexcan kmod-can-mcp251x
|
||||
kmod-can kmod-can-flexcan kmod-can-mcp251x \
|
||||
kmod-dsa-ksz9477-i2c
|
||||
IMAGES := img.gz
|
||||
IMAGE/img.gz := boot-scr | boot-img-ext4 | sdcard-img-ext4 | gzip | append-metadata
|
||||
endef
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
compatible = "pakedge,wr-1";
|
||||
|
||||
aliases {
|
||||
// TODO: Verify if the ethernet0 alias is needed
|
||||
ethernet0 = &gmac;
|
||||
label-mac-device = &gmac;
|
||||
led-boot = &led_power;
|
||||
@@ -46,14 +45,14 @@
|
||||
wlan2g {
|
||||
gpios = <&tlmm 1 GPIO_ACTIVE_LOW>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
function = LED_FUNCTION_WLAN;
|
||||
function = LED_FUNCTION_WLAN_2GHZ;
|
||||
linux,default-trigger = "phy0tpt";
|
||||
};
|
||||
|
||||
wlan5g {
|
||||
gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
function = LED_FUNCTION_WLAN;
|
||||
function = LED_FUNCTION_WLAN_5GHZ;
|
||||
linux,default-trigger = "phy1tpt";
|
||||
};
|
||||
};
|
||||
@@ -177,6 +176,80 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ðphy0 {
|
||||
leds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
led@1 {
|
||||
reg = <1>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
function-enumerator = <4>;
|
||||
default-state = "keep";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ðphy1 {
|
||||
leds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
led@1 {
|
||||
reg = <1>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
function-enumerator = <3>;
|
||||
default-state = "keep";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ðphy2 {
|
||||
leds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
led@1 {
|
||||
reg = <1>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
function-enumerator = <2>;
|
||||
default-state = "keep";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ðphy3 {
|
||||
leds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
led@1 {
|
||||
reg = <1>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
function = LED_FUNCTION_LAN;
|
||||
function-enumerator = <1>;
|
||||
default-state = "keep";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ðphy4 {
|
||||
leds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
led@1 {
|
||||
reg = <1>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
function = LED_FUNCTION_WAN;
|
||||
default-state = "keep";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&gmac {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -9,11 +9,6 @@
|
||||
model = "Luma Home WRTQ-329ACN";
|
||||
compatible = "luma,wrtq-329acn";
|
||||
|
||||
aliases {
|
||||
// TODO: Verify if the ethernet0 alias is needed
|
||||
ethernet0 = &gmac;
|
||||
};
|
||||
|
||||
i2c-gpio {
|
||||
compatible = "i2c-gpio";
|
||||
sda-gpios = <&tlmm 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
|
||||
|
||||
@@ -392,7 +392,6 @@ define Device/devolo_magic-2-wifi-next
|
||||
IMAGE_SIZE := 26624k
|
||||
IMAGES := sysupgrade.bin
|
||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
||||
DEFAULT := n
|
||||
endef
|
||||
TARGET_DEVICES += devolo_magic-2-wifi-next
|
||||
|
||||
|
||||
@@ -314,7 +314,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
stp: stp@e100bb0 {
|
||||
stp: gpio@e100bb0 {
|
||||
#gpio-cells = <2>;
|
||||
compatible = "lantiq,gpio-stp-xway";
|
||||
gpio-controller;
|
||||
|
||||
@@ -354,7 +354,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
stp: stp@e100bb0 {
|
||||
stp: gpio@e100bb0 {
|
||||
status = "disabled";
|
||||
compatible = "lantiq,gpio-stp-xway";
|
||||
reg = <0xe100bb0 0x40>;
|
||||
|
||||
@@ -2,6 +2,7 @@ set_preinit_iface() {
|
||||
case $(board_name) in
|
||||
bazis,ax3000wm|\
|
||||
cudy,m3000-v1|\
|
||||
cudy,m3000-v2-yt8821|\
|
||||
cudy,tr3000-256mb-v1|\
|
||||
cudy,tr3000-v1|\
|
||||
cudy,tr3000-v1-ubootmod|\
|
||||
|
||||
@@ -2,106 +2,15 @@
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "mt7981b.dtsi"
|
||||
#include "mt7981b-cudy-m3000.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Cudy M3000 v1";
|
||||
model = "Cudy M3000 v1/v2";
|
||||
compatible = "cudy,m3000-v1", "mediatek,mt7981";
|
||||
|
||||
aliases {
|
||||
label-mac-device = &gmac0;
|
||||
led-boot = &led_status;
|
||||
led-failsafe = &led_status;
|
||||
led-running = &led_status;
|
||||
led-upgrade = &led_status;
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
gpios = <&pio 1 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_RESTART>;
|
||||
};
|
||||
|
||||
wps {
|
||||
label = "wps";
|
||||
gpios = <&pio 0 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led_status: internet-white {
|
||||
function = LED_FUNCTION_WAN_ONLINE;
|
||||
color = <LED_COLOR_ID_WHITE>;
|
||||
gpios = <&pio 10 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
internet-red {
|
||||
function = LED_FUNCTION_WAN_ONLINE;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
gpios = <&pio 4 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wan {
|
||||
function = LED_FUNCTION_WAN;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&pio 5 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
lan {
|
||||
function = LED_FUNCTION_LAN;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&pio 9 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&watchdog {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ð {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mdio_pins>;
|
||||
status = "okay";
|
||||
|
||||
gmac0: mac@0 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <0>;
|
||||
phy-mode = "2500base-x";
|
||||
phy-handle = <&rtl8221b_phy>;
|
||||
|
||||
nvmem-cell-names = "mac-address";
|
||||
nvmem-cells = <&macaddr_bdinfo_de00 0>;
|
||||
};
|
||||
|
||||
gmac1: mac@1 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <1>;
|
||||
phy-mode = "gmii";
|
||||
phy-handle = <&int_gbe_phy>;
|
||||
|
||||
nvmem-cell-names = "mac-address";
|
||||
nvmem-cells = <&macaddr_bdinfo_de00 1>;
|
||||
};
|
||||
};
|
||||
|
||||
&mdio_bus {
|
||||
rtl8221b_phy: ethernet-phy@1 {
|
||||
wan_phy: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
reg = <1>;
|
||||
reset-assert-us = <100000>;
|
||||
@@ -111,100 +20,3 @@
|
||||
interrupt-parent = <&pio>;
|
||||
};
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_flash_pins>;
|
||||
status = "okay";
|
||||
|
||||
spi_nand: spi_nand@0 {
|
||||
compatible = "spi-nand";
|
||||
reg = <0>;
|
||||
|
||||
spi-max-frequency = <52000000>;
|
||||
spi-tx-bus-width = <4>;
|
||||
spi-rx-bus-width = <4>;
|
||||
|
||||
mediatek,nmbm;
|
||||
mediatek,bmt-max-ratio = <1>;
|
||||
mediatek,bmt-max-reserved-blocks = <64>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "BL2";
|
||||
reg = <0x0000000 0x0100000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@100000 {
|
||||
label = "u-boot-env";
|
||||
reg = <0x0100000 0x0080000>;
|
||||
};
|
||||
|
||||
factory: partition@180000 {
|
||||
label = "Factory";
|
||||
reg = <0x0180000 0x0200000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
bdinfo: partition@380000 {
|
||||
label = "bdinfo";
|
||||
reg = <0x0380000 0x0040000>;
|
||||
read-only;
|
||||
|
||||
nvmem-layout {
|
||||
compatible = "fixed-layout";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_bdinfo_de00: macaddr@de00 {
|
||||
#nvmem-cell-cells = <1>;
|
||||
compatible = "mac-base";
|
||||
reg = <0xde00 0x6>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
partition@3c0000 {
|
||||
label = "FIP";
|
||||
reg = <0x03c0000 0x0200000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@5c0000 {
|
||||
label = "ubi";
|
||||
reg = <0x05c0000 0x4000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pio {
|
||||
spi0_flash_pins: spi0-pins {
|
||||
mux {
|
||||
function = "spi";
|
||||
groups = "spi0", "spi0_wp_hold";
|
||||
};
|
||||
|
||||
conf-pu {
|
||||
pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
|
||||
drive-strength = <MTK_DRIVE_8mA>;
|
||||
bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
|
||||
};
|
||||
|
||||
conf-pd {
|
||||
pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
|
||||
drive-strength = <MTK_DRIVE_8mA>;
|
||||
bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&wifi {
|
||||
status = "okay";
|
||||
mediatek,mtd-eeprom = <&factory 0x0>;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "mt7981b-cudy-m3000.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Cudy M3000 v2 with Motorcomm YT8821";
|
||||
compatible = "cudy,m3000-v2-yt8821", "mediatek,mt7981";
|
||||
};
|
||||
|
||||
&mdio_bus {
|
||||
wan_phy: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-id4f51.ea19";
|
||||
reg = <1>;
|
||||
reset-assert-us = <100000>;
|
||||
reset-deassert-us = <100000>;
|
||||
reset-gpios = <&pio 39 GPIO_ACTIVE_LOW>;
|
||||
interrupts = <38 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-parent = <&pio>;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,195 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "mt7981b.dtsi"
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
label-mac-device = &gmac0;
|
||||
led-boot = &led_status;
|
||||
led-failsafe = &led_status;
|
||||
led-running = &led_status;
|
||||
led-upgrade = &led_status;
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
gpios = <&pio 1 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_RESTART>;
|
||||
};
|
||||
|
||||
wps {
|
||||
label = "wps";
|
||||
gpios = <&pio 0 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led_status: internet-white {
|
||||
function = LED_FUNCTION_WAN_ONLINE;
|
||||
color = <LED_COLOR_ID_WHITE>;
|
||||
gpios = <&pio 10 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
internet-red {
|
||||
function = LED_FUNCTION_WAN_ONLINE;
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
gpios = <&pio 4 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wan {
|
||||
function = LED_FUNCTION_WAN;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&pio 5 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
lan {
|
||||
function = LED_FUNCTION_LAN;
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
gpios = <&pio 9 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&watchdog {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ð {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mdio_pins>;
|
||||
status = "okay";
|
||||
|
||||
gmac0: mac@0 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <0>;
|
||||
phy-mode = "2500base-x";
|
||||
phy-handle = <&wan_phy>;
|
||||
|
||||
nvmem-cell-names = "mac-address";
|
||||
nvmem-cells = <&macaddr_bdinfo_de00 0>;
|
||||
};
|
||||
|
||||
gmac1: mac@1 {
|
||||
compatible = "mediatek,eth-mac";
|
||||
reg = <1>;
|
||||
phy-mode = "gmii";
|
||||
phy-handle = <&int_gbe_phy>;
|
||||
|
||||
nvmem-cell-names = "mac-address";
|
||||
nvmem-cells = <&macaddr_bdinfo_de00 1>;
|
||||
};
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_flash_pins>;
|
||||
status = "okay";
|
||||
|
||||
spi_nand: spi_nand@0 {
|
||||
compatible = "spi-nand";
|
||||
reg = <0>;
|
||||
|
||||
spi-max-frequency = <52000000>;
|
||||
spi-tx-bus-width = <4>;
|
||||
spi-rx-bus-width = <4>;
|
||||
|
||||
mediatek,nmbm;
|
||||
mediatek,bmt-max-ratio = <1>;
|
||||
mediatek,bmt-max-reserved-blocks = <64>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "BL2";
|
||||
reg = <0x0000000 0x0100000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@100000 {
|
||||
label = "u-boot-env";
|
||||
reg = <0x0100000 0x0080000>;
|
||||
};
|
||||
|
||||
factory: partition@180000 {
|
||||
label = "Factory";
|
||||
reg = <0x0180000 0x0200000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
bdinfo: partition@380000 {
|
||||
label = "bdinfo";
|
||||
reg = <0x0380000 0x0040000>;
|
||||
read-only;
|
||||
|
||||
nvmem-layout {
|
||||
compatible = "fixed-layout";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_bdinfo_de00: macaddr@de00 {
|
||||
#nvmem-cell-cells = <1>;
|
||||
compatible = "mac-base";
|
||||
reg = <0xde00 0x6>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
partition@3c0000 {
|
||||
label = "FIP";
|
||||
reg = <0x03c0000 0x0200000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@5c0000 {
|
||||
label = "ubi";
|
||||
reg = <0x05c0000 0x4000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pio {
|
||||
spi0_flash_pins: spi0-pins {
|
||||
mux {
|
||||
function = "spi";
|
||||
groups = "spi0", "spi0_wp_hold";
|
||||
};
|
||||
|
||||
conf-pu {
|
||||
pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
|
||||
drive-strength = <MTK_DRIVE_8mA>;
|
||||
bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
|
||||
};
|
||||
|
||||
conf-pd {
|
||||
pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
|
||||
drive-strength = <MTK_DRIVE_8mA>;
|
||||
bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&wifi {
|
||||
status = "okay";
|
||||
mediatek,mtd-eeprom = <&factory 0x0>;
|
||||
};
|
||||
@@ -27,7 +27,7 @@
|
||||
};
|
||||
|
||||
memory@40000000 {
|
||||
reg = <0x0 0x40000000 0x0 0x40000000>;
|
||||
reg = <0x0 0x40000000 0x0 0x20000000>;
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
@@ -69,6 +69,12 @@
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
gpios = <&pio 14 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wifi {
|
||||
label = "wlan";
|
||||
linux,code = <KEY_WLAN>;
|
||||
gpios = <&pio 34 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
gpio-leds {
|
||||
@@ -121,7 +127,7 @@
|
||||
gpios = <&pio 68 GPIO_ACTIVE_HIGH>;
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
function = LED_FUNCTION_USB;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -148,7 +154,6 @@
|
||||
|
||||
spi_nand: spi_nand@0 {
|
||||
compatible = "spi-nand";
|
||||
|
||||
reg = <0>;
|
||||
|
||||
spi-cal-addr = /bits/ 32 <0x0 0x0 0x0 0x0 0x0>;
|
||||
@@ -156,7 +161,7 @@
|
||||
spi-cal-data = /bits/ 8 <0x53 0x50 0x49 0x4E 0x41 0x4E 0x44>;
|
||||
spi-cal-datalen = <7>;
|
||||
spi-cal-enable;
|
||||
spi-cal-mode = "read-data";
|
||||
spi-cal-mode = "read-data";
|
||||
|
||||
spi-max-frequency = <52000000>;
|
||||
spi-rx-bus-width = <4>;
|
||||
@@ -240,7 +245,7 @@
|
||||
|
||||
reset-gpios = <&pio 3 GPIO_ACTIVE_LOW>;
|
||||
reset-assert-us = <100000>;
|
||||
reset-deassert-us = <100000>;
|
||||
reset-deassert-us = <221000>;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -323,8 +328,8 @@
|
||||
|
||||
&pio {
|
||||
button_pins: button-pins {
|
||||
pins = "GPIO_RESET", "GPIO_WPS";
|
||||
bias-disable; /* bias-disable */
|
||||
pins = "GPIO_RESET", "GPIO_WPS", "SPI2_MISO";
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
mdio0_pins: mdio0-pins {
|
||||
@@ -361,11 +366,11 @@
|
||||
};
|
||||
|
||||
enable-usb-power {
|
||||
gpio-hog;
|
||||
gpios = <32 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
line-name = "USB power";
|
||||
};
|
||||
gpio-hog;
|
||||
gpios = <32 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
line-name = "USB power";
|
||||
};
|
||||
};
|
||||
|
||||
&ssusb1 {
|
||||
|
||||
@@ -255,7 +255,7 @@ static struct phy_driver an8855_driver[] = {
|
||||
|
||||
module_phy_driver(an8855_driver);
|
||||
|
||||
static struct mdio_device_id __maybe_unused an8855_tbl[] = {
|
||||
static const struct mdio_device_id __maybe_unused an8855_tbl[] = {
|
||||
{ PHY_ID_MATCH_EXACT(AN8855_PHY_ID) },
|
||||
{ }
|
||||
};
|
||||
|
||||
@@ -1109,7 +1109,7 @@ static struct phy_driver Airoha_driver[] = {
|
||||
|
||||
module_phy_driver(Airoha_driver);
|
||||
|
||||
static struct mdio_device_id __maybe_unused Airoha_tbl[] = {
|
||||
static const struct mdio_device_id __maybe_unused Airoha_tbl[] = {
|
||||
{ EN8801SC_PHY_ID, 0x0ffffff0 },
|
||||
{ }
|
||||
};
|
||||
|
||||
@@ -135,6 +135,7 @@ mediatek_setup_interfaces()
|
||||
;;
|
||||
bazis,ax3000wm|\
|
||||
cudy,m3000-v1|\
|
||||
cudy,m3000-v2-yt8821|\
|
||||
cudy,tr3000-256mb-v1|\
|
||||
cudy,tr3000-v1|\
|
||||
cudy,tr3000-v1-ubootmod|\
|
||||
|
||||
@@ -83,6 +83,7 @@ case "$board" in
|
||||
cudy,ap3000wall-v1|\
|
||||
cudy,ap3000-v1|\
|
||||
cudy,m3000-v1|\
|
||||
cudy,m3000-v2-yt8821|\
|
||||
cudy,re3000-v1|\
|
||||
cudy,tr3000-256mb-v1|\
|
||||
cudy,tr3000-v1|\
|
||||
|
||||
@@ -1190,7 +1190,7 @@ TARGET_DEVICES += cudy_ap3000-v1
|
||||
define Device/cudy_m3000-v1
|
||||
DEVICE_VENDOR := Cudy
|
||||
DEVICE_MODEL := M3000
|
||||
DEVICE_VARIANT := v1
|
||||
DEVICE_VARIANT := v1/v2
|
||||
DEVICE_DTS := mt7981b-cudy-m3000-v1
|
||||
DEVICE_DTS_DIR := ../dts
|
||||
SUPPORTED_DEVICES += R37
|
||||
@@ -1209,6 +1209,28 @@ define Device/cudy_m3000-v1
|
||||
endef
|
||||
TARGET_DEVICES += cudy_m3000-v1
|
||||
|
||||
define Device/cudy_m3000-v2-yt8821
|
||||
DEVICE_VENDOR := Cudy
|
||||
DEVICE_MODEL := M3000
|
||||
DEVICE_VARIANT := v2 with Motorcomm YT8821
|
||||
DEVICE_DTS := mt7981b-cudy-m3000-v2-yt8821
|
||||
DEVICE_DTS_DIR := ../dts
|
||||
SUPPORTED_DEVICES += R37
|
||||
DEVICE_DTS_LOADADDR := 0x44000000
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
IMAGE_SIZE := 65536k
|
||||
KERNEL_IN_UBI := 1
|
||||
KERNEL := kernel-bin | lzma | \
|
||||
fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
|
||||
KERNEL_INITRAMFS := kernel-bin | lzma | \
|
||||
fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
|
||||
IMAGES := sysupgrade.bin
|
||||
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
||||
DEVICE_PACKAGES := kmod-mt7915e kmod-mt7981-firmware mt7981-wo-firmware kmod-phy-motorcomm
|
||||
endef
|
||||
TARGET_DEVICES += cudy_m3000-v2-yt8821
|
||||
|
||||
define Device/cudy_re3000-v1
|
||||
DEVICE_VENDOR := Cudy
|
||||
DEVICE_MODEL := RE3000
|
||||
|
||||
+4
-3
@@ -1,14 +1,15 @@
|
||||
From 1861c63ba7bb7f8a5145d4ceabcf346f274da61f Mon Sep 17 00:00:00 2001
|
||||
From 2400b24dfecea9a628f63089bf7eeb9a43b91021 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 22 Apr 2025 15:24:30 +0200
|
||||
Subject: [PATCH 28/32] arm64: dts: mediatek: mt7988: Add xsphy for
|
||||
ssusb0/pcie2
|
||||
Subject: [PATCH 28/32] arm64: dts: mediatek: mt7988: Add xsphy for ssusb0/pcie2
|
||||
|
||||
First usb and third pcie controller on mt7988 need a xs-phy to work
|
||||
properly.
|
||||
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Link: https://lore.kernel.org/r/20250422132438.15735-8-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 36 +++++++++++++++++++++++
|
||||
1 file changed, 36 insertions(+)
|
||||
+3
-1
@@ -1,4 +1,4 @@
|
||||
From d326d21a44fbc48663840316c35524002029fbb1 Mon Sep 17 00:00:00 2001
|
||||
From bb5872c4b6cb0a8687b424b9970b2c3cca2ededd Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Tue, 22 Apr 2025 15:24:31 +0200
|
||||
Subject: [PATCH 29/32] arm64: dts: mediatek: mt7988a-bpi-r4: enable xsphy
|
||||
@@ -7,6 +7,8 @@ Enable XS-Phy on Bananapi R4 for pcie2.
|
||||
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Link: https://lore.kernel.org/r/20250422132438.15735-9-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 4 ++++
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 2 +-
|
||||
-112
@@ -1,112 +0,0 @@
|
||||
From patchwork Sun May 11 14:19:20 2025
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Frank Wunderlich <linux@fw-web.de>
|
||||
X-Patchwork-Id: 14084127
|
||||
From: Frank Wunderlich <linux@fw-web.de>
|
||||
To: Andrew Lunn <andrew@lunn.ch>,
|
||||
Vladimir Oltean <olteanv@gmail.com>,
|
||||
"David S. Miller" <davem@davemloft.net>,
|
||||
Eric Dumazet <edumazet@google.com>,
|
||||
Jakub Kicinski <kuba@kernel.org>,
|
||||
Paolo Abeni <pabeni@redhat.com>,
|
||||
Rob Herring <robh@kernel.org>,
|
||||
Krzysztof Kozlowski <krzk+dt@kernel.org>,
|
||||
Conor Dooley <conor+dt@kernel.org>,
|
||||
Matthias Brugger <matthias.bgg@gmail.com>,
|
||||
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Subject: [PATCH v1 04/14] arm64: dts: mediatek: mt7988: add spi controllers
|
||||
Date: Sun, 11 May 2025 16:19:20 +0200
|
||||
Message-ID: <20250511141942.10284-5-linux@fw-web.de>
|
||||
X-Mailer: git-send-email 2.43.0
|
||||
In-Reply-To: <20250511141942.10284-1-linux@fw-web.de>
|
||||
References: <20250511141942.10284-1-linux@fw-web.de>
|
||||
MIME-Version: 1.0
|
||||
X-Mail-ID: 5110cbfc-28b8-49e4-b9da-560d0bd630a5
|
||||
X-BeenThere: linux-mediatek@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.34
|
||||
Precedence: list
|
||||
List-Id: <linux-mediatek.lists.infradead.org>
|
||||
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/linux-mediatek/>
|
||||
List-Post: <mailto:linux-mediatek@lists.infradead.org>
|
||||
List-Help: <mailto:linux-mediatek-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=subscribe>
|
||||
Cc: devicetree@vger.kernel.org, Landen Chao <Landen.Chao@mediatek.com>,
|
||||
=?utf-8?b?QXLEsW7DpyDDnE5BTA==?= <arinc.unal@arinc9.com>,
|
||||
netdev@vger.kernel.org, Sean Wang <sean.wang@mediatek.com>,
|
||||
Daniel Golle <daniel@makrotopia.org>, linux-kernel@vger.kernel.org,
|
||||
DENG Qingfang <dqfext@gmail.com>, linux-mediatek@lists.infradead.org,
|
||||
Lorenzo Bianconi <lorenzo@kernel.org>, linux-arm-kernel@lists.infradead.org,
|
||||
Felix Fietkau <nbd@nbd.name>
|
||||
Sender: "Linux-mediatek" <linux-mediatek-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org
|
||||
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
|
||||
Add SPI controllers for mt7988.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 45 +++++++++++++++++++++++
|
||||
1 file changed, 45 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -311,6 +311,51 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+ spi0: spi@11007000 {
|
||||
+ compatible = "mediatek,mt7988-spi-quad", "mediatek,spi-ipm";
|
||||
+ reg = <0 0x11007000 0 0x100>;
|
||||
+ interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&topckgen CLK_TOP_MPLL_D2>,
|
||||
+ <&topckgen CLK_TOP_SPI_SEL>,
|
||||
+ <&infracfg CLK_INFRA_104M_SPI0>,
|
||||
+ <&infracfg CLK_INFRA_66M_SPI0_HCK>;
|
||||
+ clock-names = "parent-clk", "sel-clk", "spi-clk",
|
||||
+ "hclk";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ spi1: spi@11008000 {
|
||||
+ compatible = "mediatek,mt7988-spi-single", "mediatek,spi-ipm";
|
||||
+ reg = <0 0x11008000 0 0x100>;
|
||||
+ interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&topckgen CLK_TOP_MPLL_D2>,
|
||||
+ <&topckgen CLK_TOP_SPIM_MST_SEL>,
|
||||
+ <&infracfg CLK_INFRA_104M_SPI1>,
|
||||
+ <&infracfg CLK_INFRA_66M_SPI1_HCK>;
|
||||
+ clock-names = "parent-clk", "sel-clk", "spi-clk",
|
||||
+ "hclk";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ spi2: spi@11009000 {
|
||||
+ compatible = "mediatek,mt7988-spi-quad", "mediatek,spi-ipm";
|
||||
+ reg = <0 0x11009000 0 0x100>;
|
||||
+ interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&topckgen CLK_TOP_MPLL_D2>,
|
||||
+ <&topckgen CLK_TOP_SPI_SEL>,
|
||||
+ <&infracfg CLK_INFRA_104M_SPI2_BCK>,
|
||||
+ <&infracfg CLK_INFRA_66M_SPI2_HCK>;
|
||||
+ clock-names = "parent-clk", "sel-clk", "spi-clk",
|
||||
+ "hclk";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
lvts: lvts@1100a000 {
|
||||
compatible = "mediatek,mt7988-lvts-ap";
|
||||
#thermal-sensor-cells = <1>;
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
From bf7c2ce439ca811dc1697b4bc19ab57bd8f13be3 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Fri, 16 May 2025 20:01:35 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7988: add spi controllers
|
||||
|
||||
Add SPI controllers for mt7988.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Link: https://lore.kernel.org/r/20250516180147.10416-6-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 45 +++++++++++++++++++++++
|
||||
1 file changed, 45 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -311,6 +311,51 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+ spi0: spi@11007000 {
|
||||
+ compatible = "mediatek,mt7988-spi-quad", "mediatek,spi-ipm";
|
||||
+ reg = <0 0x11007000 0 0x100>;
|
||||
+ interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&topckgen CLK_TOP_MPLL_D2>,
|
||||
+ <&topckgen CLK_TOP_SPI_SEL>,
|
||||
+ <&infracfg CLK_INFRA_104M_SPI0>,
|
||||
+ <&infracfg CLK_INFRA_66M_SPI0_HCK>;
|
||||
+ clock-names = "parent-clk", "sel-clk", "spi-clk",
|
||||
+ "hclk";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ spi1: spi@11008000 {
|
||||
+ compatible = "mediatek,mt7988-spi-single", "mediatek,spi-ipm";
|
||||
+ reg = <0 0x11008000 0 0x100>;
|
||||
+ interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&topckgen CLK_TOP_MPLL_D2>,
|
||||
+ <&topckgen CLK_TOP_SPIM_MST_SEL>,
|
||||
+ <&infracfg CLK_INFRA_104M_SPI1>,
|
||||
+ <&infracfg CLK_INFRA_66M_SPI1_HCK>;
|
||||
+ clock-names = "parent-clk", "sel-clk", "spi-clk",
|
||||
+ "hclk";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ spi2: spi@11009000 {
|
||||
+ compatible = "mediatek,mt7988-spi-quad", "mediatek,spi-ipm";
|
||||
+ reg = <0 0x11009000 0 0x100>;
|
||||
+ interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&topckgen CLK_TOP_MPLL_D2>,
|
||||
+ <&topckgen CLK_TOP_SPI_SEL>,
|
||||
+ <&infracfg CLK_INFRA_104M_SPI2_BCK>,
|
||||
+ <&infracfg CLK_INFRA_66M_SPI2_HCK>;
|
||||
+ clock-names = "parent-clk", "sel-clk", "spi-clk",
|
||||
+ "hclk";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
lvts: lvts@1100a000 {
|
||||
compatible = "mediatek,mt7988-lvts-ap";
|
||||
#thermal-sensor-cells = <1>;
|
||||
-133
@@ -1,133 +0,0 @@
|
||||
From patchwork Sun May 11 14:19:21 2025
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Frank Wunderlich <linux@fw-web.de>
|
||||
X-Patchwork-Id: 14084155
|
||||
From: Frank Wunderlich <linux@fw-web.de>
|
||||
To: Andrew Lunn <andrew@lunn.ch>,
|
||||
Vladimir Oltean <olteanv@gmail.com>,
|
||||
"David S. Miller" <davem@davemloft.net>,
|
||||
Eric Dumazet <edumazet@google.com>,
|
||||
Jakub Kicinski <kuba@kernel.org>,
|
||||
Paolo Abeni <pabeni@redhat.com>,
|
||||
Rob Herring <robh@kernel.org>,
|
||||
Krzysztof Kozlowski <krzk+dt@kernel.org>,
|
||||
Conor Dooley <conor+dt@kernel.org>,
|
||||
Matthias Brugger <matthias.bgg@gmail.com>,
|
||||
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Subject: [PATCH v1 05/14] arm64: dts: mediatek: mt7988: move uart0 and spi1
|
||||
pins to soc dtsi
|
||||
Date: Sun, 11 May 2025 16:19:21 +0200
|
||||
Message-ID: <20250511141942.10284-6-linux@fw-web.de>
|
||||
X-Mailer: git-send-email 2.43.0
|
||||
In-Reply-To: <20250511141942.10284-1-linux@fw-web.de>
|
||||
References: <20250511141942.10284-1-linux@fw-web.de>
|
||||
MIME-Version: 1.0
|
||||
X-Mail-ID: 730e5bd4-362e-4c00-a35e-0ec77e8f4691
|
||||
X-BeenThere: linux-mediatek@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.34
|
||||
Precedence: list
|
||||
List-Id: <linux-mediatek.lists.infradead.org>
|
||||
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/linux-mediatek/>
|
||||
List-Post: <mailto:linux-mediatek@lists.infradead.org>
|
||||
List-Help: <mailto:linux-mediatek-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=subscribe>
|
||||
Cc: devicetree@vger.kernel.org, Landen Chao <Landen.Chao@mediatek.com>,
|
||||
=?utf-8?b?QXLEsW7DpyDDnE5BTA==?= <arinc.unal@arinc9.com>,
|
||||
netdev@vger.kernel.org, Sean Wang <sean.wang@mediatek.com>,
|
||||
Daniel Golle <daniel@makrotopia.org>, linux-kernel@vger.kernel.org,
|
||||
DENG Qingfang <dqfext@gmail.com>, linux-mediatek@lists.infradead.org,
|
||||
Lorenzo Bianconi <lorenzo@kernel.org>, linux-arm-kernel@lists.infradead.org,
|
||||
Felix Fietkau <nbd@nbd.name>
|
||||
Sender: "Linux-mediatek" <linux-mediatek-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org
|
||||
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
|
||||
In order to use uart0 or spi1 there is only 1 possible pin definition
|
||||
so move them to soc dtsi to reuse them in other boards and avoiding
|
||||
conflict if defined twice.
|
||||
|
||||
Suggested-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 14 --------------
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 18 ++++++++++++++++++
|
||||
2 files changed, 18 insertions(+), 14 deletions(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -328,13 +328,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
- uart0_pins: uart0-pins {
|
||||
- mux {
|
||||
- function = "uart";
|
||||
- groups = "uart0";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
snfi_pins: snfi-pins {
|
||||
mux {
|
||||
function = "flash";
|
||||
@@ -356,13 +349,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
- spi1_pins: spi1-pins {
|
||||
- mux {
|
||||
- function = "spi";
|
||||
- groups = "spi1";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
spi2_pins: spi2-pins {
|
||||
mux {
|
||||
function = "spi";
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -209,6 +209,20 @@
|
||||
"pcie_wake_n3_0";
|
||||
};
|
||||
};
|
||||
+
|
||||
+ spi1_pins: spi1-pins {
|
||||
+ mux {
|
||||
+ function = "spi";
|
||||
+ groups = "spi1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ uart0_pins: uart0-pins {
|
||||
+ mux {
|
||||
+ function = "uart";
|
||||
+ groups = "uart0";
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
pwm: pwm@10048000 {
|
||||
@@ -244,6 +258,8 @@
|
||||
clocks = <&topckgen CLK_TOP_UART_SEL>,
|
||||
<&infracfg CLK_INFRA_52M_UART0_CK>;
|
||||
clock-names = "baud", "bus";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart0_pins>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -338,6 +354,8 @@
|
||||
"hclk";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&spi1_pins>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
From b9ebd166b006f77cef4530b4bf4a291a112da4f2 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Fri, 16 May 2025 20:01:36 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7988: move uart0 and spi1 pins to soc
|
||||
dtsi
|
||||
|
||||
In order to use uart0 or spi1 there is only 1 possible pin definition
|
||||
so move them to soc dtsi to reuse them in other boards and avoiding
|
||||
conflict if defined twice.
|
||||
|
||||
Suggested-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Link: https://lore.kernel.org/r/20250516180147.10416-7-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 14 --------------
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 18 ++++++++++++++++++
|
||||
2 files changed, 18 insertions(+), 14 deletions(-)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -328,13 +328,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
- uart0_pins: uart0-pins {
|
||||
- mux {
|
||||
- function = "uart";
|
||||
- groups = "uart0";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
snfi_pins: snfi-pins {
|
||||
mux {
|
||||
function = "flash";
|
||||
@@ -356,13 +349,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
- spi1_pins: spi1-pins {
|
||||
- mux {
|
||||
- function = "spi";
|
||||
- groups = "spi1";
|
||||
- };
|
||||
- };
|
||||
-
|
||||
spi2_pins: spi2-pins {
|
||||
mux {
|
||||
function = "spi";
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -209,6 +209,20 @@
|
||||
"pcie_wake_n3_0";
|
||||
};
|
||||
};
|
||||
+
|
||||
+ spi1_pins: spi1-pins {
|
||||
+ mux {
|
||||
+ function = "spi";
|
||||
+ groups = "spi1";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ uart0_pins: uart0-pins {
|
||||
+ mux {
|
||||
+ function = "uart";
|
||||
+ groups = "uart0";
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
pwm: pwm@10048000 {
|
||||
@@ -244,6 +258,8 @@
|
||||
clocks = <&topckgen CLK_TOP_UART_SEL>,
|
||||
<&infracfg CLK_INFRA_52M_UART0_CK>;
|
||||
clock-names = "baud", "bus";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart0_pins>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -338,6 +354,8 @@
|
||||
"hclk";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&spi1_pins>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -1,128 +0,0 @@
|
||||
From patchwork Sun May 11 14:19:22 2025
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Frank Wunderlich <linux@fw-web.de>
|
||||
X-Patchwork-Id: 14084106
|
||||
From: Frank Wunderlich <linux@fw-web.de>
|
||||
To: Andrew Lunn <andrew@lunn.ch>,
|
||||
Vladimir Oltean <olteanv@gmail.com>,
|
||||
"David S. Miller" <davem@davemloft.net>,
|
||||
Eric Dumazet <edumazet@google.com>,
|
||||
Jakub Kicinski <kuba@kernel.org>,
|
||||
Paolo Abeni <pabeni@redhat.com>,
|
||||
Rob Herring <robh@kernel.org>,
|
||||
Krzysztof Kozlowski <krzk+dt@kernel.org>,
|
||||
Conor Dooley <conor+dt@kernel.org>,
|
||||
Matthias Brugger <matthias.bgg@gmail.com>,
|
||||
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Subject: [PATCH v1 06/14] arm64: dts: mediatek: mt7988: add cci node
|
||||
Date: Sun, 11 May 2025 16:19:22 +0200
|
||||
Message-ID: <20250511141942.10284-7-linux@fw-web.de>
|
||||
X-Mailer: git-send-email 2.43.0
|
||||
In-Reply-To: <20250511141942.10284-1-linux@fw-web.de>
|
||||
References: <20250511141942.10284-1-linux@fw-web.de>
|
||||
MIME-Version: 1.0
|
||||
X-Mail-ID: beeb7784-23fa-410f-9e58-cc51116d869e
|
||||
X-BeenThere: linux-mediatek@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.34
|
||||
Precedence: list
|
||||
List-Id: <linux-mediatek.lists.infradead.org>
|
||||
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/linux-mediatek/>
|
||||
List-Post: <mailto:linux-mediatek@lists.infradead.org>
|
||||
List-Help: <mailto:linux-mediatek-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=subscribe>
|
||||
Cc: devicetree@vger.kernel.org, Landen Chao <Landen.Chao@mediatek.com>,
|
||||
=?utf-8?b?QXLEsW7DpyDDnE5BTA==?= <arinc.unal@arinc9.com>,
|
||||
netdev@vger.kernel.org, Sean Wang <sean.wang@mediatek.com>,
|
||||
Daniel Golle <daniel@makrotopia.org>, linux-kernel@vger.kernel.org,
|
||||
DENG Qingfang <dqfext@gmail.com>, linux-mediatek@lists.infradead.org,
|
||||
Lorenzo Bianconi <lorenzo@kernel.org>, linux-arm-kernel@lists.infradead.org,
|
||||
Felix Fietkau <nbd@nbd.name>
|
||||
Sender: "Linux-mediatek" <linux-mediatek-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org
|
||||
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
|
||||
Add cci devicetree node for cpu frequency scaling.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 33 +++++++++++++++++++++++
|
||||
1 file changed, 33 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -12,6 +12,35 @@
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
+ cci: cci {
|
||||
+ compatible = "mediatek,mt8183-cci";
|
||||
+ clocks = <&mcusys CLK_MCU_BUS_DIV_SEL>,
|
||||
+ <&topckgen CLK_TOP_XTAL>;
|
||||
+ clock-names = "cci", "intermediate";
|
||||
+ operating-points-v2 = <&cci_opp>;
|
||||
+ };
|
||||
+
|
||||
+ cci_opp: opp-table-cci {
|
||||
+ compatible = "operating-points-v2";
|
||||
+ opp-shared;
|
||||
+ opp-480000000 {
|
||||
+ opp-hz = /bits/ 64 <480000000>;
|
||||
+ opp-microvolt = <850000>;
|
||||
+ };
|
||||
+ opp-660000000 {
|
||||
+ opp-hz = /bits/ 64 <660000000>;
|
||||
+ opp-microvolt = <850000>;
|
||||
+ };
|
||||
+ opp-900000000 {
|
||||
+ opp-hz = /bits/ 64 <900000000>;
|
||||
+ opp-microvolt = <850000>;
|
||||
+ };
|
||||
+ opp-1080000000 {
|
||||
+ opp-hz = /bits/ 64 <1080000000>;
|
||||
+ opp-microvolt = <900000>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@@ -25,6 +54,7 @@
|
||||
<&topckgen CLK_TOP_XTAL>;
|
||||
clock-names = "cpu", "intermediate";
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
+ mediatek,cci = <&cci>;
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
@@ -36,6 +66,7 @@
|
||||
<&topckgen CLK_TOP_XTAL>;
|
||||
clock-names = "cpu", "intermediate";
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
+ mediatek,cci = <&cci>;
|
||||
};
|
||||
|
||||
cpu2: cpu@2 {
|
||||
@@ -47,6 +78,7 @@
|
||||
<&topckgen CLK_TOP_XTAL>;
|
||||
clock-names = "cpu", "intermediate";
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
+ mediatek,cci = <&cci>;
|
||||
};
|
||||
|
||||
cpu3: cpu@3 {
|
||||
@@ -58,6 +90,7 @@
|
||||
<&topckgen CLK_TOP_XTAL>;
|
||||
clock-names = "cpu", "intermediate";
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
+ mediatek,cci = <&cci>;
|
||||
};
|
||||
|
||||
cluster0_opp: opp-table-0 {
|
||||
+86
@@ -0,0 +1,86 @@
|
||||
From 0cbdb6d04689f8c05074e348c8e0a42b229ef9a3 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Sun, 6 Jul 2025 15:22:03 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7988: add cci node
|
||||
|
||||
Add cci devicetree node for cpu frequency scaling.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Link: https://lore.kernel.org/r/20250706132213.20412-9-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 33 +++++++++++++++++++++++
|
||||
1 file changed, 33 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -12,6 +12,35 @@
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
+ cci: cci {
|
||||
+ compatible = "mediatek,mt7988-cci", "mediatek,mt8183-cci";
|
||||
+ clocks = <&mcusys CLK_MCU_BUS_DIV_SEL>,
|
||||
+ <&topckgen CLK_TOP_XTAL>;
|
||||
+ clock-names = "cci", "intermediate";
|
||||
+ operating-points-v2 = <&cci_opp>;
|
||||
+ };
|
||||
+
|
||||
+ cci_opp: opp-table-cci {
|
||||
+ compatible = "operating-points-v2";
|
||||
+ opp-shared;
|
||||
+ opp-480000000 {
|
||||
+ opp-hz = /bits/ 64 <480000000>;
|
||||
+ opp-microvolt = <850000>;
|
||||
+ };
|
||||
+ opp-660000000 {
|
||||
+ opp-hz = /bits/ 64 <660000000>;
|
||||
+ opp-microvolt = <850000>;
|
||||
+ };
|
||||
+ opp-900000000 {
|
||||
+ opp-hz = /bits/ 64 <900000000>;
|
||||
+ opp-microvolt = <850000>;
|
||||
+ };
|
||||
+ opp-1080000000 {
|
||||
+ opp-hz = /bits/ 64 <1080000000>;
|
||||
+ opp-microvolt = <900000>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@@ -25,6 +54,7 @@
|
||||
<&topckgen CLK_TOP_XTAL>;
|
||||
clock-names = "cpu", "intermediate";
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
+ mediatek,cci = <&cci>;
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
@@ -36,6 +66,7 @@
|
||||
<&topckgen CLK_TOP_XTAL>;
|
||||
clock-names = "cpu", "intermediate";
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
+ mediatek,cci = <&cci>;
|
||||
};
|
||||
|
||||
cpu2: cpu@2 {
|
||||
@@ -47,6 +78,7 @@
|
||||
<&topckgen CLK_TOP_XTAL>;
|
||||
clock-names = "cpu", "intermediate";
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
+ mediatek,cci = <&cci>;
|
||||
};
|
||||
|
||||
cpu3: cpu@3 {
|
||||
@@ -58,6 +90,7 @@
|
||||
<&topckgen CLK_TOP_XTAL>;
|
||||
clock-names = "cpu", "intermediate";
|
||||
operating-points-v2 = <&cluster0_opp>;
|
||||
+ mediatek,cci = <&cci>;
|
||||
};
|
||||
|
||||
cluster0_opp: opp-table-0 {
|
||||
-85
@@ -1,85 +0,0 @@
|
||||
From patchwork Sun May 11 14:19:23 2025
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Frank Wunderlich <linux@fw-web.de>
|
||||
X-Patchwork-Id: 14084124
|
||||
From: Frank Wunderlich <linux@fw-web.de>
|
||||
To: Andrew Lunn <andrew@lunn.ch>,
|
||||
Vladimir Oltean <olteanv@gmail.com>,
|
||||
"David S. Miller" <davem@davemloft.net>,
|
||||
Eric Dumazet <edumazet@google.com>,
|
||||
Jakub Kicinski <kuba@kernel.org>,
|
||||
Paolo Abeni <pabeni@redhat.com>,
|
||||
Rob Herring <robh@kernel.org>,
|
||||
Krzysztof Kozlowski <krzk+dt@kernel.org>,
|
||||
Conor Dooley <conor+dt@kernel.org>,
|
||||
Matthias Brugger <matthias.bgg@gmail.com>,
|
||||
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Subject: [PATCH v1 07/14] arm64: dts: mediatek: mt7988: add phy calibration
|
||||
efuse subnodes
|
||||
Date: Sun, 11 May 2025 16:19:23 +0200
|
||||
Message-ID: <20250511141942.10284-8-linux@fw-web.de>
|
||||
X-Mailer: git-send-email 2.43.0
|
||||
In-Reply-To: <20250511141942.10284-1-linux@fw-web.de>
|
||||
References: <20250511141942.10284-1-linux@fw-web.de>
|
||||
MIME-Version: 1.0
|
||||
X-Mail-ID: b7327c0d-db13-43b6-8ec5-709b71d19c3b
|
||||
X-BeenThere: linux-mediatek@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.34
|
||||
Precedence: list
|
||||
List-Id: <linux-mediatek.lists.infradead.org>
|
||||
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/linux-mediatek/>
|
||||
List-Post: <mailto:linux-mediatek@lists.infradead.org>
|
||||
List-Help: <mailto:linux-mediatek-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=subscribe>
|
||||
Cc: devicetree@vger.kernel.org, Landen Chao <Landen.Chao@mediatek.com>,
|
||||
=?utf-8?b?QXLEsW7DpyDDnE5BTA==?= <arinc.unal@arinc9.com>,
|
||||
netdev@vger.kernel.org, Sean Wang <sean.wang@mediatek.com>,
|
||||
Daniel Golle <daniel@makrotopia.org>, linux-kernel@vger.kernel.org,
|
||||
DENG Qingfang <dqfext@gmail.com>, linux-mediatek@lists.infradead.org,
|
||||
Lorenzo Bianconi <lorenzo@kernel.org>, linux-arm-kernel@lists.infradead.org,
|
||||
Felix Fietkau <nbd@nbd.name>
|
||||
Sender: "Linux-mediatek" <linux-mediatek-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org
|
||||
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
|
||||
MT7988 contains buildin mt753x switch which needs calibration data from
|
||||
efuse.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -702,6 +702,22 @@
|
||||
lvts_calibration: calib@918 {
|
||||
reg = <0x918 0x28>;
|
||||
};
|
||||
+
|
||||
+ phy_calibration_p0: calib@940 {
|
||||
+ reg = <0x940 0x10>;
|
||||
+ };
|
||||
+
|
||||
+ phy_calibration_p1: calib@954 {
|
||||
+ reg = <0x954 0x10>;
|
||||
+ };
|
||||
+
|
||||
+ phy_calibration_p2: calib@968 {
|
||||
+ reg = <0x968 0x10>;
|
||||
+ };
|
||||
+
|
||||
+ phy_calibration_p3: calib@97c {
|
||||
+ reg = <0x97c 0x10>;
|
||||
+ };
|
||||
};
|
||||
|
||||
clock-controller@15000000 {
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
From e4950b016c727feb0c39ad12cfcb6182c9ef3814 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Fri, 16 May 2025 20:01:38 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7988: add phy calibration efuse
|
||||
subnodes
|
||||
|
||||
MT7988 contains buildin mt753x switch which needs calibration data from
|
||||
efuse.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Link: https://lore.kernel.org/r/20250516180147.10416-9-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a.dtsi
|
||||
@@ -702,6 +702,22 @@
|
||||
lvts_calibration: calib@918 {
|
||||
reg = <0x918 0x28>;
|
||||
};
|
||||
+
|
||||
+ phy_calibration_p0: calib@940 {
|
||||
+ reg = <0x940 0x10>;
|
||||
+ };
|
||||
+
|
||||
+ phy_calibration_p1: calib@954 {
|
||||
+ reg = <0x954 0x10>;
|
||||
+ };
|
||||
+
|
||||
+ phy_calibration_p2: calib@968 {
|
||||
+ reg = <0x968 0x10>;
|
||||
+ };
|
||||
+
|
||||
+ phy_calibration_p3: calib@97c {
|
||||
+ reg = <0x97c 0x10>;
|
||||
+ };
|
||||
};
|
||||
|
||||
clock-controller@15000000 {
|
||||
-98
@@ -1,98 +0,0 @@
|
||||
From patchwork Sun May 11 14:26:50 2025
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Frank Wunderlich <frank-w@public-files.de>
|
||||
X-Patchwork-Id: 14084133
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
To: Andrew Lunn <andrew@lunn.ch>,
|
||||
Vladimir Oltean <olteanv@gmail.com>,
|
||||
"David S. Miller" <davem@davemloft.net>,
|
||||
Eric Dumazet <edumazet@google.com>,
|
||||
Jakub Kicinski <kuba@kernel.org>,
|
||||
Paolo Abeni <pabeni@redhat.com>,
|
||||
Rob Herring <robh@kernel.org>,
|
||||
Krzysztof Kozlowski <krzk+dt@kernel.org>,
|
||||
Conor Dooley <conor+dt@kernel.org>,
|
||||
Matthias Brugger <matthias.bgg@gmail.com>,
|
||||
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Subject: [PATCH v1 10/14] arm64: dts: mediatek: mt7988a-bpi-r4: Add fan and
|
||||
coolingmaps
|
||||
Date: Sun, 11 May 2025 16:26:50 +0200
|
||||
Message-ID: <20250511142655.11007-1-frank-w@public-files.de>
|
||||
X-Mailer: git-send-email 2.43.0
|
||||
MIME-Version: 1.0
|
||||
X-BeenThere: linux-mediatek@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.34
|
||||
Precedence: list
|
||||
List-Id: <linux-mediatek.lists.infradead.org>
|
||||
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/linux-mediatek/>
|
||||
List-Post: <mailto:linux-mediatek@lists.infradead.org>
|
||||
List-Help: <mailto:linux-mediatek-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=subscribe>
|
||||
Cc: devicetree@vger.kernel.org, Landen Chao <Landen.Chao@mediatek.com>,
|
||||
=?utf-8?b?QXLEsW7DpyDDnE5BTA==?= <arinc.unal@arinc9.com>,
|
||||
netdev@vger.kernel.org, Sean Wang <sean.wang@mediatek.com>,
|
||||
Daniel Golle <daniel@makrotopia.org>, linux-kernel@vger.kernel.org,
|
||||
DENG Qingfang <dqfext@gmail.com>, linux-mediatek@lists.infradead.org,
|
||||
Lorenzo Bianconi <lorenzo@kernel.org>, linux-arm-kernel@lists.infradead.org,
|
||||
Felix Fietkau <nbd@nbd.name>
|
||||
Sender: "Linux-mediatek" <linux-mediatek-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org
|
||||
|
||||
Add Fan and cooling maps for Bananpi-R4 board.
|
||||
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 29 +++++++++++++++++++
|
||||
1 file changed, 29 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -12,6 +12,15 @@
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
+ fan: pwm-fan {
|
||||
+ compatible = "pwm-fan";
|
||||
+ /* cooling level (0, 1, 2, 3) : (0% duty, 30% duty, 50% duty, 100% duty) */
|
||||
+ cooling-levels = <0 80 128 255>;
|
||||
+ #cooling-cells = <2>;
|
||||
+ pwms = <&pwm 0 50000>;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
reg_1p8v: regulator-1p8v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "fixed-1.8V";
|
||||
@@ -73,6 +82,26 @@
|
||||
type = "active";
|
||||
};
|
||||
};
|
||||
+
|
||||
+ cooling-maps {
|
||||
+ map-cpu-active-high {
|
||||
+ /* active: set fan to cooling level 2 */
|
||||
+ cooling-device = <&fan 3 3>;
|
||||
+ trip = <&cpu_trip_active_high>;
|
||||
+ };
|
||||
+
|
||||
+ map-cpu-active-med {
|
||||
+ /* active: set fan to cooling level 1 */
|
||||
+ cooling-device = <&fan 2 2>;
|
||||
+ trip = <&cpu_trip_active_med>;
|
||||
+ };
|
||||
+
|
||||
+ map-cpu-active-low {
|
||||
+ /* active: set fan to cooling level 0 */
|
||||
+ cooling-device = <&fan 1 1>;
|
||||
+ trip = <&cpu_trip_active_low>;
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
From 0f63e96e2ab422d1d35def1da75d3df299bf503e Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Fri, 16 May 2025 20:01:41 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7988a-bpi-r4: Add fan and coolingmaps
|
||||
|
||||
Add Fan and cooling maps for Bananapi-R4 board.
|
||||
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Link: https://lore.kernel.org/r/20250516180147.10416-12-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 29 +++++++++++++++++++
|
||||
1 file changed, 29 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -12,6 +12,15 @@
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
+ fan: pwm-fan {
|
||||
+ compatible = "pwm-fan";
|
||||
+ /* cooling level (0, 1, 2, 3) : (0% duty, 30% duty, 50% duty, 100% duty) */
|
||||
+ cooling-levels = <0 80 128 255>;
|
||||
+ #cooling-cells = <2>;
|
||||
+ pwms = <&pwm 0 50000>;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
reg_1p8v: regulator-1p8v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "fixed-1.8V";
|
||||
@@ -73,6 +82,26 @@
|
||||
type = "active";
|
||||
};
|
||||
};
|
||||
+
|
||||
+ cooling-maps {
|
||||
+ map-cpu-active-high {
|
||||
+ /* active: set fan to cooling level 2 */
|
||||
+ cooling-device = <&fan 3 3>;
|
||||
+ trip = <&cpu_trip_active_high>;
|
||||
+ };
|
||||
+
|
||||
+ map-cpu-active-med {
|
||||
+ /* active: set fan to cooling level 1 */
|
||||
+ cooling-device = <&fan 2 2>;
|
||||
+ trip = <&cpu_trip_active_med>;
|
||||
+ };
|
||||
+
|
||||
+ map-cpu-active-low {
|
||||
+ /* active: set fan to cooling level 0 */
|
||||
+ cooling-device = <&fan 1 1>;
|
||||
+ trip = <&cpu_trip_active_low>;
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
-99
@@ -1,99 +0,0 @@
|
||||
From patchwork Sun May 11 14:26:51 2025
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Frank Wunderlich <frank-w@public-files.de>
|
||||
X-Patchwork-Id: 14084136
|
||||
Received: from frank-u24 ([194.15.84.99]) by mail.gmx.net (mrgmx104
|
||||
[212.227.17.168]) with ESMTPSA (Nemesis) id 1MD9XF-1u5YvB0cIj-00FOt5; Sun, 11
|
||||
May 2025 16:27:04 +0200
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
To: Andrew Lunn <andrew@lunn.ch>,
|
||||
Vladimir Oltean <olteanv@gmail.com>,
|
||||
"David S. Miller" <davem@davemloft.net>,
|
||||
Eric Dumazet <edumazet@google.com>,
|
||||
Jakub Kicinski <kuba@kernel.org>,
|
||||
Paolo Abeni <pabeni@redhat.com>,
|
||||
Rob Herring <robh@kernel.org>,
|
||||
Krzysztof Kozlowski <krzk+dt@kernel.org>,
|
||||
Conor Dooley <conor+dt@kernel.org>,
|
||||
Matthias Brugger <matthias.bgg@gmail.com>,
|
||||
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Subject: [PATCH v1 11/14] arm64: dts: mediatek: mt7988a-bpi-r4: configure
|
||||
spi-nodes
|
||||
Date: Sun, 11 May 2025 16:26:51 +0200
|
||||
Message-ID: <20250511142655.11007-2-frank-w@public-files.de>
|
||||
X-Mailer: git-send-email 2.43.0
|
||||
In-Reply-To: <20250511142655.11007-1-frank-w@public-files.de>
|
||||
References: <20250511142655.11007-1-frank-w@public-files.de>
|
||||
MIME-Version: 1.0
|
||||
X-BeenThere: linux-mediatek@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.34
|
||||
Precedence: list
|
||||
List-Id: <linux-mediatek.lists.infradead.org>
|
||||
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/linux-mediatek/>
|
||||
List-Post: <mailto:linux-mediatek@lists.infradead.org>
|
||||
List-Help: <mailto:linux-mediatek-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=subscribe>
|
||||
Cc: devicetree@vger.kernel.org, Landen Chao <Landen.Chao@mediatek.com>,
|
||||
=?utf-8?b?QXLEsW7DpyDDnE5BTA==?= <arinc.unal@arinc9.com>,
|
||||
netdev@vger.kernel.org, Sean Wang <sean.wang@mediatek.com>,
|
||||
Daniel Golle <daniel@makrotopia.org>, linux-kernel@vger.kernel.org,
|
||||
DENG Qingfang <dqfext@gmail.com>, linux-mediatek@lists.infradead.org,
|
||||
Lorenzo Bianconi <lorenzo@kernel.org>, linux-arm-kernel@lists.infradead.org,
|
||||
Felix Fietkau <nbd@nbd.name>
|
||||
Sender: "Linux-mediatek" <linux-mediatek-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org
|
||||
|
||||
Configure and enable SPI nodes on Bananapi R4 board.
|
||||
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 32 +++++++++++++++++++
|
||||
1 file changed, 32 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -401,6 +401,38 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&spi0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&spi0_flash_pins>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ spi_nand: flash@0 {
|
||||
+ compatible = "spi-nand";
|
||||
+ reg = <0>;
|
||||
+ spi-max-frequency = <52000000>;
|
||||
+ spi-tx-bus-width = <4>;
|
||||
+ spi-rx-bus-width = <4>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&spi1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&spi_nand {
|
||||
+ partitions {
|
||||
+ compatible = "fixed-partitions";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+
|
||||
+ partition@0 {
|
||||
+ label = "bl2";
|
||||
+ reg = <0x0 0x200000>;
|
||||
+ read-only;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&ssusb1 {
|
||||
status = "okay";
|
||||
};
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
From 6b7642e9d095d33d8034b8b396a2de9e5ecb25a7 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Fri, 16 May 2025 20:01:42 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7988a-bpi-r4: configure spi-nodes
|
||||
|
||||
Configure and enable SPI nodes on Bananapi R4 board.
|
||||
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Link: https://lore.kernel.org/r/20250516180147.10416-13-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
.../dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 32 +++++++++++++++++++
|
||||
1 file changed, 32 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -401,6 +401,38 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&spi0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&spi0_flash_pins>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ spi_nand: flash@0 {
|
||||
+ compatible = "spi-nand";
|
||||
+ reg = <0>;
|
||||
+ spi-max-frequency = <52000000>;
|
||||
+ spi-tx-bus-width = <4>;
|
||||
+ spi-rx-bus-width = <4>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&spi1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&spi_nand {
|
||||
+ partitions {
|
||||
+ compatible = "fixed-partitions";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <1>;
|
||||
+
|
||||
+ partition@0 {
|
||||
+ label = "bl2";
|
||||
+ reg = <0x0 0x200000>;
|
||||
+ read-only;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&ssusb1 {
|
||||
status = "okay";
|
||||
};
|
||||
-68
@@ -1,68 +0,0 @@
|
||||
From patchwork Sun May 11 14:26:52 2025
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
X-Patchwork-Submitter: Frank Wunderlich <frank-w@public-files.de>
|
||||
X-Patchwork-Id: 14084137
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
To: Andrew Lunn <andrew@lunn.ch>,
|
||||
Vladimir Oltean <olteanv@gmail.com>,
|
||||
"David S. Miller" <davem@davemloft.net>,
|
||||
Eric Dumazet <edumazet@google.com>,
|
||||
Jakub Kicinski <kuba@kernel.org>,
|
||||
Paolo Abeni <pabeni@redhat.com>,
|
||||
Rob Herring <robh@kernel.org>,
|
||||
Krzysztof Kozlowski <krzk+dt@kernel.org>,
|
||||
Conor Dooley <conor+dt@kernel.org>,
|
||||
Matthias Brugger <matthias.bgg@gmail.com>,
|
||||
AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Subject: [PATCH v1 12/14] arm64: dts: mediatek: mt7988a-bpi-r4: add
|
||||
proc-supply for cci
|
||||
Date: Sun, 11 May 2025 16:26:52 +0200
|
||||
Message-ID: <20250511142655.11007-3-frank-w@public-files.de>
|
||||
X-Mailer: git-send-email 2.43.0
|
||||
In-Reply-To: <20250511142655.11007-1-frank-w@public-files.de>
|
||||
References: <20250511142655.11007-1-frank-w@public-files.de>
|
||||
MIME-Version: 1.0
|
||||
X-BeenThere: linux-mediatek@lists.infradead.org
|
||||
X-Mailman-Version: 2.1.34
|
||||
Precedence: list
|
||||
List-Id: <linux-mediatek.lists.infradead.org>
|
||||
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=unsubscribe>
|
||||
List-Archive: <http://lists.infradead.org/pipermail/linux-mediatek/>
|
||||
List-Post: <mailto:linux-mediatek@lists.infradead.org>
|
||||
List-Help: <mailto:linux-mediatek-request@lists.infradead.org?subject=help>
|
||||
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-mediatek>,
|
||||
<mailto:linux-mediatek-request@lists.infradead.org?subject=subscribe>
|
||||
Cc: devicetree@vger.kernel.org, Landen Chao <Landen.Chao@mediatek.com>,
|
||||
=?utf-8?b?QXLEsW7DpyDDnE5BTA==?= <arinc.unal@arinc9.com>,
|
||||
netdev@vger.kernel.org, Sean Wang <sean.wang@mediatek.com>,
|
||||
Daniel Golle <daniel@makrotopia.org>, linux-kernel@vger.kernel.org,
|
||||
DENG Qingfang <dqfext@gmail.com>, linux-mediatek@lists.infradead.org,
|
||||
Lorenzo Bianconi <lorenzo@kernel.org>, linux-arm-kernel@lists.infradead.org,
|
||||
Felix Fietkau <nbd@nbd.name>
|
||||
Sender: "Linux-mediatek" <linux-mediatek-bounces@lists.infradead.org>
|
||||
Errors-To:
|
||||
linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org
|
||||
|
||||
CCI requires proc-supply. Add it on board level.
|
||||
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -40,6 +40,10 @@
|
||||
};
|
||||
};
|
||||
|
||||
+&cci {
|
||||
+ proc-supply = <&rt5190_buck3>;
|
||||
+};
|
||||
+
|
||||
&cpu0 {
|
||||
proc-supply = <&rt5190_buck3>;
|
||||
};
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
From b5a4ad957114b59a74b3e3f598ae0785dd86cd32 Mon Sep 17 00:00:00 2001
|
||||
From: Frank Wunderlich <frank-w@public-files.de>
|
||||
Date: Sun, 6 Jul 2025 15:22:06 +0200
|
||||
Subject: [PATCH] arm64: dts: mediatek: mt7988a-bpi-r4: add proc-supply for cci
|
||||
|
||||
CCI requires proc-supply. Add it on board level.
|
||||
|
||||
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
|
||||
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
Link: https://lore.kernel.org/r/20250706132213.20412-12-linux@fw-web.de
|
||||
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
||||
---
|
||||
arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
--- a/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
+++ b/arch/arm64/boot/dts/mediatek/mt7988a-bananapi-bpi-r4.dtsi
|
||||
@@ -40,6 +40,10 @@
|
||||
};
|
||||
};
|
||||
|
||||
+&cci {
|
||||
+ proc-supply = <&rt5190_buck3>;
|
||||
+};
|
||||
+
|
||||
&cpu0 {
|
||||
proc-supply = <&rt5190_buck3>;
|
||||
};
|
||||
+1
-1
@@ -386,7 +386,7 @@ Signed-off-by: Sky Huang <skylake.huang@mediatek.com>
|
||||
+
|
||||
+module_phy_driver(mtk_2p5gephy_driver);
|
||||
+
|
||||
+static struct mdio_device_id __maybe_unused mtk_2p5ge_phy_tbl[] = {
|
||||
+static const struct mdio_device_id __maybe_unused mtk_2p5ge_phy_tbl[] = {
|
||||
+ { PHY_ID_MATCH_VENDOR(0x00339c00) },
|
||||
+ { }
|
||||
+};
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
<&sgpio_out 0 3 GPIO_ACTIVE_HIGH>;
|
||||
settle-time-us = <100>;
|
||||
|
||||
i2c_sfp0: i2c@0 {
|
||||
i2c_sfp2: i2c@0 {
|
||||
reg = <0x0>;
|
||||
};
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
reg = <0x1>;
|
||||
};
|
||||
|
||||
i2c_sfp2: i2c@2 {
|
||||
i2c_sfp0: i2c@2 {
|
||||
reg = <0x2>;
|
||||
};
|
||||
|
||||
@@ -585,6 +585,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 0>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan4";
|
||||
};
|
||||
|
||||
port1: port@1 {
|
||||
@@ -593,6 +594,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 0>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan3";
|
||||
};
|
||||
|
||||
port2: port@2 {
|
||||
@@ -601,6 +603,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 0>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan2";
|
||||
};
|
||||
|
||||
port3: port@3 {
|
||||
@@ -609,6 +612,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 0>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan1";
|
||||
};
|
||||
|
||||
port4: port@4 {
|
||||
@@ -617,6 +621,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 1>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan8";
|
||||
};
|
||||
|
||||
port5: port@5 {
|
||||
@@ -625,6 +630,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 1>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan7";
|
||||
};
|
||||
|
||||
port6: port@6 {
|
||||
@@ -633,6 +639,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 1>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan6";
|
||||
};
|
||||
|
||||
port7: port@7 {
|
||||
@@ -641,6 +648,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 1>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan5";
|
||||
};
|
||||
|
||||
port8: port@8 {
|
||||
@@ -649,6 +657,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 2>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan12";
|
||||
};
|
||||
|
||||
port9: port@9 {
|
||||
@@ -657,6 +666,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 2>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan11";
|
||||
};
|
||||
|
||||
port10: port@10 {
|
||||
@@ -665,6 +675,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 2>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan10";
|
||||
};
|
||||
|
||||
port11: port@11 {
|
||||
@@ -673,6 +684,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 2>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan9";
|
||||
};
|
||||
|
||||
port12: port@12 {
|
||||
@@ -681,6 +693,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 3>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan16";
|
||||
};
|
||||
|
||||
port13: port@13 {
|
||||
@@ -689,6 +702,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 3>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan15";
|
||||
};
|
||||
|
||||
port14: port@14 {
|
||||
@@ -697,6 +711,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 3>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan14";
|
||||
};
|
||||
|
||||
port15: port@15 {
|
||||
@@ -705,6 +720,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 3>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan13";
|
||||
};
|
||||
|
||||
port16: port@16 {
|
||||
@@ -713,6 +729,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 4>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan20";
|
||||
};
|
||||
|
||||
port17: port@17 {
|
||||
@@ -721,6 +738,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 4>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan19";
|
||||
};
|
||||
|
||||
port18: port@18 {
|
||||
@@ -729,6 +747,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 4>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan18";
|
||||
};
|
||||
|
||||
port19: port@19 {
|
||||
@@ -737,6 +756,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 4>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan17";
|
||||
};
|
||||
|
||||
port20: port@20 {
|
||||
@@ -745,6 +765,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 5>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan24";
|
||||
};
|
||||
|
||||
port21: port@21 {
|
||||
@@ -753,6 +774,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 5>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan23";
|
||||
};
|
||||
|
||||
port22: port@22 {
|
||||
@@ -761,6 +783,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 5>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan22";
|
||||
};
|
||||
|
||||
port23: port@23 {
|
||||
@@ -769,6 +792,7 @@
|
||||
phy-mode = "qsgmii";
|
||||
phys = <&serdes 5>;
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "lan21";
|
||||
};
|
||||
|
||||
port24: port@24 {
|
||||
@@ -779,6 +803,7 @@
|
||||
managed = "in-band-status";
|
||||
microchip,bandwidth = <10000>;
|
||||
microchip,sd-sgpio = <24>;
|
||||
openwrt,netdev-name = "sfp1";
|
||||
};
|
||||
|
||||
port25: port@25 {
|
||||
@@ -789,6 +814,7 @@
|
||||
managed = "in-band-status";
|
||||
microchip,bandwidth = <10000>;
|
||||
microchip,sd-sgpio = <28>;
|
||||
openwrt,netdev-name = "sfp2";
|
||||
};
|
||||
|
||||
port26: port@26 {
|
||||
@@ -799,6 +825,7 @@
|
||||
managed = "in-band-status";
|
||||
microchip,bandwidth = <10000>;
|
||||
microchip,sd-sgpio = <32>;
|
||||
openwrt,netdev-name = "sfp3";
|
||||
};
|
||||
|
||||
port27: port@27 {
|
||||
@@ -809,6 +836,7 @@
|
||||
managed = "in-band-status";
|
||||
microchip,bandwidth = <10000>;
|
||||
microchip,sd-sgpio = <36>;
|
||||
openwrt,netdev-name = "sfp4";
|
||||
};
|
||||
|
||||
port29: port@29 {
|
||||
@@ -817,6 +845,7 @@
|
||||
phy-handle = <&phy3>;
|
||||
phy-mode = "rgmii-id";
|
||||
microchip,bandwidth = <1000>;
|
||||
openwrt,netdev-name = "mgmt";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -9,7 +9,7 @@ lan969x_setup_interfaces()
|
||||
case "$board" in
|
||||
microchip,ev23x71a|\
|
||||
novarq,tactical-1000)
|
||||
lan_list=$(ls -1 -v -d /sys/class/net/eth* | xargs -n1 basename | xargs)
|
||||
lan_list=$(ls -1 -v -d /sys/class/net/eth* /sys/class/net/lan* /sys/class/net/sfp* /sys/class/net/mgmt* | xargs -n1 basename | xargs)
|
||||
ucidef_set_interface_lan "$lan_list"
|
||||
;;
|
||||
*)
|
||||
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
set_netdev_labels() {
|
||||
local dir
|
||||
local label
|
||||
local netdev
|
||||
|
||||
for dir in /sys/class/net/*; do
|
||||
[ -r "$dir/of_node/openwrt,netdev-name" ] || continue
|
||||
read -r label < "$dir/of_node/openwrt,netdev-name"
|
||||
netdev="${dir##*/}"
|
||||
[ "$netdev" = "$label" ] && continue
|
||||
ip link set "$netdev" name "$label"
|
||||
done
|
||||
}
|
||||
|
||||
boot_hook_add preinit_main set_netdev_labels
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
From fc6aa0e470e092873eddb213d996a8beee86bf4d Mon Sep 17 00:00:00 2001
|
||||
From: Robert Marko <robert.marko@sartura.hr>
|
||||
Date: Mon, 10 Nov 2025 13:42:53 +0100
|
||||
Subject: [PATCH] net: sparx5/lan969x: populate netdev of_node
|
||||
|
||||
Populate of_node for the port netdevs, to make the individual ports
|
||||
of_nodes available in sysfs.
|
||||
|
||||
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
|
||||
Link: https://patch.msgid.link/20251110124342.199216-1-robert.marko@sartura.hr
|
||||
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
---
|
||||
drivers/net/ethernet/microchip/sparx5/sparx5_main.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/drivers/net/ethernet/microchip/sparx5/sparx5_main.c
|
||||
+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_main.c
|
||||
@@ -396,6 +396,8 @@ static int sparx5_create_port(struct spa
|
||||
|
||||
spx5_port->phylink = phylink;
|
||||
|
||||
+ spx5_port->ndev->dev.of_node = spx5_port->of_node;
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
From 6c28aa8dfdf24f554d4c5d4ff7d723a95360d94a Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Machon <daniel.machon@microchip.com>
|
||||
Date: Tue, 10 Feb 2026 14:44:01 +0100
|
||||
Subject: [PATCH] net: sparx5/lan969x: fix DWRR cost max to match hardware
|
||||
register width
|
||||
|
||||
DWRR (Deficit Weighted Round Robin) scheduling distributes bandwidth
|
||||
across traffic classes based on per-queue cost values, where lower cost
|
||||
means higher bandwidth share.
|
||||
|
||||
The SPX5_DWRR_COST_MAX constant is 63 (6 bits) but the hardware
|
||||
register field HSCH_DWRR_ENTRY_DWRR_COST is GENMASK(24, 20), only
|
||||
5 bits wide (max 31). This causes sparx5_weight_to_hw_cost() to
|
||||
compute cost values that silently overflow via FIELD_PREP, resulting
|
||||
in incorrect scheduling weights.
|
||||
|
||||
Set SPX5_DWRR_COST_MAX to 31 to match the hardware register width.
|
||||
|
||||
Fixes: 211225428d65 ("net: microchip: sparx5: add support for offloading ets qdisc")
|
||||
Signed-off-by: Daniel Machon <daniel.machon@microchip.com>
|
||||
Reviewed-by: Simon Horman <horms@kernel.org>
|
||||
Link: https://patch.msgid.link/20260210-sparx5-fix-dwrr-cost-max-v1-1-58fbdbc25652@microchip.com
|
||||
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
---
|
||||
drivers/net/ethernet/microchip/sparx5/sparx5_qos.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/net/ethernet/microchip/sparx5/sparx5_qos.h
|
||||
+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_qos.h
|
||||
@@ -35,7 +35,7 @@
|
||||
#define SPX5_SE_BURST_UNIT 4096
|
||||
|
||||
/* Dwrr */
|
||||
-#define SPX5_DWRR_COST_MAX 63
|
||||
+#define SPX5_DWRR_COST_MAX 31
|
||||
|
||||
struct sparx5_shaper {
|
||||
u32 mode;
|
||||
@@ -89,6 +89,7 @@ CONFIG_CPU_FREQ_STAT=y
|
||||
CONFIG_CPU_HAS_ASID=y
|
||||
CONFIG_CPU_IDLE=y
|
||||
CONFIG_CPU_IDLE_GOV_MENU=y
|
||||
CONFIG_CPU_LITTLE_ENDIAN=y
|
||||
CONFIG_CPU_MITIGATIONS=y
|
||||
CONFIG_CPU_PABRT_V7=y
|
||||
CONFIG_CPU_PJ4B=y
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
// SPDX-License-Identifier: MIT, GPL-2.0 or later
|
||||
/* Copyright (c) 2025, Yang Xiwen <forbidden405@outlook.com> */
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "ipq6018-tplink-eap6xx-outdoor.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TP-Link EAP623-Outdoor HD V1.0";
|
||||
compatible = "tplink,eap623-outdoor-hd-v1", "qcom,ipq6018";
|
||||
};
|
||||
|
||||
&led_sys_yellow {
|
||||
function = LED_FUNCTION_STATUS;
|
||||
gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
&wifi {
|
||||
qcom,ath11k-calibration-variant = "TPLink-EAP623-Outdoor-HD-v1";
|
||||
status = "okay";
|
||||
};
|
||||
@@ -1,150 +0,0 @@
|
||||
// SPDX-License-Identifier: MIT, GPL-2.0 or later
|
||||
/* Copyright (c) 2025, Yang Xiwen <forbidden405@outlook.com> */
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "ipq6018.dtsi"
|
||||
#include "ipq6018-cp-cpu.dtsi"
|
||||
#include "ipq6018-ess.dtsi"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
/ {
|
||||
model = "TP-Link EAP623-Outdoor HD V1.0";
|
||||
compatible = "tplink,eap623od-hd-v1", "qcom,ipq6018";
|
||||
|
||||
aliases {
|
||||
serial0 = &blsp1_uart3;
|
||||
led-boot = &led_sys_green;
|
||||
led-failsafe = &led_sys_yellow;
|
||||
led-running = &led_sys_green;
|
||||
led-upgrade = &led_sys_yellow;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
bootargs-append = " root=/dev/ubiblock0_1";
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
gpios = <&tlmm 9 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_RESTART>;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led_sys_green: led-0 {
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
function = LED_FUNCTION_STATUS;
|
||||
gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
led_sys_yellow: led-1 {
|
||||
color = <LED_COLOR_ID_YELLOW>;
|
||||
function = LED_FUNCTION_STATUS;
|
||||
gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&blsp1_uart3 {
|
||||
pinctrl-0 = <&serial_3_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tlmm {
|
||||
mdio_pins: mdio-pins {
|
||||
mdc {
|
||||
pins = "gpio64";
|
||||
function = "mdc";
|
||||
drive-strength = <8>;
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
mdio {
|
||||
pins = "gpio65";
|
||||
function = "mdio";
|
||||
drive-strength = <8>;
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
phy_pins: phy-reset-pin {
|
||||
pins = "gpio77";
|
||||
function = "gpio";
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
&mdio {
|
||||
status = "okay";
|
||||
reset-gpios = <&tlmm 77 GPIO_ACTIVE_LOW>;
|
||||
reset-delay-us = <10000>;
|
||||
reset-post-delay-us = <50000>;
|
||||
pinctrl-0 = <&mdio_pins>, <&phy_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
rtl8211f: ethernet-phy@4 {
|
||||
reg = <4>;
|
||||
|
||||
realtek,clkout-disable;
|
||||
realtek,aldps-enable;
|
||||
};
|
||||
};
|
||||
|
||||
&switch {
|
||||
status = "okay";
|
||||
switch_lan_bmp = <ESS_PORT5>; /* lan port bitmap */
|
||||
switch_mac_mode1 = <MAC_MODE_SGMII_PLUS>; /* mac mode for uniphy instance0*/
|
||||
|
||||
qcom,port_phyinfo {
|
||||
port@5 {
|
||||
port_id = <5>;
|
||||
phy_address = <4>;
|
||||
port_mac_sel = "QGMAC_PORT";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&edma {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dp5 {
|
||||
status = "okay";
|
||||
phy-handle = <&rtl8211f>;
|
||||
phy-mode = "sgmii";
|
||||
label = "lan";
|
||||
};
|
||||
|
||||
&qpic_bam {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&qpic_nand {
|
||||
status = "okay";
|
||||
|
||||
nand@0 {
|
||||
reg = <0>;
|
||||
nand-ecc-strength = <4>;
|
||||
nand-ecc-step-size = <512>;
|
||||
nand-bus-width = <8>;
|
||||
|
||||
partitions {
|
||||
compatible = "qcom,smem-part";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&wifi {
|
||||
qcom,ath11k-calibration-variant = "TPLink-EAP623-Outdoor-HD-v1";
|
||||
status = "okay";
|
||||
};
|
||||
@@ -14,9 +14,9 @@
|
||||
aliases {
|
||||
serial0 = &blsp1_uart3;
|
||||
led-boot = &led_sys_green;
|
||||
led-failsafe = &led_sys_amber;
|
||||
led-failsafe = &led_sys_yellow;
|
||||
led-running = &led_sys_green;
|
||||
led-upgrade = &led_sys_amber;
|
||||
led-upgrade = &led_sys_yellow;
|
||||
};
|
||||
|
||||
chosen {
|
||||
@@ -37,9 +37,9 @@
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led_sys_amber: led-0 {
|
||||
led_sys_yellow: led-0 {
|
||||
function = "system";
|
||||
color = <LED_COLOR_ID_AMBER>;
|
||||
color = <LED_COLOR_ID_YELLOW>;
|
||||
gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
@@ -115,6 +115,8 @@
|
||||
|
||||
rtl8211f_4: ethernet-phy@4 {
|
||||
reg = <4>;
|
||||
realtek,clkout-disable;
|
||||
realtek,aldps-enable;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -234,17 +234,22 @@ define Device/qihoo_360v6
|
||||
endef
|
||||
TARGET_DEVICES += qihoo_360v6
|
||||
|
||||
define Device/tplink_eap610-outdoor
|
||||
define Device/tplink_eap6xx-common
|
||||
$(call Device/FitImage)
|
||||
$(call Device/UbiFit)
|
||||
DEVICE_VENDOR := TP-Link
|
||||
DEVICE_MODEL := EAP610-Outdoor
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
SOC := ipq6018
|
||||
DEVICE_PACKAGES := ipq-wifi-tplink_eap610-outdoor
|
||||
DEVICE_PACKAGES := kmod-phy-realtek
|
||||
IMAGES += web-ui-factory.bin
|
||||
IMAGE/web-ui-factory.bin := append-ubi | tplink-image-2022
|
||||
endef
|
||||
|
||||
define Device/tplink_eap610-outdoor
|
||||
$(call Device/tplink_eap6xx-common)
|
||||
DEVICE_MODEL := EAP610-Outdoor
|
||||
DEVICE_PACKAGES += ipq-wifi-tplink_eap610-outdoor
|
||||
TPLINK_SUPPORT_STRING := SupportList:\r\n \
|
||||
EAP610-Outdoor(TP-Link|UN|AX1800-D):1.0\r\n \
|
||||
EAP610-Outdoor(TP-Link|JP|AX1800-D):1.0\r\n \
|
||||
@@ -252,33 +257,20 @@ define Device/tplink_eap610-outdoor
|
||||
endef
|
||||
TARGET_DEVICES += tplink_eap610-outdoor
|
||||
|
||||
define Device/tplink_eap623od-hd-v1
|
||||
$(call Device/FitImage)
|
||||
$(call Device/UbiFit)
|
||||
DEVICE_VENDOR := TP-Link
|
||||
define Device/tplink_eap623-outdoor-hd-v1
|
||||
$(call Device/tplink_eap6xx-common)
|
||||
DEVICE_MODEL := EAP623-Outdoor HD
|
||||
DEVICE_VARIANT := v1
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
SOC := ipq6018
|
||||
DEVICE_PACKAGES := ipq-wifi-tplink_eap623-outdoor-hd-v1 kmod-phy-realtek
|
||||
IMAGES += web-ui-factory.bin
|
||||
IMAGE/web-ui-factory.bin := append-ubi | tplink-image-2022
|
||||
DEVICE_PACKAGES += ipq-wifi-tplink_eap623-outdoor-hd-v1
|
||||
TPLINK_SUPPORT_STRING := SupportList:\r\nEAP623-Outdoor HD(TP-Link|UN|AX1800-D):1.0\r\n
|
||||
endef
|
||||
TARGET_DEVICES += tplink_eap623od-hd-v1
|
||||
TARGET_DEVICES += tplink_eap623-outdoor-hd-v1
|
||||
|
||||
define Device/tplink_eap625-outdoor-hd-v1
|
||||
$(call Device/FitImage)
|
||||
$(call Device/UbiFit)
|
||||
DEVICE_VENDOR := TP-Link
|
||||
DEVICE_MODEL := EAP625-Outdoor HD v1 and v1.6
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
SOC := ipq6018
|
||||
DEVICE_PACKAGES := ipq-wifi-tplink_eap625-outdoor-hd-v1
|
||||
IMAGES += web-ui-factory.bin
|
||||
IMAGE/web-ui-factory.bin := append-ubi | tplink-image-2022
|
||||
$(call Device/tplink_eap6xx-common)
|
||||
DEVICE_MODEL := EAP625-Outdoor HD
|
||||
DEVICE_VARIANT := v1
|
||||
DEVICE_PACKAGES += ipq-wifi-tplink_eap625-outdoor-hd-v1
|
||||
TPLINK_SUPPORT_STRING := SupportList:\r\n \
|
||||
EAP625-Outdoor HD(TP-Link|UN|AX1800-D):1.0\r\n \
|
||||
EAP625-Outdoor HD(TP-Link|CA|AX1800-D):1.0\r\n \
|
||||
|
||||
@@ -41,8 +41,8 @@ ipq60xx_setup_interfaces()
|
||||
netgear,wax610|\
|
||||
netgear,wax610y|\
|
||||
tplink,eap610-outdoor|\
|
||||
tplink,eap623od-hd-v1|\
|
||||
tplink,eap620-hd-v3|\
|
||||
tplink,eap623-outdoor-hd-v1|\
|
||||
tplink,eap625-outdoor-hd-v1)
|
||||
ucidef_set_interface_lan "lan" "dhcp"
|
||||
;;
|
||||
@@ -70,7 +70,7 @@ ipq60xx_setup_macs()
|
||||
;;
|
||||
tplink,eap610-outdoor|\
|
||||
tplink,eap620-hd-v3|\
|
||||
tplink,eap623od-hd-v1|\
|
||||
tplink,eap623-outdoor-hd-v1|\
|
||||
tplink,eap625-outdoor-hd-v1)
|
||||
label_mac=$(get_mac_binary /tmp/factory_data/default-mac 0)
|
||||
lan_mac=$label_mac
|
||||
|
||||
@@ -70,7 +70,7 @@ case "$FIRMWARE" in
|
||||
ath11k_set_macflag
|
||||
;;
|
||||
tplink,eap610-outdoor|\
|
||||
tplink,eap623od-hd-v1|\
|
||||
tplink,eap623-outdoor-hd-v1|\
|
||||
tplink,eap625-outdoor-hd-v1)
|
||||
caldata_from_file "/tmp/factory_data/radio" 0 0x10000
|
||||
label_mac=$(get_mac_binary /tmp/factory_data/default-mac 0)
|
||||
|
||||
@@ -9,7 +9,7 @@ preinit_mount_factory_data() {
|
||||
case $(board_name) in
|
||||
tplink,eap610-outdoor|\
|
||||
tplink,eap620-hd-v3|\
|
||||
tplink,eap623od-hd-v1|\
|
||||
tplink,eap623-outdoor-hd-v1|\
|
||||
tplink,eap625-outdoor-hd-v1)
|
||||
mtd_path=$(find_mtd_chardev "factory_data")
|
||||
ubiattach --dev-path="$mtd_path" --devn=1
|
||||
|
||||
@@ -205,7 +205,7 @@ platform_do_upgrade() {
|
||||
;;
|
||||
tplink,eap610-outdoor|\
|
||||
tplink,eap620-hd-v3|\
|
||||
tplink,eap623od-hd-v1|\
|
||||
tplink,eap623-outdoor-hd-v1|\
|
||||
tplink,eap625-outdoor-hd-v1)
|
||||
tplink_do_upgrade "$1"
|
||||
;;
|
||||
|
||||
@@ -78,6 +78,13 @@
|
||||
label = "u-boot-env";
|
||||
reg = <0x30000 0x10000>;
|
||||
read-only;
|
||||
|
||||
nvmem-layout {
|
||||
compatible = "u-boot,env";
|
||||
|
||||
macaddr_uboot_ethaddr: ethaddr {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
partition@40000 {
|
||||
@@ -160,21 +167,33 @@
|
||||
port@1 {
|
||||
status = "okay";
|
||||
label = "lan4";
|
||||
|
||||
nvmem-cells = <&macaddr_uboot_ethaddr>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
port@2 {
|
||||
status = "okay";
|
||||
label = "lan3";
|
||||
|
||||
nvmem-cells = <&macaddr_uboot_ethaddr>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
port@3 {
|
||||
status = "okay";
|
||||
label = "lan2";
|
||||
|
||||
nvmem-cells = <&macaddr_uboot_ethaddr>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
port@4 {
|
||||
status = "okay";
|
||||
label = "lan1";
|
||||
|
||||
nvmem-cells = <&macaddr_uboot_ethaddr>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
led-failsafe = &led_power;
|
||||
led-running = &led_power;
|
||||
led-upgrade = &led_power;
|
||||
label-mac-device = &gmac1;
|
||||
};
|
||||
|
||||
leds {
|
||||
@@ -109,6 +110,12 @@
|
||||
reg = <0x0 0x4da8>;
|
||||
};
|
||||
|
||||
macaddr_factory_4: mac-address@4 {
|
||||
compatible = "mac-base";
|
||||
reg = <0x4 0x6>;
|
||||
#nvmem-cell-cells = <1>;
|
||||
};
|
||||
|
||||
eeprom_factory_8000: eeprom@8000 {
|
||||
reg = <0x8000 0x4da8>;
|
||||
};
|
||||
@@ -118,10 +125,18 @@
|
||||
};
|
||||
};
|
||||
|
||||
&gmac0 {
|
||||
nvmem-cells = <&eeprom_factory_0 (-1)>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&gmac1 {
|
||||
status = "okay";
|
||||
label = "wan";
|
||||
phy-handle = <ðphy0>;
|
||||
|
||||
nvmem-cells = <&eeprom_factory_0 (-2)>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ðphy0 {
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
label-mac-device = &gmac1;
|
||||
led-boot = &led_status_amber;
|
||||
led-failsafe = &led_status_green;
|
||||
led-running = &led_status_green;
|
||||
@@ -52,10 +53,18 @@
|
||||
};
|
||||
};
|
||||
|
||||
&gmac0 {
|
||||
nvmem-cells = <&macaddr_uboot_ethaddr 1>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&gmac1 {
|
||||
status = "okay";
|
||||
label = "wan";
|
||||
phy-handle = <ðphy4>;
|
||||
|
||||
nvmem-cells = <&macaddr_uboot_ethaddr 0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ðphy4 {
|
||||
@@ -84,6 +93,15 @@
|
||||
partition@80000 {
|
||||
label = "u-boot-env";
|
||||
reg = <0x0080000 0x0080000>;
|
||||
|
||||
nvmem-layout {
|
||||
compatible = "u-boot,env";
|
||||
env-size = <0x20000>;
|
||||
|
||||
macaddr_uboot_ethaddr: ethaddr {
|
||||
#nvmem-cell-cells = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
partition@100000 {
|
||||
|
||||
@@ -55,6 +55,15 @@
|
||||
partition@80000 {
|
||||
label = "u-boot-env";
|
||||
reg = <0x80000 0xc0000>;
|
||||
|
||||
nvmem-layout {
|
||||
compatible = "u-boot,env";
|
||||
env-size = <0x1000>;
|
||||
|
||||
macaddr_uboot_ethaddr: ethaddr {
|
||||
#nvmem-cell-cells = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
partition@140000 {
|
||||
@@ -85,10 +94,18 @@
|
||||
};
|
||||
};
|
||||
|
||||
&gmac0 {
|
||||
nvmem-cells = <&macaddr_uboot_ethaddr 0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&gmac1 {
|
||||
status = "okay";
|
||||
label = "wan";
|
||||
phy-handle = <ðphy0>;
|
||||
|
||||
nvmem-cells = <&macaddr_uboot_ethaddr 1>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ðphy0 {
|
||||
|
||||
@@ -232,6 +232,15 @@
|
||||
reg = <0x5000 0x1000>;
|
||||
#pwm-cells = <2>;
|
||||
|
||||
clocks = <&sysc MT76X8_CLK_PWM_TOP>,
|
||||
<&sysc MT76X8_CLK_PWM_MAIN>,
|
||||
<&sysc MT76X8_CLK_PWM_CH1>,
|
||||
<&sysc MT76X8_CLK_PWM_CH2>,
|
||||
<&sysc MT76X8_CLK_PWM_CH3>,
|
||||
<&sysc MT76X8_CLK_PWM_CH4>;
|
||||
clock-names = "top", "main",
|
||||
"pwm1", "pwm2", "pwm3", "pwm4";
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pwm0_pins>, <&pwm1_pins>;
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user