config STMMAC_ETH
	tristate "STMicroelectronics 10/100/1000 Ethernet driver"
	depends on HAS_IOMEM && HAS_DMA
	select MII
	select PHYLIB
	select CRC32
	select PTP_1588_CLOCK
	select RESET_CONTROLLER
	---help---
	  This is the driver for the Ethernet IPs are built around a
	  Synopsys IP Core and only tested on the STMicroelectronics
	  platforms.

if STMMAC_ETH

config STMMAC_PLATFORM
	bool "STMMAC Platform bus support"
	depends on STMMAC_ETH
	default y
	---help---
	  This selects the platform specific bus support for
	  the stmmac device driver. This is the driver used
	  on many embedded STM platforms based on ARM and SuperH
	  processors.
	  If you have a controller with this interface, say Y or M here.

	  If unsure, say N.

config DWMAC_SOCFPGA
	bool "SOCFPGA dwmac support"
	depends on STMMAC_PLATFORM && MFD_SYSCON && (ARCH_SOCFPGA || COMPILE_TEST)
	help
	  Support for ethernet controller on Altera SOCFPGA

	  This selects the Altera SOCFPGA SoC glue layer support
	  for the stmmac device driver. This driver is used for
	  arria5 and cyclone5 FPGA SoCs.

config DWMAC_SUNXI
	bool "Allwinner GMAC support"
	depends on STMMAC_PLATFORM && ARCH_SUNXI
	default y
	---help---
	  Support for Allwinner A20/A31 GMAC ethernet controllers.

	  This selects Allwinner SoC glue layer support for the
	  stmmac device driver. This driver is used for A20/A31
	  GMAC 	  ethernet controller.

config DWMAC_STI
	bool "STi GMAC support"
	depends on STMMAC_PLATFORM && ARCH_STI
	default y
	---help---
	  Support for ethernet controller on STi SOCs.

	  This selects STi SoC glue layer support for the stmmac
	  device driver. This driver is used on for the STi series
	  SOCs GMAC ethernet controller.

config STMMAC_PCI
	bool "STMMAC PCI bus support"
	depends on STMMAC_ETH && PCI
	---help---
	  This is to select the Synopsys DWMAC available on PCI devices,
	  if you have a controller with this interface, say Y or M here.

	  This PCI support is tested on XLINX XC2V3000 FF1152AMT0221
	  D1215994A VIRTEX FPGA board.

	  If unsure, say N.

config STMMAC_DEBUG_FS
	bool "Enable monitoring via sysFS "
	default n
	depends on STMMAC_ETH && DEBUG_FS
	---help---
	  The stmmac entry in /sys reports DMA TX/RX rings
	  or (if supported) the HW cap register.

config STMMAC_DA
	bool "STMMAC DMA arbitration scheme"
	default n
	---help---
	  Selecting this option, rx has priority over Tx (only for Giga
	  Ethernet device).
	  By default, the DMA arbitration scheme is based on Round-robin
	  (rx:tx priority is 1:1).

endif
