# ARM V2M Beetle Board configuration options

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

if BOARD_V2M_BEETLE

config BOARD
	default "v2m_beetle"

if GPIO

config GPIO_CMSDK_AHB
	default y

config GPIO_CMSDK_AHB_PORT0
	default y

config GPIO_CMSDK_AHB_PORT1
	default y

config GPIO_CMSDK_AHB_PORT2
	default y

config GPIO_CMSDK_AHB_PORT3
	default y

endif # GPIO

config PINMUX_BEETLE
	default y
	depends on PINMUX

if SERIAL

config UART_CMSDK_APB
	default y

config UART_INTERRUPT_DRIVEN
	default y

endif # SERIAL

config WDOG_CMSDK_APB
	default y
	depends on WATCHDOG

if COUNTER

config TIMER_TMR_CMSDK_APB
	default y

config TIMER_DTMR_CMSDK_APB
	default y

endif # COUNTER

endif # BOARD_V2M_BEETLE
