| # Kconfig - Atmel SAM Ethernet (GMAC) driver configuration options | 
 | # | 
 | # Copyright (c) 2016 Piotr Mienkowski | 
 | # SPDX-License-Identifier: Apache-2.0 | 
 | # | 
 |  | 
 | menuconfig ETH_SAM_GMAC | 
 | 	bool | 
 | 	prompt "Atmel SAM Ethernet driver" | 
 | 	depends on SOC_FAMILY_SAM | 
 | 	help | 
 | 	  Enable Atmel SAM MCU Family Ethernet driver. | 
 |  | 
 | if ETH_SAM_GMAC | 
 |  | 
 | config ETH_SAM_GMAC_NAME | 
 | 	string "Device name" | 
 | 	default "ETH_0" | 
 | 	help | 
 | 	  Device name allows user to obtain a handle to the device object | 
 | 	  required by all driver API functions. Device name has to be unique. | 
 |  | 
 | config ETH_SAM_GMAC_QUEUES | 
 | 	int "Number of hardware TX and RX queues" | 
 | 	default 1 | 
 | 	range 1 3 | 
 | 	help | 
 | 	  Select the number of hardware queues used by the driver. Packets will be | 
 | 	  routed to appropriate queues based on their priority. | 
 |  | 
 | config ETH_SAM_GMAC_TX_TIMEOUT_MSEC | 
 | 	int "TX timeout" | 
 | 	default 5000 | 
 | 	range 1000 10000 | 
 | 	help | 
 | 	  The maximum time in msec that the driver will wait for a TX interrupt | 
 | 	  after scheduling a packet to be sent. If no interrupt is reported during | 
 | 	  that period, all TX packets in the queue will be discarded. | 
 |  | 
 | config ETH_SAM_GMAC_BUF_RX_COUNT | 
 | 	int "Network RX buffers preallocated by the SAM ETH driver" | 
 | 	default 18 | 
 | 	help | 
 | 	  Number of network buffers that will be permanently allocated by the | 
 | 	  Ethernet driver. These buffers are used in receive path. They are | 
 | 	  preallocated by the driver and made available to the GMAC module to be | 
 | 	  filled in with incoming data. Their number has to be large enough to fit | 
 | 	  at least one complete Ethernet frame. SAM ETH driver will always allocate | 
 | 	  that amount of buffers for itself thus reducing the NET_BUF_RX_COUNT | 
 | 	  which is a total amount of RX data buffers used by the whole networking | 
 | 	  stack. One has to ensure that NET_PKT_RX_COUNT is large enough to | 
 | 	  fit at least two Ethernet frames: one being received by the GMAC module | 
 | 	  and the other being processed by the higher layer networking stack. | 
 |  | 
 | config ETH_SAM_GMAC_IRQ_PRI | 
 | 	int "Interrupt priority" | 
 | 	default 0 | 
 | 	help | 
 | 	  IRQ priority of Ethernet device | 
 |  | 
 | choice ETH_SAM_GMAC_MAC_SELECT | 
 | 	prompt "MAC address" | 
 | 	help | 
 | 	  Choose how to configure MAC address. | 
 |  | 
 | config ETH_SAM_GMAC_MAC_MANUAL | 
 | 	bool "Manual" | 
 | 	help | 
 | 	  Assign an arbitrary MAC address. | 
 |  | 
 | config ETH_SAM_GMAC_MAC_I2C_EEPROM | 
 | 	bool "Read from an I2C EEPROM" | 
 | 	help | 
 | 	  Read MAC address from an I2C EEPROM. | 
 |  | 
 | endchoice | 
 |  | 
 | if ETH_SAM_GMAC_MAC_MANUAL | 
 |  | 
 | config ETH_SAM_GMAC_MAC0 | 
 | 	hex "MAC Address Byte 0" | 
 | 	default 0 | 
 | 	range 0 0xff | 
 |  | 
 | config ETH_SAM_GMAC_MAC1 | 
 | 	hex "MAC Address Byte 1" | 
 | 	default 0 | 
 | 	range 0 0xff | 
 |  | 
 | config ETH_SAM_GMAC_MAC2 | 
 | 	hex "MAC Address Byte 2" | 
 | 	default 0 | 
 | 	range 0 0xff | 
 |  | 
 | config ETH_SAM_GMAC_MAC3 | 
 | 	hex "MAC Address Byte 3" | 
 | 	default 0 | 
 | 	range 0 0xff | 
 |  | 
 | config ETH_SAM_GMAC_MAC4 | 
 | 	hex "MAC Address Byte 4" | 
 | 	default 0 | 
 | 	range 0 0xff | 
 |  | 
 | config ETH_SAM_GMAC_MAC5 | 
 | 	hex "MAC Address Byte 5" | 
 | 	default 0 | 
 | 	range 0 0xff | 
 |  | 
 | endif # ETH_SAM_GMAC_MAC_MANUAL | 
 |  | 
 | if ETH_SAM_GMAC_MAC_I2C_EEPROM | 
 |  | 
 | config ETH_SAM_GMAC_MAC_I2C_SLAVE_ADDRESS | 
 | 	hex "I2C 7-bit EEPROM chip address" | 
 | 	range 0 0xff | 
 | 	help | 
 | 	  I2C 7-bit address of the EEPROM chip. | 
 |  | 
 | config ETH_SAM_GMAC_MAC_I2C_INT_ADDRESS | 
 | 	hex "I2C EEPROM internal address" | 
 | 	range 0 0xffffffff | 
 | 	help | 
 | 	  Internal address of the EEPROM chip where the MAC address is stored. | 
 | 	  Chips with 1 to 4 byte internal address size are supported. Address | 
 | 	  size has to be configured in a separate Kconfig option. | 
 |  | 
 | config ETH_SAM_GMAC_MAC_I2C_INT_ADDRESS_SIZE | 
 | 	int "I2C EEPROM internal address size" | 
 | 	default 1 | 
 | 	range 1 4 | 
 | 	help | 
 | 	  Size (in bytes) of the internal EEPROM address. | 
 |  | 
 | config ETH_SAM_GMAC_MAC_I2C_DEV_NAME | 
 | 	string "I2C bus driver device name" | 
 | 	help | 
 | 	  Device name, e.g. I2C_0, of an I2C bus driver device. It is required to | 
 | 	  obtain handle to the I2C device object. | 
 |  | 
 | endif # ETH_SAM_GMAC_MAC_I2C_EEPROM | 
 |  | 
 | choice | 
 | 	prompt "MII/RMII Interface to the Physical Layer" | 
 |  | 
 | 	config ETH_SAM_GMAC_RMII | 
 | 		bool "RMII" | 
 |  | 
 | 	config ETH_SAM_GMAC_MII | 
 | 		bool "MII" | 
 | endchoice | 
 |  | 
 | config ETH_SAM_GMAC_PHY_ADDR | 
 | 	int "GMAC PHY Address" | 
 | 	default 0 | 
 | 	help | 
 | 	  GMAC PHY Address as used by IEEE 802.3, Section 2 MII compatible PHY | 
 | 	  transceivers. If you have a single PHY on board it is safe to leave it | 
 | 	  at 0 which is the broadcast address. | 
 |  | 
 | config PTP_CLOCK_SAM_GMAC | 
 | 	bool "SAM GMAC PTP clock driver support" | 
 | 	default y | 
 | 	select PTP_CLOCK | 
 | 	depends on NET_GPTP | 
 | 	help | 
 | 	  Enable SAM GMAC PTP Clock support. | 
 |  | 
 | endif # ETH_SAM_GMAC |