# 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

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

endif # IEEE802154

if BT

config BLE_CC13XX_CC26XX
	bool
	default y

endif # BT

endif # SOC_SERIES_CC13X2_CC26X2
