Merge pull request #16238 from aabadie/semtech-loramac_sx126x

pkg/semtech-loramac: add support for sx126x/llcc68 radios
This commit is contained in:
Francisco 2021-03-31 09:31:46 +02:00 committed by GitHub
commit c082b42b04
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 44 additions and 1 deletions

View File

@ -32,9 +32,17 @@
#include "net/loramac.h"
#include "semtech_loramac.h"
#if IS_USED(MODULE_SX127X)
#include "sx127x.h"
#include "sx127x_netdev.h"
#include "sx127x_params.h"
#endif
#if IS_USED(MODULE_SX126X)
#include "sx126x.h"
#include "sx126x_netdev.h"
#include "sx126x_params.h"
#endif
/* Messages are sent every 20s to respect the duty cycle on each channel */
#define PERIOD (20U)
@ -114,9 +122,17 @@ int main(void)
fmt_hex_bytes(appkey, CONFIG_LORAMAC_APP_KEY_DEFAULT);
/* Initialize the radio driver */
#if IS_USED(MODULE_SX127X)
sx127x_setup(&sx127x, &sx127x_params[0], 0);
loramac.netdev = (netdev_t *)&sx127x;
loramac.netdev->driver = &sx127x_driver;
#endif
#if IS_USED(MODULE_SX126X)
sx126x_setup(&sx126x, &sx126x_params[0], 0);
loramac.netdev = (netdev_t *)&sx126x;
loramac.netdev->driver = &sx126x_driver;
#endif
/* Initialize the loramac stack */
semtech_loramac_init(&loramac);

View File

@ -18,19 +18,46 @@
*/
#include "log.h"
#include "kernel_defines.h"
#if IS_USED(MODULE_SX127X)
#include "sx127x.h"
#include "sx127x_netdev.h"
#include "sx127x_params.h"
#endif
#if IS_USED(MODULE_SX126X)
#include "sx126x.h"
#include "sx126x_netdev.h"
#include "sx126x_params.h"
#endif
#include "semtech_loramac.h"
semtech_loramac_t loramac;
#if IS_USED(MODULE_SX127X)
static sx127x_t sx127x;
#endif
#if IS_USED(MODULE_SX126X)
static sx126x_t sx126x;
#endif
void auto_init_loramac(void)
{
#if IS_USED(MODULE_SX127X)
sx127x_setup(&sx127x, &sx127x_params[0], 0);
loramac.netdev = (netdev_t *)&sx127x;
loramac.netdev->driver = &sx127x_driver;
#endif
#if IS_USED(MODULE_SX126X)
sx126x_setup(&sx126x, &sx126x_params[0], 0);
loramac.netdev = (netdev_t *)&sx126x;
loramac.netdev->driver = &sx126x_driver;
#endif
semtech_loramac_init(&loramac);
}
/** @} */

View File

@ -167,7 +167,7 @@ void gnrc_netif_init_devs(void)
auto_init_nrf802154();
}
if (IS_USED(MODULE_SX126X)) {
if (IS_USED(MODULE_SX126X) && !IS_USED(MODULE_SEMTECH_LORAMAC)) {
extern void auto_init_sx126x(void);
auto_init_sx126x();
}