# MIMXRT1050-EVK board

# Copyright (c) 2017, NXP
# SPDX-License-Identifier: Apache-2.0

if BOARD_MIMXRT1050_EVK || BOARD_MIMXRT1050_EVK_QSPI

config BOARD
	default "mimxrt1050_evk" if BOARD_MIMXRT1050_EVK
	default "mimxrt1050_evk_qspi" if BOARD_MIMXRT1050_EVK_QSPI

choice CODE_LOCATION
	default CODE_FLEXSPI
endchoice

config DEVICE_CONFIGURATION_DATA
	default y

config NXP_IMX_EXTERNAL_SDRAM
	default y

if FLASH

config FLASH_MCUX_FLEXSPI_HYPERFLASH
	default y if BOARD_MIMXRT1050_EVK
	default n if BOARD_MIMXRT1050_EVK_QSPI

config FLASH_MCUX_FLEXSPI_NOR
	default y if BOARD_MIMXRT1050_EVK_QSPI
	default n if BOARD_MIMXRT1050_EVK

endif #FLASH

config INPUT
	default y if LVGL

if INPUT

config INPUT_FT5336_INTERRUPT
	default y

endif # INPUT

if NETWORKING

config NET_L2_ETHERNET
	default y

config ETH_MCUX_PHY_RESET
	default y

endif # NETWORKING

if LVGL

config LV_Z_VDB_SIZE
	default 16

config LV_DPI_DEF
	default 128

choice LV_COLOR_DEPTH
	default LV_COLOR_DEPTH_16
endchoice

endif # LVGL

endif # BOARD_MIMXRT1050_EVK || BOARD_MIMXRT1050_EVK_QSPI
