# SPDX-License-Identifier: GPL-2.0-only
config NET_VENDOR_MEDIATEK
	bool "MediaTek devices"
	depends on ARCH_MEDIATEK || ARCH_AIROHA || SOC_MT7621 || SOC_MT7620 || COMPILE_TEST
	help
	  If you have a Mediatek SoC with ethernet, say Y.

if NET_VENDOR_MEDIATEK

config NET_AIROHA
	tristate "Airoha SoC Gigabit Ethernet support"
	depends on NET_DSA || !NET_DSA
	select PAGE_POOL
	help
	  This driver supports the gigabit ethernet MACs in the
	  Airoha SoC family.

config NET_MEDIATEK_SOC_WED
	depends on ARCH_MEDIATEK || COMPILE_TEST
	def_bool NET_MEDIATEK_SOC != n

config NET_MEDIATEK_SOC
	tristate "MediaTek SoC Gigabit Ethernet support"
	depends on NET_DSA || !NET_DSA
	select PINCTRL
	select PHYLINK
	select DIMLIB
	select PAGE_POOL
	select PAGE_POOL_STATS
	select PCS_MTK_LYNXI
	select REGMAP_MMIO
	help
	  This driver supports the gigabit ethernet MACs in the
	  MediaTek SoC family.

config NET_MEDIATEK_STAR_EMAC
	tristate "MediaTek STAR Ethernet MAC support"
	select PHYLIB
	select REGMAP_MMIO
	help
	  This driver supports the ethernet MAC IP first used on
	  MediaTek MT85** SoCs.

endif #NET_VENDOR_MEDIATEK
