# Kconfig - 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

if GPIO_MCUX_IGPIO

config GPIO_MCUX_IGPIO_1
	def_bool y

config GPIO_MCUX_IGPIO_5
	def_bool y

endif # GPIO_MCUX_IGPIO

if UART_MCUX_LPUART

config UART_MCUX_LPUART_1
	def_bool y

endif # UART_MCUX_LPUART

if NETWORKING

config NET_L2_ETHERNET
	def_bool y

config ETH_MCUX_0
	def_bool y if NET_L2_ETHERNET

endif # NETWORKING

if LVGL

config LVGL_DISPLAY_DEV_NAME
	default "ELCDIF_1"

config LVGL_HOR_RES
	default 480

config LVGL_VER_RES
	default 272

config LVGL_VDB_SIZE
	default 16

config LVGL_DPI
	default 128

config LVGL_BITS_PER_PIXEL
	default 0

choice LVGL_COLOR_DEPTH
	default LVGL_COLOR_DEPTH_16
endchoice

endif # LVGL

endif # BOARD_MIMXRT1064_EVK
