# MIMXRT1064-EVK board

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

if BOARD_MIMXRT1064_EVK

config BOARD
	default "mimxrt1064_evk"

choice CODE_LOCATION
	default CODE_FLEXSPI2
endchoice

config DISK_DRIVER_SDMMC
	default y if DISK_DRIVERS

config FLASH_MCUX_FLEXSPI_NOR
	default y if FLASH

config FLASH_MCUX_FLEXSPI_XIP
	default y if FLASH

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_DISPLAY_DEV_NAME
	default "ELCDIF_1"

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_MIMXRT1064_EVK
