# Kconfig - Atmel SMART SAM E70 Xplained Board configuration
#
# Copyright (c) 2016 Piotr Mienkowski
# SPDX-License-Identifier: Apache-2.0
#

if BOARD_SAM_E70_XPLAINED

config BOARD
	default "sam_e70_xplained"

if I2S

config I2S_SAM_SSC_0_DMA_RX_CHANNEL
	default 22

config I2S_SAM_SSC_0_DMA_TX_CHANNEL
	default 23
endif # I2S

if ETH_SAM_GMAC

# Read MAC address from AT24MAC402 EEPROM

choice ETH_SAM_GMAC_MAC_SELECT
	default ETH_SAM_GMAC_MAC_I2C_EEPROM
endchoice

config ETH_SAM_GMAC_MAC_I2C_SLAVE_ADDRESS
	default 0x5F

config ETH_SAM_GMAC_MAC_I2C_INT_ADDRESS
	default 0x9A

config ETH_SAM_GMAC_MAC_I2C_INT_ADDRESS_SIZE
	default 1

config ETH_SAM_GMAC_MAC_I2C_DEV_NAME
	default "I2C_0"

config ETH_SAM_GMAC_MAC_I2C_EEPROM
	select I2C

endif # ETH_SAM_GMAC

if ADC

config ADC_0
	default y

endif # ADC

if I2C

config I2C_0
	default y

endif # I2C

if NETWORKING

config NET_L2_ETHERNET
	default y

config ETH_SAM_GMAC
	default y if NET_L2_ETHERNET

endif # NETWORKING

if SPI

if SPI_SAM_PORT_0

config SPI_SAME70_PORT_0_PIN_CS3
	default y

endif # SPI_SAM_PORT_0

endif # SPI

endif # BOARD_SAM_E70_XPLAINED
