1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/drivers/rn2xx3/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

69 lines
1.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Copyright (c) 2020 Freie Universitaet Berlin
#
# 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.
#
if TEST_KCONFIG
choice
bool "RN2XX3 LoRa module"
optional
depends on HAS_PERIPH_GPIO
depends on HAS_PERIPH_UART
config MODULE_RN2483
bool "RN2483"
select MODULE_RN2XX3
config MODULE_RN2903
bool "RN2903"
select MODULE_RN2XX3
endchoice
config MODULE_RN2XX3
bool
depends on HAS_PERIPH_GPIO
depends on HAS_PERIPH_UART
select MODULE_FMT
select MODULE_NETDEV_LEGACY_API
select MODULE_PERIPH_GPIO
select MODULE_PERIPH_UART
select MODULE_ZTIMER
select MODULE_ZTIMER_MSEC
endif # TEST_KCONFIG
config USEMODULE_RN2XX3
bool
select HAVE_LORAWAN
menuconfig KCONFIG_USEMODULE_RN2XX3
bool "Configure RN2XX3 driver"
depends on USEMODULE_RN2XX3
help
Configure the RN2XX3 driver using Kconfig.
if KCONFIG_USEMODULE_RN2XX3
config RN2XX3_DEFAULT_SLEEP
int "Sleep duration in milliseconds [ms]"
range 100 $(UINT32_MAX)
default 5000
help
Set the sleep duration (in ms).
The value should be greater than RN2XX3_SLEEP_MIN (100 ms)
config RN2XX3_DEFAULT_AR
bool "Enable automatic reply"
help
Enable/disable Automatic Reply (AR) for rn2xx3 module. By enabling the
automatic reply, the module will transmit a packet without a payload
immediately after a confirmed downlink is received, or when the
Frame Pending bit has been set by the server. Refer RN2483 LoRa™
Technology Module Command Reference Users Guide for more information.
endif # KCONFIG_USEMODULE_RN2XX3