# Kconfig - counter and timer configuration options
#
#
# Copyright (c) 2016 Linaro Limited
#
# SPDX-License-Identifier: Apache-2.0
#

if SOC_FAMILY_ARM

config TIMER_TMR_CMSDK_APB
	bool "ARM CMSDK (Cortex-M System Design Kit) Timer driver"
	help
	  The timers (TMR) present in the platform are used as timers.
	  This option enables the support for the timers.

if TIMER_TMR_CMSDK_APB

# ---------- Timer 0 ----------

config TIMER_TMR_CMSDK_APB_0
	bool "Timer 0 driver"
	help
	  Enable support for Timer 0.

config TIMER_TMR_CMSDK_APB_0_DEV_NAME
	string "Timer 0 Device Name"
	depends on TIMER_TMR_CMSDK_APB_0
	default "TIMER_0"
	help
	  Specify the device name for Timer 0 driver.

config TIMER_TMR_CMSDK_APB_0_IRQ_PRI
	int "Interrupt Priority for Timer 0"
	depends on TIMER_TMR_CMSDK_APB_0
	default 3
	help
	  Interrupt priority for Timer 0.

# ---------- Timer 1 ----------

config TIMER_TMR_CMSDK_APB_1
	bool "Timer 1 driver"
	help
	  Enable support for Timer 1.

config TIMER_TMR_CMSDK_APB_1_DEV_NAME
	string "Timer 1 Device Name"
	depends on TIMER_TMR_CMSDK_APB_1
	default "TIMER_1"
	help
	  Specify the device name for Timer 1 driver.

config TIMER_TMR_CMSDK_APB_1_IRQ_PRI
	int "Interrupt Priority for Timer 1"
	depends on TIMER_TMR_CMSDK_APB_1
	default 3
	help
	  Interrupt priority for Timer 1.

endif # TIMER_TMR_CMSDK_APB

config COUNTER_TMR_CMSDK_APB
	bool "ARM CMSDK (Cortex-M System Design Kit) Counter driver"
	help
	  The timers (TMR) present in the platform are used as counters.
	  This option enables the support for the counters.

if COUNTER_TMR_CMSDK_APB

# ---------- Counter 0 ----------

config COUNTER_TMR_CMSDK_APB_0
	bool "Counter 0 driver"
	depends on !TIMER_TMR_CMSDK_APB_0
	help
	  Enable support for Counter 0.

config COUNTER_TMR_CMSDK_APB_0_DEV_NAME
	string "Counter 0 Device Name"
	depends on COUNTER_TMR_CMSDK_APB_0
	default "COUNTER_0"
	help
	  Specify the device name for Counter 0 driver.

# ---------- Counter 1 ----------

config COUNTER_TMR_CMSDK_APB_1
	bool "Counter 1 driver"
	depends on !TIMER_TMR_CMSDK_APB_1
	help
	  Enable support for Counter 1.

config COUNTER_TMR_CMSDK_APB_1_DEV_NAME
	string "Counter 1 Device Name"
	depends on COUNTER_TMR_CMSDK_APB_1
	default "COUNTER_1"
	help
	  Specify the device name for Counter 1 driver.

endif # COUNTER_TMR_CMSDK_APB

endif # SOC_FAMILY_ARM
