# MIMXRT685-EVK board

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

if BOARD_MIMXRT685_EVK

config BOARD
	default "mimxrt685_evk_cm33"

config XTAL_SYS_CLK_HZ
	default 24000000

config SYSOSC_SETTLING_US
	default 260

choice FLASH_MCUX_FLEXSPI_MX25UM51345G_OPI_MODE
	default FLASH_MCUX_FLEXSPI_MX25UM51345G_OPI_STR
endchoice

config FLASH_SIZE
	default $(dt_node_int_prop_int,/soc/spi@134000/mx25um51345g@2,size,Kb)

config FLASH_MCUX_FLEXSPI_XIP
	default y if FLASH
	depends on MEMC_MCUX_FLEXSPI

choice FLASH_MCUX_FLEXSPI_XIP_MEM_TARGET
	default FLASH_MCUX_FLEXSPI_XIP_MEM_SRAM
endchoice

config FXOS8700_DRDY_INT1
	default y
	depends on FXOS8700_TRIGGER

if DMA_MCUX_LPC

# Memory from the heap pool is used to allocate DMA descriptors for
# channels that use multiple blocks for a DMA transfer.
# Adjust HEAP_MEM_POOL_SIZE in case you need more memory.
config HEAP_MEM_POOL_SIZE
	default 4096

endif # DMA_MCUX_LPC

config DISK_DRIVER_SDMMC
	default y if DISK_DRIVERS

endif # BOARD_MIMXRT685_EVK
