# 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

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 KSCAN
	default y if LVGL

config INPUT
	default y if KSCAN

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_POINTER_KSCAN
	default y

config LV_Z_VDB_SIZE
	default 16

config LV_Z_DPI
	default 128

choice LV_COLOR_DEPTH
	default LV_COLOR_DEPTH_16
endchoice

endif # LVGL

endif # BOARD_MIMXRT1050_EVK || BOARD_MIMXRT1050_EVK_QSPI
