# Texas Instruments SimpleLink CC13x2 / CC26x2

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

config SOC_SERIES_CC13X2_CC26X2
	bool "TI SimpleLink Family CC13x2 / CC26x2"
	select ARM
	select CPU_CORTEX_M4
	select CPU_CORTEX_M_HAS_DWT
	select CPU_HAS_FPU
	select SOC_FAMILY_TISIMPLELINK
	select HAS_CC13X2_CC26X2_SDK
	select HAS_TI_CCFG
	select PM_STATE_LOCK if PM
	help
	  Enable support for TI SimpleLink CC13x2 / CC26x2 SoCs
