# Copyright (c) 2020 Henrik Brix Andersen <henrik@brixandersen.dk>
# SPDX-License-Identifier: Apache-2.0

if SHIELD_V2C_DAPLINK || SHIELD_V2C_DAPLINK_CFG

if BOARD_ARTY_A7_ARM_DESIGNSTART_M1 || BOARD_ARTY_A7_ARM_DESIGNSTART_M3

if DISK_ACCESS

config SPI
	default y

config DISK_DRIVER_SDMMC
	default y

endif # DISK_ACCESS

endif # BOARD_ARTY_A7_ARM_DESIGNSTART_M1 || BOARD_ARTY_A7_ARM_DESIGNSTART_M3

endif # SHIELD_V2C_DAPLINK || SHIELD_V2C_DAPLINK_CFG
