| # 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_TIMEOUT_MULTIPLIER | 
 | 	int "Multiplier for flash operation timeouts [x0.1]" | 
 | 	depends on !SOC_FLASH_NRF_RADIO_SYNC_NONE | 
 | 	default 15 if SOC_FLASH_NRF_PARTIAL_ERASE && SOC_FLASH_NRF_RADIO_SYNC_TICKER | 
 | 	default 10 | 
 | 	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. | 
 |  | 
 | 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 |