# Nordic Semiconductor nRFx MCU line

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

if SOC_FAMILY_NRF

source "soc/arm/nordic_nrf/*/Kconfig.defconfig.series"

# If the kernel has timer support, enable clock control
if SYS_CLOCK_EXISTS

config CLOCK_CONTROL
	default y if !SOC_SERIES_NRF54HX

endif # SYS_CLOCK_EXISTS

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 1000000 if NRF_GRTC_TIMER
	default 32768

config SYS_CLOCK_TICKS_PER_SEC
	default 128 if !TICKLESS_KERNEL
	default 10000  if NRF_GRTC_TIMER
	default 32768

config ARCH_HAS_CUSTOM_BUSY_WAIT
	default y if !QEMU_TARGET

config BUILD_OUTPUT_HEX
	default y

if !CORTEX_M_DWT && NRF_RTC_TIMER
config SOC_HAS_TIMING_FUNCTIONS
	default y
endif

config GPIO
	default y
	depends on SPI

config UART_USE_RUNTIME_CONFIGURE
	default n

endif # SOC_FAMILY_NRF
