linux/drivers/net/ethernet/ti/Kconfig

# SPDX-License-Identifier: GPL-2.0-only
#
# TI device configuration
#

config NET_VENDOR_TI
	bool "Texas Instruments (TI) devices"
	default y
	depends on PCI || EISA || ARCH_DAVINCI || ARCH_OMAP2PLUS || ARCH_KEYSTONE || ARCH_K3
	help
	  If you have a network (Ethernet) card belonging to this class, say Y.

	  Note that the answer to this question doesn't directly affect the
	  kernel: saying N will just cause the configurator to skip all
	  the questions about TI devices. If you say Y, you will be asked for
	  your specific card in the following questions.

if NET_VENDOR_TI

config TI_DAVINCI_EMAC
	tristate "TI DaVinci EMAC Support"
	depends on ARM && ( ARCH_DAVINCI || ARCH_OMAP3 ) || COMPILE_TEST
	select TI_DAVINCI_MDIO
	select PHYLIB
	select GENERIC_ALLOCATOR
	help
	  This driver supports TI's DaVinci Ethernet .

	  To compile this driver as a module, choose M here: the module
	  will be called davinci_emac_driver.  This is recommended.

config TI_DAVINCI_MDIO
	tristate "TI DaVinci MDIO Support"
	depends on ARCH_DAVINCI || ARCH_OMAP2PLUS || ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
	select PHYLIB
	select MDIO_BITBANG
	help
	  This driver supports TI's DaVinci MDIO module.

	  To compile this driver as a module, choose M here: the module
	  will be called davinci_mdio.  This is recommended.

config TI_CPSW_PHY_SEL
	bool "TI CPSW Phy mode Selection (DEPRECATED)"
	default n
	help
	  This driver supports configuring of the phy mode connected to
	  the CPSW. DEPRECATED: use PHY_TI_GMII_SEL.

config TI_CPSW
	tristate "TI CPSW Switch Support"
	depends on ARCH_DAVINCI || ARCH_OMAP2PLUS || COMPILE_TEST
	depends on TI_CPTS || !TI_CPTS
	select TI_DAVINCI_MDIO
	select MFD_SYSCON
	select PAGE_POOL
	select REGMAP
	imply PHY_TI_GMII_SEL
	help
	  This driver supports TI's CPSW Ethernet Switch.

	  To compile this driver as a module, choose M here: the module
	  will be called cpsw.

config TI_CPSW_SWITCHDEV
	tristate "TI CPSW Switch Support with switchdev"
	depends on ARCH_DAVINCI || ARCH_OMAP2PLUS || COMPILE_TEST
	depends on NET_SWITCHDEV
	depends on TI_CPTS || !TI_CPTS
	select PAGE_POOL
	select TI_DAVINCI_MDIO
	select MFD_SYSCON
	select REGMAP
	select NET_DEVLINK
	imply PHY_TI_GMII_SEL
	help
	  This driver supports TI's CPSW Ethernet Switch.

	  To compile this driver as a module, choose M here: the module
	  will be called cpsw_new.

config TI_CPTS
	tristate "TI Common Platform Time Sync (CPTS) Support"
	depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST
	depends on COMMON_CLK
	depends on PTP_1588_CLOCK
	help
	  This driver supports the Common Platform Time Sync unit of
	  the CPSW Ethernet Switch and Keystone 2 1g/10g Switch Subsystem.
	  The unit can time stamp PTP UDP/IPv4 and Layer 2 packets, and the
	  driver offers a PTP Hardware Clock.

config TI_K3_CPPI_DESC_POOL
	tristate

config TI_K3_AM65_CPSW_NUSS
	tristate "TI K3 AM654x/J721E CPSW Ethernet driver"
	depends on ARCH_K3 && OF && TI_K3_UDMA_GLUE_LAYER
	select NET_DEVLINK
	select TI_DAVINCI_MDIO
	select PHYLINK
	select TI_K3_CPPI_DESC_POOL
	imply PHY_TI_GMII_SEL
	depends on TI_K3_AM65_CPTS || !TI_K3_AM65_CPTS
	help
	  This driver supports TI K3 AM654/J721E CPSW2G Ethernet SubSystem.
	  The two-port Gigabit Ethernet MAC (MCU_CPSW0) subsystem provides
	  Ethernet packet communication for the device: One Ethernet port
	  (port 1) with selectable RGMII and RMII interfaces and an internal
	  Communications Port Programming Interface (CPPI) port (port 0).

	  To compile this driver as a module, choose M here: the module
	  will be called ti-am65-cpsw-nuss.

config TI_K3_AM65_CPSW_SWITCHDEV
	bool "TI K3 AM654x/J721E CPSW Switch mode support"
	depends on TI_K3_AM65_CPSW_NUSS
	depends on NET_SWITCHDEV
	help
	 This enables switchdev support for TI K3 CPSWxG Ethernet
	 Switch. Enable this driver to support hardware switch support for AM65
	 CPSW NUSS driver.

