]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
kernel: netdevices: add KSZ9477 DSA switch support
authorTim Harvey <tharvey@gateworks.com>
Fri, 20 Feb 2026 00:57:29 +0000 (16:57 -0800)
committerRobert Marko <robimarko@gmail.com>
Fri, 13 Mar 2026 18:59:59 +0000 (19:59 +0100)
This adds kernel packages for the Microchip KSZ9477 switch family.
The core package has a target specific dependency as the ksz9477
driver enables DCB which grows the kernel size and can negatively
impact other targets.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/22257
Signed-off-by: Robert Marko <robimarko@gmail.com>
package/kernel/linux/modules/netdevices.mk

index 4c57b878f565798a54b0bff6457524dd1c1fddcd..3dc28952d50ae48344d0cdabbe8f324ac31a69d0 100644 (file)
@@ -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