# Copyright (c) 2014-2015 Wind River Systems, Inc.
# Copyright (c) 2016 Cadence Design Systems, Inc.
# Copyright (c) 2019 Intel Corp.
# SPDX-License-Identifier: Apache-2.0

config NRF_RTC_TIMER
	bool "nRF Real Time Counter (NRF_RTC1) Timer"
	depends on CLOCK_CONTROL
	depends on SOC_COMPATIBLE_NRF
	select TICKLESS_CAPABLE
	select SYSTEM_TIMER_HAS_DISABLE_SUPPORT
	depends on !$(dt_nodelabel_enabled,rtc1)
	help
	  This module implements a kernel device driver for the nRF Real Time
	  Counter NRF_RTC1 and provides the standard "system clock driver"
	  interfaces.

if NRF_RTC_TIMER

config NRF_RTC_TIMER_USER_CHAN_COUNT
	int "Additional channels that can be used"
	default 2 if NRF_802154_RADIO_DRIVER && SOC_COMPATIBLE_NRF5340_CPUNET
	default 3 if NRF_802154_RADIO_DRIVER
	default 0
	help
	  Use nrf_rtc_timer.h API. Driver is not managing allocation of channels.

config NRF_RTC_TIMER_LOCK_ZERO_LATENCY_IRQS
	# hidden option
	bool
	depends on ZERO_LATENCY_IRQS
	default y if !BT_LL_SW_SPLIT
	help
	  Enable use of __disable_irq() to disable Zero Latency IRQs to prevent
	  higher priority contexts (including ZLIs) that might preempt the
	  handler and call nrf_rtc_timer API from destroying the internal state
	  in nrf_rtc_timer.

config NRF_RTC_TIMER_TRIGGER_OVERFLOW
	bool "Trigger overflow"
	help
	  When enabled, a function can be used to trigger RTC overflow and
	  effectively shift time into the future.

endif # NRF_RTC_TIMER
