# Kconfig - MIMXRT1020-EVK board
#
# Copyright (c) 2018, NXP
#
# SPDX-License-Identifier: Apache-2.0
#

if BOARD_MIMXRT1020_EVK

config BOARD
	default "mimxrt1020_evk" if BOARD_MIMXRT1020_EVK

choice CODE_LOCATION
	default CODE_FLEXSPI
endchoice

choice DATA_LOCATION
	default DATA_SEMC
endchoice

if GPIO_MCUX_IGPIO

config GPIO_MCUX_IGPIO_1
	default y

config GPIO_MCUX_IGPIO_5
	default y

endif # GPIO_MCUX_IGPIO

if I2C_MCUX_LPI2C

config I2C_1
	default y

config I2C_4
	default y

endif # I2C_MCUX_LPI2C

if UART_MCUX_LPUART

config UART_MCUX_LPUART_1
	default y

config UART_MCUX_LPUART_2
	default y if BT_UART

endif # UART_MCUX_LPUART

if NETWORKING

config NET_L2_ETHERNET
	def_bool y

config ETH_MCUX_0
	def_bool y if NET_L2_ETHERNET

endif # NETWORKING

endif # BOARD_MIMXRT1020_EVK
