# Kconfig - counter configuration options

#
# Copyright (c) 2016 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

config AON_COUNTER_QMSI
	bool "AON counter driver"
	depends on QMSI
	help
	  Enable support for AON counter.

config AON_COUNTER_QMSI_DEV_NAME
	string "QMSI AON Counter Device Name"
	depends on AON_COUNTER_QMSI
	default "AON_COUNTER"
	help
	  Specify the device name for AON counter driver.

config AON_TIMER_QMSI
	bool "AON periodic timer driver"
	depends on QMSI
	help
	  Enable support for AON periodic timer.

config COUNTER_0_NAME
	string "QMSI AON Timer Device Name"
	depends on AON_TIMER_QMSI
	default "AON_TIMER"
	help
	  Specify the device name for AON timer driver.

config AON_TIMER_IRQ_PRI
	int "Interrupt priority"
	depends on AON_TIMER_QMSI
	help
	  aon timer interrupt priority.

config AON_API_REENTRANCY
	bool "AON driver API reentrancy"
	depends on AON_TIMER_QMSI
	help
	  Enable support for AON driver API reentrancy.

config RTC_QMSI
	bool "QMSI RTC Driver"
	depends on QMSI
	help
	  Build QMSI RTC driver.

if RTC_QMSI

config RTC_QMSI_API_REENTRANCY
	bool "RTC shim driver API reentrancy"
	help
	  Enable support for RTC shim driver API reentrancy.

config RTC_PRESCALER
	int "Prescaler size"
	default 1
	help
	  RTC prescaler used to determine ticks per second

endif
