# 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 both clock control and timer
if SYS_CLOCK_EXISTS

config CLOCK_CONTROL
	default y

config NRF_RTC_TIMER
	default y

endif # SYS_CLOCK_EXISTS

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 32768

config SYS_CLOCK_TICKS_PER_SEC
	default 128 if !TICKLESS_KERNEL
	default 32768

config ARCH_HAS_CUSTOM_BUSY_WAIT
	default y if !QEMU_TARGET

config PM
	default y if SYS_CLOCK_EXISTS && !HAS_NO_PM && MULTITHREADING

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

endif # SOC_FAMILY_NRF
