# SPDX-License-Identifier: Apache-2.0

config FLASH_NRF_FORCE_ALT
	bool
	depends on SOC_COMPATIBLE_NRF
	help
	  This option can be enabled to force an alternative implementation
	  of the flash driver.

menuconfig SOC_FLASH_NRF
	bool "Nordic Semiconductor nRF flash driver"
	default y
	depends on DT_HAS_NORDIC_NRF51_FLASH_CONTROLLER_ENABLED || \
		   DT_HAS_NORDIC_NRF52_FLASH_CONTROLLER_ENABLED || \
		   DT_HAS_NORDIC_NRF53_FLASH_CONTROLLER_ENABLED || \
		   DT_HAS_NORDIC_NRF91_FLASH_CONTROLLER_ENABLED
	depends on !FLASH_NRF_FORCE_ALT
	select FLASH_HAS_PAGE_LAYOUT
	select FLASH_HAS_DRIVER_ENABLED
	select NRFX_NVMC
	select MPU_ALLOW_FLASH_WRITE if ARM_MPU
	help
	  Enables Nordic Semiconductor nRF flash driver.

if SOC_FLASH_NRF

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_PARTIAL_ERASE
	bool "Nordic nRFx flash driver partial erase"
	depends on HAS_HW_NRF_NVMC_PE
	help
	  Enable partial erase feature. Partial erase is performed in time
	  slices instead of blocking MCU, for the time it is needed to
	  complete operation over given area.
	  This allows interrupting flash erase between operations
	  to perform other task by MCU.
	  This feature may also be used for better syncing flash erase
	  operations, when compiled with SOC_FLASH_NRF_RADIO_SYNC_TICKER,
	  with Bluetooth.

config SOC_FLASH_NRF_PARTIAL_ERASE_MS
	int "Partial erase timeout in MS"
	depends on SOC_FLASH_NRF_PARTIAL_ERASE
	default 3
	help
	  This is maximum time, in ms, that NVMC will use to erase part
	  of Flash, before stopping to let CPU resume operation.
	  Minimal timeout is 2ms maximum should not exceed half of
	  FLASH_PAGE_ERASE_MAX_TIME_US im ms.

config SOC_FLASH_NRF_UICR
	bool "Access to UICR"
	depends on !TRUSTED_EXECUTION_NONSECURE
	help
	  Enable operations on UICR. Once enabled UICR are written or read as
	  ordinary flash memory. Erase is possible for whole UICR at once.

config SOC_FLASH_NRF_EMULATE_ONE_BYTE_WRITE_ACCESS
	bool "8-bit write block size emulation"
	help
	  When this option is enabled writing chunks less than minimal write
	  block size parameter (imposed by manufacturer) is possible but operation
	  is more complex and requires basic user knowledge about NVMC controller.

endif # SOC_FLASH_NRF
