# Copyright (c) 2018 Linaro Limited
# SPDX-License-Identifier: Apache-2.0

if BOARD_MUSCA_A

config BOARD
	default "musca_a" if TRUSTED_EXECUTION_SECURE || !TRUSTED_EXECUTION_NONSECURE
	default "musca_a_nonsecure"

if GPIO

config GPIO_CMSDK_AHB
	default y

endif

if SERIAL

config UART_PL011
	default y

config UART_INTERRUPT_DRIVEN
	default y

config UART_PL011_PORT0
	default y

config UART_PL011_PORT1
	default y

endif # SERIAL

if COUNTER

config TIMER_TMR_CMSDK_APB
	default y

config TIMER_DTMR_CMSDK_APB
	default y

endif # COUNTER

if IPM

config IPM_MHU
	default y

endif # IPM

endif