config TI_K3_AM65_CPTS
	tristate "TI K3 AM65x CPTS"
	depends on ARCH_K3 && OF
	depends on PTP_1588_CLOCK
	help
	  Say y here to support the TI K3 AM65x CPTS with 1588 features such as
	  PTP hardware clock for each CPTS device and network packets
	  timestamping where applicable.
	  Depending on integration CPTS blocks enable compliance with
	  the IEEE 1588-2008 standard for a precision clock synchronization
	  protocol, Ethernet Enhanced Scheduled Traffic Operations (CPTS_ESTFn)
	  and PCIe Subsystem Precision Time Measurement (PTM).

config TI_AM65_CPSW_QOS
	bool "Enable QoS offload features in AM65 CPSW"
	depends on TI_K3_AM65_CPSW_NUSS && NET_SCH_TAPRIO && TI_K3_AM65_CPTS
	help
	  This option enables QoS offload features in AM65 CPSW like
	  Time Aware Shaper (TAS) / Enhanced Scheduled Traffic (EST),
	  MQPRIO qdisc offload and Frame-Preemption MAC Merge / Interspersing
	  Express Traffic (IET).
	  The EST scheduler runs on CPTS and the TAS/EST schedule is
	  updated in the Fetch RAM memory of the CPSW.

config TI_KEYSTONE_NETCP
	tristate "TI Keystone NETCP Core Support"
	select TI_DAVINCI_MDIO
	depends on OF
	depends on KEYSTONE_NAVIGATOR_DMA && KEYSTONE_NAVIGATOR_QMSS
	depends on TI_CPTS || !TI_CPTS
	help
	  This driver supports TI's Keystone NETCP Core.

	  To compile this driver as a module, choose M here: the module
	  will be called keystone_netcp.

config TI_KEYSTONE_NETCP_ETHSS
	depends on TI_KEYSTONE_NETCP
	tristate "TI Keystone NETCP Ethernet subsystem Support"
	help

	  To compile this driver as a module, choose M here: the module
	  will be called keystone_netcp_ethss.

config TLAN
	tristate "TI ThunderLAN support"
	depends on (PCI || EISA) && HAS_IOPORT
	help
	  If you have a PCI Ethernet network card based on the ThunderLAN chip
	  which is supported by this driver, say Y here.

	  Devices currently supported by this driver are Compaq Netelligent,
	  Compaq NetFlex and Olicom cards.  Please read the file
	  <file:Documentation/networking/device_drivers/ethernet/ti/tlan.rst>
	  for more details.

	  To compile this driver as a module, choose M here. The module
	  will be called tlan.

	  Please email feedback to <[email protected]>.

config TI_ICSSG_PRUETH
	tristate "TI Gigabit PRU Ethernet driver"
	select PHYLIB
	select TI_ICSS_IEP
	select TI_K3_CPPI_DESC_POOL
	depends on PRU_REMOTEPROC
	depends on NET_SWITCHDEV
	depends on ARCH_K3 && OF && TI_K3_UDMA_GLUE_LAYER
	depends on PTP_1588_CLOCK_OPTIONAL
	help
	  Support dual Gigabit Ethernet ports over the ICSSG PRU Subsystem.
	  This subsystem is available starting with the AM65 platform.

	  This driver requires firmware binaries which will run on the PRUs
	  to support the Ethernet operation. Currently, it supports Ethernet
	  with 1G and 100M link speed.

config TI_ICSSG_PRUETH_SR1
	tristate "TI Gigabit PRU SR1.0 Ethernet driver"
	select PHYLIB
	select TI_ICSS_IEP
	select TI_K3_CPPI_DESC_POOL
	depends on PRU_REMOTEPROC
	depends on NET_SWITCHDEV
	depends on ARCH_K3 && OF && TI_K3_UDMA_GLUE_LAYER
	help
	  Support dual Gigabit Ethernet ports over the ICSSG PRU Subsystem.
	  This subsystem is available on the AM65 SR1.0 platform.

	  This driver requires firmware binaries which will run on the PRUs
	  to support the Ethernet operation. Currently, it supports Ethernet
	  with 1G, 100M and 10M link speed.

config TI_ICSS_IEP
	tristate "TI PRU ICSS IEP driver"
	depends on PTP_1588_CLOCK_OPTIONAL
	depends on TI_PRUSS
	default TI_PRUSS
	help
	  This driver enables support for the PRU-ICSS Industrial Ethernet
	  Peripheral within a PRU-ICSS subsystem present on various TI SoCs.

	  To compile this driver as a module, choose M here. The module
	  will be called icss_iep.

endif # NET_VENDOR_TI