# 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

choice DATA_LOCATION
	default DATA_SEMC
endchoice

config DISK_ACCESS_USDHC1
	default y
	depends on DISK_ACCESS_USDHC

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

config KSCAN_INIT_PRIORITY
	default 60

endif # KSCAN

if NETWORKING

config NET_L2_ETHERNET
	default y

config ETH_MCUX_0
	default y if NET_L2_ETHERNET

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
	default 480

config LVGL_VER_RES
	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
