# Texas Instruments SimpleLink CC13x2 / CC26x2

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

choice
	prompt "TI SimpleLink MCU Selection"
	depends on SOC_SERIES_CC13X2_CC26X2

config SOC_CC2652R
	bool "CC2652R"

config SOC_CC1352R
	bool "CC1352R"

endchoice

menu "Customer Configuration (CCFG)"
depends on SOC_SERIES_CC13X2_CC26X2

config CC13X2_CC26X2_BOOTLOADER_ENABLE
	bool "ROM bootloader"
	help
	  Enable the serial bootloader which resides in ROM on CC13xx / CC26xx
	  devices.

config CC13X2_CC26X2_BOOTLOADER_BACKDOOR_ENABLE
	bool "ROM bootloader backdoor"
	depends on CC13X2_CC26X2_BOOTLOADER_ENABLE
	help
	  Enable the ROM bootloader backdoor which starts the bootloader if the
	  associated pin is at the correct logic level on reset.

config CC13X2_CC26X2_BOOTLOADER_BACKDOOR_PIN
	int "ROM bootloader backdoor pin"
	depends on CC13X2_CC26X2_BOOTLOADER_BACKDOOR_ENABLE
	range 0 255
	default 255
	help
	  Set the pin that is level checked if the bootloader backdoor is
	  enabled.

config CC13X2_CC26X2_BOOTLOADER_BACKDOOR_LEVEL
	int "ROM bootloader backdoor level"
	depends on CC13X2_CC26X2_BOOTLOADER_BACKDOOR_ENABLE
	range 0 1
	default 0
	help
	  Set the active level of the pin selected for the bootloader backdoor.

endmenu
