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

config RETAINED_MEM_NRF_GPREGRET
	bool "nRF GPREGRET driver"
	default y
	depends on DT_HAS_NORDIC_NRF_GPREGRET_ENABLED
	help
	  Enable driver for Nordic nRF GPREGRET-based retained memory
	  register support.
