# Distributed Switch Architecture [DSA] configuration options

# Copyright (c) 2020 DENX Software Engineering GmbH
#               Lukasz Majewski <lukma@denx.de>
# SPDX-License-Identifier: Apache-2.0

config ETH_DSA_SUPPORT_DEPRECATED
	bool
	help
	  Set by an ethernet driver that supports DSA. This is obsolete,
	  and only used for legacy dsa device.

menuconfig NET_DSA
	bool "Distributed Switch Architecture support"
	help
	  Enable Distributed Switch Architecture support.

if NET_DSA

config NET_DSA_DEPRECATED
	bool "Distributed Switch Architecture support for legacy device"
	select DEPRECATED
	depends on ETH_DSA_SUPPORT_DEPRECATED
	help
	  This is obsolete, and only used for legacy dsa device.

config DSA_PORT_MAX_COUNT
	int "DSA port max count"
	default 8
	help
	  Set DSA port max count.

config DSA_KSZ8XXX
	bool

config DSA_KSZ8794
	bool "Support for KSZ8794"
	default y
	depends on DT_HAS_MICROCHIP_KSZ8794_ENABLED
	select DSA_KSZ8XXX
	select SPI if $(dt_compat_on_bus,$(DT_COMPAT_MICROCHIP_KSZ8794),spi)
	help
	  Add support for KSZ8794 DSA device driver.

config DSA_KSZ8863
	bool "Support for KSZ8863"
	default y
	depends on DT_HAS_MICROCHIP_KSZ8863_ENABLED
	select DSA_KSZ8XXX
	select SPI if $(dt_compat_on_bus,$(DT_COMPAT_MICROCHIP_KSZ8863),spi)
	help
	  Add support for KSZ8863 DSA device driver.

config DSA_KSZ8463
	bool "Support for KSZ8463"
	default y
	depends on DT_HAS_MICROCHIP_KSZ8463_ENABLED
	select DSA_KSZ8XXX
	select SPI if $(dt_compat_on_bus,$(DT_COMPAT_MICROCHIP_KSZ8463),spi)
	help
	  Add support for KSZ8463 DSA device driver.

config DSA_KSZ_TAIL_TAGGING
	bool "Support for tail tagging"
	depends on DSA_KSZ8794 || DSA_KSZ8863 || DSA_KSZ8463
	help
	  Add support for tail tagging on DSA device.

config DSA_TAG_SIZE
	int "DSA tag size in bytes"
	default 1 if DSA_KSZ8794 || DSA_KSZ8863 || DSA_KSZ8463
	default 0
	depends on DSA_KSZ_TAIL_TAGGING
	help
	  Set the DSA tag length in bytes.

config DSA_KSZ_PORT_ISOLATING
	bool "Support for ports isolating"
	depends on DSA_KSZ8794 || DSA_KSZ8863 || DSA_KSZ8463
	help
	  Add support for traffic isolation on DSA slave ports

config DSA_SPI
	bool "Support for PHY SPI interface"
	depends on SPI && (DSA_KSZ8794 || DSA_KSZ8863 || DSA_KSZ8463)
	help
	  Use SPI bus to communicate with PHY

module = NET_DSA
module-dep = NET_LOG
module-str = Log level for DSA
module-help = Enables core DSA code to output debug messages.
source "subsys/net/Kconfig.template.log_config.net"

endif # NET_DSA
