# Nordic Semiconductor nRFx MCU line

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

if SOC_FAMILY_NORDIC_NRF

rsource "*/Kconfig.defconfig"

# 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 ARM && !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_NORDIC_NRF
