menuconfig IEEE802154_DRIVERS
	tristate "IEEE 802.15.4 drivers"
	depends on NETDEVICES && IEEE802154
	default y
	---help---
	  Say Y here to get to see options for IEEE 802.15.4 Low-Rate
	  Wireless Personal Area Network device drivers. This option alone
	  does not add any kernel code.

	  If you say N, all options in this submenu will be skipped and
	  disabled.

config IEEE802154_FAKELB
	depends on IEEE802154_DRIVERS && MAC802154
	tristate "IEEE 802.15.4 loopback driver"
	---help---
	  Say Y here to enable the fake driver that can emulate a net
	  of several interconnected radio devices.

	  This driver can also be built as a module. To do so say M here.
	  The module will be called 'fakelb'.

config IEEE802154_AT86RF230
	depends on IEEE802154_DRIVERS && MAC802154
	tristate "AT86RF230/231/233/212 transceiver driver"
	depends on SPI
	select REGMAP_SPI
	---help---
	  Say Y here to enable the at86rf230/231/233/212 SPI 802.15.4 wireless
	  controller.

	  This driver can also be built as a module. To do so, say M here.
	  the module will be called 'at86rf230'.

config IEEE802154_AT86RF230_DEBUGFS
	depends on IEEE802154_AT86RF230
	bool "AT86RF230 debugfs interface"
	depends on DEBUG_FS
	---help---
	  This option compiles debugfs code for the at86rf230 driver.

config IEEE802154_MRF24J40
	tristate "Microchip MRF24J40 transceiver driver"
	depends on IEEE802154_DRIVERS && MAC802154
	depends on SPI
	select REGMAP_SPI
	---help---
	  Say Y here to enable the MRF24J20 SPI 802.15.4 wireless
	  controller.

	  This driver can also be built as a module. To do so, say M here.
	  the module will be called 'mrf24j40'.

config IEEE802154_CC2520
	depends on IEEE802154_DRIVERS && MAC802154
	tristate "CC2520 transceiver driver"
	depends on SPI
	---help---
	  Say Y here to enable the CC2520 SPI 802.15.4 wireless
	  controller.

	  This driver can also be built as a module. To do so, say M here.
	  the module will be called 'cc2520'.

config IEEE802154_ATUSB
	tristate "ATUSB transceiver driver"
	depends on IEEE802154_DRIVERS && MAC802154 && USB
	---help---
	  Say Y here to enable the ATUSB IEEE 802.15.4 wireless
	  controller.

	  This driver can also be built as a module. To do so say M here.
	  The module will be called 'atusb'.

config IEEE802154_ADF7242
       tristate "ADF7242 transceiver driver"
       depends on IEEE802154_DRIVERS && MAC802154
       depends on SPI
	---help---
	  Say Y here to enable the ADF7242 SPI 802.15.4 wireless
	  controller.

	  This driver can also be built as a module. To do so, say M here.
	  the module will be called 'adf7242'.

config IEEE802154_CA8210
	tristate "Cascoda CA8210 transceiver driver"
	depends on IEEE802154_DRIVERS && MAC802154
	depends on COMMON_CLK
	depends on SPI
	---help---
	  Say Y here to enable the CA8210 SPI 802.15.4 wireless
	  controller.

	  This driver can also be built as a module. To do so, say M here.
	  the module will be called 'ca8210'.

config IEEE802154_CA8210_DEBUGFS
	bool "CA8210 debugfs interface"
	depends on IEEE802154_CA8210
	depends on DEBUG_FS
	---help---
	  This option compiles debugfs code for the ca8210 driver. This
	  exposes a debugfs node for each CA8210 instance which allows
	  direct use of the Cascoda API, exposing the 802.15.4 MAC
	  management entities.

config IEEE802154_MCR20A
       tristate "MCR20A transceiver driver"
       depends on IEEE802154_DRIVERS && MAC802154
       depends on SPI
	---help---
	  Say Y here to enable the MCR20A SPI 802.15.4 wireless
	  controller.

	  This driver can also be built as a module. To do so, say M here.
	  the module will be called 'mcr20a'.

config IEEE802154_HWSIM
	depends on IEEE802154_DRIVERS && MAC802154
	tristate "Simulated radio testing tool for mac802154"
	---help---
	  This driver is a developer testing tool that can be used to test
	  IEEE 802.15.4 networking stack (mac802154) functionality. This is not
	  needed for normal wpan usage and is only for testing.

	  This driver can also be built as a module. To do so say M here.
	  The module will be called 'mac802154_hwsim'.
