1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/drivers/sx127x/Kconfig
Marian Buschsieweke 276ad5716a
sys/net/gnrc/netif: allow checking if a netdev is legacy or new API
A if `netdev_driver_t::confirm_send()` is provided, it provides the
new netdev API. However, detecting the API at runtime and handling
both API styles comes at a cost. This can be optimized in case only
new or only old style netdevs are in use.

To do so, this adds the pseudo modules `netdev_legacy_api` and
`netdev_new_api`. As right now no netdev actually implements the new
API, all netdevs pull in `netdev_legacy_api`. If `netdev_legacy_api` is
in used but `netdev_new_api` is not, we can safely assume at compile
time that only legacy netdevs are in use. Similar, if only
`netdev_new_api` is used, only support for the new API is needed. Only
when both are in use, run time checks are needed.

This provides two helper function to check for a netif if the
corresponding netdev implements the old or the new API. (With one
being the inverse of the other.) They are suitable for constant folding
when only new or only legacy devices are in use. Consequently, dead
branches should be eliminated by the optimizer.
2022-08-17 12:56:07 +02:00

59 lines
1.4 KiB
Plaintext

# Copyright (c) 2021 HAW Hamburg
#
# This file is subject to the terms and conditions of the GNU Lesser
# General Public License v2.1. See the file LICENSE in the top level
# directory for more details.
#
menuconfig MODULE_SX127X
bool
prompt "Semtech SX1272 and SX1276 radios driver" if !(MODULE_NETDEV_DEFAULT && HAVE_SX127X)
default y if (MODULE_NETDEV_DEFAULT && HAVE_SX127X)
depends on TEST_KCONFIG
depends on HAS_PERIPH_GPIO
depends on HAS_PERIPH_GPIO_IRQ
depends on HAS_PERIPH_SPI
depends on HAS_PERIPH_TIMER
select MODULE_IOLIST
select MODULE_LORA
select MODULE_NETDEV_LEGACY_API
select MODULE_PERIPH_GPIO
select MODULE_PERIPH_GPIO_IRQ
select MODULE_PERIPH_SPI
select MODULE_PERIPH_SPI_GPIO_MODE if HAS_PERIPH_SPI_GPIO_MODE
select MODULE_ZTIMER
select MODULE_ZTIMER_MSEC
help
Only LoRa long range modem is supported at the moment.
choice SX127X_VARIANT
bool "Radio variant"
depends on MODULE_SX127X
default MODULE_SX1272 if HAVE_SX1272
default MODULE_SX1276 if HAVE_SX1276
config MODULE_SX1272
bool "SX1272"
config MODULE_SX1276
bool "SX1276"
endchoice
config HAVE_SX1272
bool
select HAVE_SX127X
help
Indicates that an sx1272 radio is present.
config HAVE_SX1276
bool
select HAVE_SX127X
help
Indicates that an sx1276 radio is present.
config HAVE_SX127X
bool
help
Indicates that an sx127x radio is present.