# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

config HAS_NORDIC_DMM
	bool

config HAS_NORDIC_RAM_CTRL
	bool

config NRF_FORCE_RAM_ON_REBOOT
	bool "Force all RAM blocks to be powered on before rebooting"
	depends on HAS_NORDIC_RAM_CTRL
	help
	  RAM power configuration is preserved through soft reset,
	  meaning that there is a risk of accessing powered off RAM blocks
	  when booting in different application (i.e. bootloader).
	  Force all RAM blocks to be powered on before triggering soft reset
	  to prevent this from happening.

config NRF_SYS_EVENT
	bool "nRF system event support"
	select NRFX_POWER if !NRF_PLATFORM_HALTIUM

if NRF_SYS_EVENT

config NRF_SYS_EVENT_IRQ_LATENCY
	bool "Register events to reduce interrupt handling latency"
	default y
	depends on HAS_HW_NRF_RRAMC && !TRUSTED_EXECUTION_NONSECURE

config NRF_SYS_EVENT_IRQ_LATENCY_MANUAL
	def_bool !RISCV
	depends on NRF_SYS_EVENT_IRQ_LATENCY
	help
	  If enabled, that indicates that manual control of NVM memory power
	  mode is available.

config NRF_SYS_EVENT_GRTC_CHAN_CNT
	int "GRTC channel for RRAMC wake up"
	default 1
	range 0 16
	depends on NRF_SYS_EVENT_IRQ_LATENCY
	help
	  Maximum number of GRTC channel dedicated for waking up RRAMC using DPPI
	  connection between GRTC compare channel and RRAMC wake up task.

config NRF_SYS_EVENT_USE_GPPI
	def_bool NRF_SYS_EVENT_GRTC_CHAN_CNT > 0
	select NRFX_GPPI

config SOC_NRF_FORCE_CONSTLAT
	bool "Force constant latency mode in system ON"
	depends on !RISCV
	help
	  In constant latency mode the CPU wakeup latency and the PPI task response
	  will be constant and kept at a minimum. This is secured by forcing a set
	  of base resources on while in sleep. The advantage of having a constant
	  and predictable latency will be at the cost of having increased power consumption.

endif # NRF_SYS_EVENT

config MRAM_LATENCY
	bool "MRAM latency manager"
	depends on NRFS_HAS_MRAM_SERVICE
	select ONOFF
	select NRFS_MRAM_SERVICE_ENABLED

if MRAM_LATENCY

config MRAM_LATENCY_SYNC_TIMEOUT
	int "Timeout in synchronous request"
	default 1000
	help
	  Timeout is given in milliseconds.

config MRAM_LATENCY_AUTO_REQ
	bool "Request MRAM without latency at start"
	help
	  When enabled then MRAM configuration without latency is requested
	  during the initialization and is kept enabled until the mram_latency API user
	  calls mram_no_latency_sync_release().

module = MRAM_LATENCY
module-str = mram_latency
source "subsys/logging/Kconfig.template.log_config"

endif # MRAM_LATENCY

if HAS_NORDIC_DMM

config DMM_HEAP_CHUNKS
	int "Number of chunks in the DMM heap"
	default 32
	help
	  DMM is using a simplified heap which is using 32 bit mask to allocate
	  required buffer which consists of contiguous chunks. If there are many
	  small buffers used with DMM it is possible that allocation will fail.
	  Number of chunks is a trade-off between performance and granularity.
	  Must be multiply of 32.

config DMM_STATS
	bool "Usage statistics"

endif # HAS_NORDIC_DMM

rsource "vpr/Kconfig"
rsource "uicr/Kconfig"
rsource "Kconfig.tfm"
