# Timer driver configuration options
# Copyright (c) 2024 Nordic Semiconductor ASA

menuconfig NRF_GRTC_TIMER
	bool "nRF GRTC Timer"
	default y
	depends on DT_HAS_NORDIC_NRF_GRTC_ENABLED
	select TICKLESS_CAPABLE
	select TIMER_HAS_64BIT_CYCLE_COUNTER
	select NRFX_GRTC
	help
	  This module implements a kernel device driver for the nRF Global Real
	  Time Counter NRF_GRTC and provides the standard "system clock driver"
	  interfaces.

if NRF_GRTC_TIMER

config NRF_GRTC_ALWAYS_ON
	bool
	help
	  Always keep the SYSCOUNTER active even if the CPU is in sleep mode.

config NRF_GRTC_TIMER_APP_DEFINED_INIT
	bool "Application defines GRTC initialization"
	help
	  Application defines the initialization procedure and time of the GRTC
	  drivers, rather than leaving it up to SYS_INIT.

config NRF_GRTC_START_SYSCOUNTER
	bool "Start SYSCOUNTER on driver init"
	select NRF_GRTC_TIMER_CLOCK_MANAGEMENT
	help
	  Start the SYSCOUNTER when initializing the GRTC. This should only be
	  handled by one processor in the system.

config NRF_GRTC_TIMER_CLOCK_MANAGEMENT
	bool
	help
	  Compile additional driver code for enabling management functionality of
	  the GRTC. Usually this is only needed by the processor that is starting
	  the SYSCOUNTER, but can be shared by multiple processors in the system.

config NRF_GRTC_SYSCOUNTER_SLEEP_MINIMUM_LATENCY
	int
	default 1000
	depends on POWEROFF
	help
	  The value (in us) ensures that the wakeup event will not fire
	  too early. In other words, applying SYSCOUNTER sleep state for less than
	  NRF_GRTC_SYSCOUNTER_SLEEP_MINIMUM_LATENCY period makes no sense.

config NRF_GRTC_TIMER_AUTO_KEEP_ALIVE
	bool
	default y if NRF_GRTC_START_SYSCOUNTER
	help
	  This feature prevents the SYSCOUNTER from sleeping when any core is in
	  active state.

endif # NRF_GRTC_TIMER
