mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
276ad5716a
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.
69 lines
1.7 KiB
Plaintext
69 lines
1.7 KiB
Plaintext
# 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 User’s Guide for more information.
|
||
|
||
endif # KCONFIG_USEMODULE_RN2XX3
|