# 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
