# MIMXRT1060-EVK board

# Copyright 2018,2023 NXP
# SPDX-License-Identifier: Apache-2.0

if BOARD_MIMXRT1060_EVK || BOARD_MIMXRT1060_EVKB

config DEVICE_CONFIGURATION_DATA
	default y

config NXP_IMX_EXTERNAL_SDRAM
	default y

config INPUT
	default y if LVGL

if INPUT

config INPUT_FT5336_INTERRUPT
	default y

endif # INPUT

if NETWORKING

config NET_L2_ETHERNET
	default y

if ETH_MCUX

config ETH_MCUX_PHY_RESET
	default y

endif # ETH_MCUX

endif # NETWORKING

if LVGL

# LVGL should allocate buffers equal to size of display
config LV_Z_VDB_SIZE
	default 100

# Enable double buffering
config LV_Z_DOUBLE_VDB
	default y

# Force full refresh. This prevents memory copy associated with partial
# display refreshes, which is not necessary for the eLCDIF driver
config LV_Z_FULL_REFRESH
	default y

config LV_DPI_DEF
	default 128

config LV_Z_BITS_PER_PIXEL
	default 16

# Force display buffers to be aligned to cache line size (32 bytes)
config LV_Z_VDB_ALIGN
	default 32

# Use offloaded render thread
config LV_Z_FLUSH_THREAD
	default y

choice LV_COLOR_DEPTH
	default LV_COLOR_DEPTH_16
endchoice

endif # LVGL

endif # BOARD_MIMXRT1060_EVK || BOARD_MIMXRT1060_EVKB
