# MIMXRT1170-EVK board

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

if BOARD_MIMXRT1170_EVK_CM7 || BOARD_MIMXRT1170_EVK_CM4

config BOARD
	default "mimxrt1170_evk_cm7" if BOARD_MIMXRT1170_EVK_CM7
	default "mimxrt1170_evk_cm4" if BOARD_MIMXRT1170_EVK_CM4

choice CODE_LOCATION
	default CODE_FLEXSPI if BOARD_MIMXRT1170_EVK_CM7
	default CODE_SRAM0 if BOARD_MIMXRT1170_EVK_CM4
endchoice

if DISK_DRIVERS

config IMX_USDHC_DAT3_PWR_TOGGLE
	default y

endif # DISK_DRIVERS

if FLASH

choice FLASH_MCUX_FLEXSPI_XIP_MEM_TARGET
	default FLASH_MCUX_FLEXSPI_XIP_MEM_ITCM if CPU_CORTEX_M7
	default FLASH_MCUX_FLEXSPI_XIP_MEM_SRAM if CPU_CORTEX_M4
endchoice

endif #FLASH

if KSCAN

config KSCAN_GT911_INTERRUPT
	default y

endif # KSCAN

if NETWORKING

config NET_L2_ETHERNET
	default y if CPU_CORTEX_M7 # No cache memory support is required for driver

config ETH_MCUX_PHY_RESET
	default y

endif # NETWORKING

if DISPLAY

config MIPI_DSI
	default y

config REGULATOR
	default y

endif # DISPLAY

endif # BOARD_MIMXRT1170_EVK_CM7 || BOARD_MIMXRT1170_EVK_CM4
