zephyr/drivers/ieee802154/Kconfig
Tomasz Bursztyka a1adbcb125 ieee802154: Replace the CC2520 driver with a new implementation
This is a complete new cc2520 driver for zephyr. Intention is to fit
better within Zephyr device driver model.

- It's (almost*) ready to be instanciated as many times as necessary
- It's fully interrupt based on SFD and FIFOP (no pin polling)
- It's nicer to other sub-systems (it sleeps, no busy-wait loop)
- It still loosely complies to old legacy radio device driver model

*: GPIO API needs to be fixed in order to accept multiple callbacks, as
well as enabling callbacks to retrieve private data.

Notes:
- Hardware filtering does not work yet as the net stack, above, needs to
  provide the relevant information for it (src/dst ieee802154 extended
  addresses, short addresses...)
- A embryo of generic functions (txpower, channel, addresses...)
  have been implemented but don't belong yet to any radio device driver
  model. Such new driver model will come afterwards (soon?)
- SPI API would need to be improved to avoid as much as possible memcpy
  as well as spi_slave_select() call.

Change-Id: I1fd6dfff28fba3984f6006d394ea12f1e763ac18
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-04-07 17:25:02 +00:00

121 lines
4 KiB
Plaintext

# Kconfig - IEEE 802.15.4 driver configuration options
#
# Copyright (c) 2015 Intel Corporation
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1) Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
#
# 2) Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# 3) Neither the name of Intel Corporation nor the names of its contributors
# may be used to endorse or promote products derived from this software without
# specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
#
# IEEE 802.15.4 options
#
menu "IEEE 802.15.4 Options"
depends on NETWORKING_WITH_15_4
if NETWORKING_WITH_15_4_TI_CC2520
config TI_CC2520_DEBUG
bool "CC2520 driver debug"
default n
help
This option enables debug support for 802.15.4 CC2520 driver.
config TI_CC2520_DRV_NAME
string "TI CC2520 Driver's name"
default "cc2520"
help
This option sets the driver name
config TI_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 TI_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 TI_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 TI_CC2520_FIBER_STACK_SIZE
int "Driver's internal fiber stack size"
default 640
help
This option sets the driver's stack size for its internal fiber.
The default value should be sufficient, but it case it prooves to be
a too little, this option makes it easy to play with the size.
config TI_CC2520_CHANNEL
int "TI CC2520 Channel"
default 26
range 11 26
help
All the 802.15.4 devices that want to connect to each other need
to have same channel. Default channel is 26.
config TI_CC2520_AUTO_CRC
bool "Let the chip handling CRC on reception"
default y
help
When receiving a packet, the hardware can verify the CRC by itself
and will provide a flag letting know the success - or not - on
a flag on the footer.
config TI_CC2520_LINK_DETAILS
bool "Forward RSSI and link information on reception to upper stack"
default n
select TI_CC2520_AUTO_CRC
help
If necessary, it will be possible to grab link and RSSI information
from the packet footer and forward them to the above stack.
config TI_CC2520_AUTO_ACK
bool "Let the chip handle TX/RX IEEE 802.15.4 ACK requests"
default n
select TI_CC2520_AUTO_CRC
help
The chip is able to reply by itself to ACK requests as well as
waiting for an ACK when a TX packet is requesting an ACK. However,
this feature requires the chip to get hardware filtering on, and
thus the above stack needs to provide the right information for such
filtering feature to work.
endif
endmenu