a1adbcb125
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>
121 lines
4 KiB
Plaintext
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
|