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

config NRFX_DPPI
	default $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_DPPIC))

config NRFX_PPI
	default $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_PPI))

config NRFX_GPIOTE0
	default y if SOC_SERIES_NRF51X || \
		     SOC_SERIES_NRF52X || \
		     (SOC_SERIES_NRF53X && !TRUSTED_EXECUTION_NONSECURE) || \
		     (SOC_SERIES_NRF91X && !TRUSTED_EXECUTION_NONSECURE)

config NRFX_GPIOTE1
	default y if (SOC_SERIES_NRF53X && TRUSTED_EXECUTION_NONSECURE) || \
		     (SOC_SERIES_NRF91X && TRUSTED_EXECUTION_NONSECURE)

source "Kconfig.zephyr"
