# 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

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
