# 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 DISK_DRIVER_SDMMC
	default y if DISK_DRIVERS

config FLASH_MCUX_FLEXSPI_HYPERFLASH
	default y if FLASH && BOARD_MIMXRT1050_EVK
	default n if FLASH && BOARD_MIMXRT1050_EVK_QSPI

config FLASH_MCUX_FLEXSPI_NOR
	default y if FLASH && BOARD_MIMXRT1050_EVK_QSPI
	default n if FLASH && BOARD_MIMXRT1050_EVK

config FLASH_MCUX_FLEXSPI_XIP
	default y if FLASH
	depends on MEMC_MCUX_FLEXSPI

config I2C
	default y if KSCAN

config KSCAN
	default y if LVGL

if KSCAN

config KSCAN_FT5336
	default y

config KSCAN_FT5336_INTERRUPT
	default y

endif # KSCAN

if NETWORKING

config NET_L2_ETHERNET
	default y

endif # NETWORKING

if LVGL

config LVGL_POINTER_KSCAN
	default y

config LVGL_POINTER_KSCAN_DEV_NAME
	default "FT5336"

config LVGL_HOR_RES_MAX
	default 480

config LVGL_VER_RES_MAX
	default 272

config LVGL_VDB_SIZE
	default 16

config LVGL_DPI
	default 128

choice LVGL_COLOR_DEPTH
	default LVGL_COLOR_DEPTH_16
endchoice

endif # LVGL

endif # BOARD_MIMXRT1050_EVK || BOARD_MIMXRT1050_EVK_QSPI
