# Kconfig - MIMXRT1060-EVK board
#
# Copyright (c) 2018, NXP
#
# SPDX-License-Identifier: Apache-2.0
#

if BOARD_MIMXRT1060_EVK || BOARD_MIMXRT1060_EVK_HYPERFLASH

config BOARD
	default "mimxrt1060_evk" if BOARD_MIMXRT1060_EVK
	default "mimxrt1060_evk_hyperflash" if BOARD_MIMXRT1060_EVK_HYPERFLASH

choice CODE_LOCATION
	default CODE_FLEXSPI
endchoice

choice DATA_LOCATION
	default DATA_SEMC
endchoice

if GPIO_MCUX_IGPIO

config GPIO_MCUX_IGPIO_1
	default y

config GPIO_MCUX_IGPIO_5
	default y

endif # GPIO_MCUX_IGPIO

if UART_MCUX_LPUART

config UART_MCUX_LPUART_1
	default y

config UART_MCUX_LPUART_3
	default y if BT_UART

endif # UART_MCUX_LPUART

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_MIMXRT1060_EVK || BOARD_MIMXRT1060_EVK_HYPERFLASH
