# Kconfig.cc2520 - TI CC2520 configuration options
#

menuconfig IEEE802154_CC2520
	bool "TI CC2520 Driver support"
	depends on NETWORKING
	select NET_L2_IEEE802154
	default n

menuconfig IEEE802154_CC2520_RAW
	bool "TI CC2520 Driver RAW channel"
	select NET_L2_RAW_CHANNEL
	default n
	help
	Enable IEEE802154_CC2520 driver with RAW channel

	The CC2520 driver with RAW channel allows to export radio interface
	over USB making an USB 802.15.4 dongle.

if IEEE802154_CC2520 || IEEE802154_CC2520_RAW

config IEEE802154_CC2520_DRV_NAME
	string "TI CC2520 Driver's name"
	default "cc2520"
	help
	This option sets the driver name

config IEEE802154_CC2520_SPI_DRV_NAME
	string "SPI driver's name to use to access CC2520"
	default ""
	help
	This option is mandatory to set which SPI controller to use in order
	to actually control the CC2520 chip.

config IEEE802154_CC2520_SPI_FREQ
	int "SPI system frequency"
	default 0
	help
	This option sets the SPI controller's frequency. Beware this value
	depends on the SPI controller being used and also on the system
	clock.

config IEEE802154_CC2520_SPI_SLAVE
	int "SPI slave linked to CC2520"
	default 0
	help
	This option sets the SPI slave number SPI controller has to switch
	to when dealing with CC2520 chip.

config IEEE802154_CC2520_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 prooves to be
	a too little one, this option makes it easy to play with the size.

config IEEE802154_CC2520_INIT_PRIO
	int "CC2520 intialization priority"
	default 80
	help
	Set the initialization priority number. Do not mess with it unless
	you know what you are doing. Beware cc2520 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_CC2520_RANDOM_MAC
	bool "Random MAC address"
	default y
	help
	  Generate a random MAC address dynamically.

if ! IEEE802154_CC2520_RANDOM_MAC

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

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

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

config IEEE802154_CC2520_MAC7
	hex "MAC Address Byte 7"
	default 0
	range 0 ff
	help
	  This is the byte 7 of the MAC address.
endif

endif
