# Texas Instruments SimpleLink CC13x2 / CC26x2
# Copyright (c) 2019 Brett Witherspoon
# SPDX-License-Identifier: Apache-2.0

if SOC_SERIES_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/soc_legacy/arm/ti_simplelink/cc13x2_cc26x2/power.c
	select PM

config IEEE802154_CC13XX_CC26XX_SUB_GHZ
	# required for linking with PowerCC26X2_config in
	# soc/soc_legacy/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
