# Legend board family configuration

# Copyright (c) 2021, Seagate Technology LLC
# SPDX-License-Identifier: Apache-2.0

if BOARD_LEGEND

config BOARD
	default "legend"

config SPI_STM32_INTERRUPT
	default y
	depends on SPI

endif # BOARD_LEGEND
