# Texas Instruments SimpleLink CC13x2 / CC26x2

# Copyright (c) 2019 Brett Witherspoon
# SPDX-License-Identifier: Apache-2.0

if SOC_SERIES_CC13X2_CC26X2

source "soc/arm/ti_simplelink/cc13x2_cc26x2/Kconfig.defconfig.cc*"

config SOC_SERIES
	default "cc13x2_cc26x2"

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 32768

# Note that when using the RTC as system clock, this needs to be 32768
# to reduce truncation errors from accumulating due to conversion to/from
# time, ticks, and HW cycles
config SYS_CLOCK_TICKS_PER_SEC
	default 32768

config NUM_IRQS
	default 38

config CC13X2_CC26X2_RTC_TIMER
	default y

config ENTROPY_CC13XX_CC26XX_RNG
	default y
	depends on ENTROPY_GENERATOR

if IEEE802154

config IEEE802154_CC13XX_CC26XX
	# required for linking with PowerCC26X2_config in
	# soc/arm/ti_simplelink/cc13x2_cc26x2/power.c
	select PM

config IEEE802154_CC13XX_CC26XX_SUB_GHZ
	# required for linking with PowerCC26X2_config in
	# soc/arm/ti_simplelink/cc13x2_cc26x2/power.c
	select PM

config NET_CONFIG_IEEE802154_DEV_NAME
	default "IEEE802154_0"

endif # IEEE802154

if BT

config BLE_CC13XX_CC26XX
	bool
	default y

endif # BT

endif # SOC_SERIES_CC13X2_CC26X2
