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

menuconfig SOC_FLASH_NRF_RRAM
	bool "Nordic Semiconductor flash driver for nRF RRAM"
	default y
	depends on DT_HAS_NORDIC_RRAM_CONTROLLER_ENABLED
	select FLASH_HAS_DRIVER_ENABLED
	select FLASH_HAS_PAGE_LAYOUT
	select FLASH_NRF_FORCE_ALT
	select MPU_ALLOW_FLASH_WRITE if ARM_MPU
	help
	  Enables Nordic Semiconductor flash driver for nRF RRAM controllers.
	  The entire contiguous block of RRAM gets logically divided into pages,
	  but partial erase is always supported.

if SOC_FLASH_NRF_RRAM

config NRF_RRAM_WRITE_BUFFER_SIZE
	int "Internal write-buffer size"
	default 32 if !SOC_FLASH_NRF_RADIO_SYNC_NONE
	default 0
	range 0 32
	help
	  Number of 128-bit words.
	  Maximum buffer size can be configured to the value of 32 (128-bit words).
	  Set 0 to disable write-buffer.

config NRF_RRAM_READYNEXT_TIMEOUT_VALUE
	int "Preload timeout value for waiting for a next write in RRAMC clock cycles"
	default 128
	range 0 4095
	help
	  Set 0 to disable ready next timeout counter.

choice SOC_FLASH_NRF_RADIO_SYNC_CHOICE
	prompt "Nordic nRFx flash driver synchronization"
	default SOC_FLASH_NRF_RADIO_SYNC_TICKER if BT_LL_SW_SPLIT
	default SOC_FLASH_NRF_RADIO_SYNC_NONE
	help
	  synchronization between flash memory driver and radio.

config SOC_FLASH_NRF_RADIO_SYNC_TICKER
	bool "Nordic nRFx flash driver synchronized with radio"
	depends on BT_LL_SW_SPLIT
	help
	  Enable synchronization between flash memory driver and radio using
	  BLE LL controller ticker API.

config SOC_FLASH_NRF_RADIO_SYNC_NONE
	bool "none"
	help
	  disable synchronization between flash memory driver and radio.
endchoice

config SOC_FLASH_NRF_TIMEOUT_MULTIPLIER
	int "Multiplier for flash operation timeouts [x0.1]"
	depends on !SOC_FLASH_NRF_RADIO_SYNC_NONE
	default 1
	help
	  This is a multiplier that will be divided by 10 that is applied
	  to the flash erase and write operations timeout. The base for
	  the multiplication would allow erasing all nRF flash pages in
	  blocking mode.

endif # SOC_FLASH_NRF_RRAM
