# 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 PINMUX_CC13XX_CC26XX
	default y
	depends on PINMUX

config GPIO_CC13XX_CC26XX
	default y
	depends on GPIO

config ENTROPY_CC13XX_CC26XX_RNG
	default y
	depends on ENTROPY_GENERATOR

config UART_CC13XX_CC26XX
	default y
	depends on SERIAL

config I2C_CC13XX_CC26XX
	default y
	depends on I2C

config SPI_CC13XX_CC26XX
	default y
	depends on SPI

if IEEE802154

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

config IEEE802154_CC13XX_CC26XX_SUB_GHZ
	default y
	# 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_CC13XX_CC26XX_DRV_NAME

endif # IEEE802154

if BT

config BLE_CC13XX_CC26XX
	bool
	default y

endif # BT

endif # SOC_SERIES_CC13X2_CC26X2
