# TI CC1200 configuration options

# SPDX-License-Identifier: Apache-2.0

menuconfig IEEE802154_CC1200
	bool "TI CC1200 Driver support"
	default y
	depends on DT_HAS_TI_CC1200_ENABLED

if IEEE802154_CC1200

config IEEE802154_CC1200_RX_STACK_SIZE
	int "Driver's internal RX thread stack size"
	default 800
	help
	  This option sets the driver's stack size for its internal RX thread.
	  The default value should be sufficient, but in case it proves to be
	  a too little one, this option makes it easy to play with the size.

config IEEE802154_CC1200_INIT_PRIO
	int "CC1200 initialization priority"
	default 80
	help
	  Set the initialization priority number. Do not mess with it unless
	  you know what you are doing. Beware cc1200 requires gpio and spi to
	  be ready first (and sometime gpio should be the very first as spi
	  might need it too). And of course it has to start before the net stack.

config IEEE802154_CC1200_RANDOM_MAC
	bool "Random MAC address"
	default y
	help
	  Generate a random MAC address dynamically.

if ! IEEE802154_CC1200_RANDOM_MAC

config IEEE802154_CC1200_MAC4
	hex "MAC Address Byte 4"
	default 0
	range 0 0xff
	help
	  This is the byte 4 of the MAC address.

config IEEE802154_CC1200_MAC5
	hex "MAC Address Byte 5"
	default 0
	range 0 0xff
	help
	  This is the byte 5 of the MAC address.

config IEEE802154_CC1200_MAC6
	hex "MAC Address Byte 6"
	default 0
	range 0 0xff
	help
	  This is the byte 6 of the MAC address.

config IEEE802154_CC1200_MAC7
	hex "MAC Address Byte 7"
	default 0
	range 0 0xff
	help
	  This is the byte 7 of the MAC address.

endif # IEEE802154_CC1200_RANDOM_MAC

config IEEE802154_CC1200_XOSC
	int "Value of the Crystal oscillator in kHz"
	default 40000
	help
	  This sets the XOSC value, it must be between 38400 and 40000.
	  This value should follow what has been set in the RF settings via
	  SmartRF tool. Do not touch this unless you know what you are doing.

config IEEE802154_CC1200_RF_PRESET
	bool "Use TI CC1200 RF pre-sets"
	default y

choice
	prompt "TI CC1200 RF preset"
	default IEEE802154_CC1200_RF_SET_0
	depends on IEEE802154_CC1200_RF_PRESET
	help
	  Set the RF preset you want to use.

config IEEE802154_CC1200_RF_SET_0
	bool "IEEE 802.15.4g SUN MR-FSK, 863MHz band, mode #1 - channel page 9, 34 channels, 50Kbps (ETSI)"
	help
	   This is a legacy IEEE 802.15.4g-2012 SUN MR-FSK PHY that does no
	   longer exist in recent standards (IEEE 802.15.4-2015+).

config IEEE802154_CC1200_RF_SET_1
	bool "IEEE 802.15.4g SUN MR-FSK 920MHz band, mode #1 - channel page 9, 39 channels, 50Kbps (ARIB)"
	help
	   This is a legacy IEEE 802.15.4g-2012 SUN MR-FSK PHY that does no
	   longer exist in recent standards (IEEE 802.15.4-2015+).

config IEEE802154_CC1200_RF_SET_2
	bool "IEEE 802.15.4 Non-Standard 2-GFSK 433MHz band - channel page 9, 15 channels, 50Kbps (ETSI)"
	help
	   This is a non-standard PHY similar to the IEEE 802.15.4g-2012 SUN
	   MR-FSK PHY but not in one of the standard bands.

endchoice

config IEEE802154_CC1200_CCA_THRESHOLD
	int "Value in dbm of the CCA threshold"
	default -91
	help
	  Set the CCA threshold. See datasheet's AGC_CS_THR register for
	  more information. Do not touch this unless you know what you are doing.

config IEEE802154_CC1200_RSSI_OFFSET
	int "Value in dbm of the RSSI offset"
	default -81
	help
	  Set the gain adjustment. See datasheet's AGC_GAIN_ADJUST register for
	  more information. Do not touch this unless you know what you are doing.

# Do no touch below settings unless you know what you are doing
config IEEE802154_CC1200_SETTLING_CFG
	hex
	default 0x03

config IEEE802154_CC1200_PKTCFG0
	hex
	default 0x20

config IEEE802154_CC1200_PKTCFG1
	hex
	default 0x03

config IEEE802154_CC1200_PKTCFG2
	hex
	default 0x00

config IEEE802154_CC1200_RFEND_CFG1
	hex
	default 0x3F

config IEEE802154_CC1200_RFEND_CFG0
	hex
	default 0x00

endif # IEEE802154_CC1200
