# 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, except for SoCs
# based on the Haltium platform SoCs where clock control is not needed
# for the system timer
config CLOCK_CONTROL
	default y if SYS_CLOCK_EXISTS && !NRF_PLATFORM_HALTIUM

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 31250  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
