1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

drivers/kw41zrf: register with netdev

This commit is contained in:
Benjamin Valentin 2020-10-08 15:53:25 +02:00
parent f6e75494bb
commit b32bc3dbd1
6 changed files with 16 additions and 14 deletions

View File

@ -135,8 +135,10 @@ typedef struct {
* @brief Setup an KW41ZRF based device state * @brief Setup an KW41ZRF based device state
* *
* @param[out] dev device descriptor * @param[out] dev device descriptor
* @param[in] index index of @p params in a global parameter struct array.
* If initialized manually, pass a unique identifier instead.
*/ */
void kw41zrf_setup(kw41zrf_t *dev); void kw41zrf_setup(kw41zrf_t *dev, uint8_t index);
/** /**
* @brief Initialize the given KW41ZRF device * @brief Initialize the given KW41ZRF device

View File

@ -283,6 +283,7 @@ typedef enum {
NETDEV_CC2538, NETDEV_CC2538,
NETDEV_DOSE, NETDEV_DOSE,
NETDEV_ENC28J60, NETDEV_ENC28J60,
NETDEV_KW41ZRF,
NETDEV_MRF24J40, NETDEV_MRF24J40,
NETDEV_NRF802154, NETDEV_NRF802154,
/* add more if needed */ /* add more if needed */

View File

@ -1,4 +1,3 @@
USEMODULE += luid
USEMODULE += netif USEMODULE += netif
USEMODULE += ieee802154 USEMODULE += ieee802154
USEMODULE += netdev_ieee802154 USEMODULE += netdev_ieee802154

View File

@ -21,7 +21,6 @@
#include "log.h" #include "log.h"
#include "msg.h" #include "msg.h"
#include "luid.h"
#include "net/gnrc.h" #include "net/gnrc.h"
#include "net/ieee802154.h" #include "net/ieee802154.h"
@ -39,23 +38,24 @@
static void kw41zrf_set_address(kw41zrf_t *dev) static void kw41zrf_set_address(kw41zrf_t *dev)
{ {
DEBUG("[kw41zrf] Set MAC address\n"); DEBUG("[kw41zrf] Set MAC address\n");
eui64_t addr_long;
network_uint16_t addr_short;
/* get unique IDs to use as hardware addresses */
luid_get_eui64(&addr_long);
luid_get_short(&addr_short);
/* set short and long address */ /* set short and long address */
kw41zrf_set_addr_long(dev, &addr_long); kw41zrf_set_addr_long(dev, (eui64_t *)&dev->netdev.long_addr);
kw41zrf_set_addr_short(dev, &addr_short); kw41zrf_set_addr_short(dev, (network_uint16_t *)&dev->netdev.short_addr);
} }
void kw41zrf_setup(kw41zrf_t *dev) void kw41zrf_setup(kw41zrf_t *dev, uint8_t index)
{ {
netdev_t *netdev = (netdev_t *)dev; netdev_t *netdev = (netdev_t *)dev;
netdev->driver = &kw41zrf_driver; netdev->driver = &kw41zrf_driver;
/* register with netdev */
netdev_register(netdev, NETDEV_KW41ZRF, index);
/* get unique IDs to use as hardware addresses */
netdev_ieee802154_setup(&dev->netdev);
/* initialize device descriptor */ /* initialize device descriptor */
dev->idle_seq = XCVSEQ_RECEIVE; dev->idle_seq = XCVSEQ_RECEIVE;
dev->pm_blocked = 0; dev->pm_blocked = 0;

View File

@ -68,7 +68,7 @@ void openthread_bootstrap(void)
netdev_t *netdev = (netdev_t *) &at86rf2xx_dev; netdev_t *netdev = (netdev_t *) &at86rf2xx_dev;
#endif #endif
#ifdef MODULE_KW41ZRF #ifdef MODULE_KW41ZRF
kw41zrf_setup(&kw41z_dev); kw41zrf_setup(&kw41z_dev, 0);
netdev_t *netdev = (netdev_t *) &kw41z_dev; netdev_t *netdev = (netdev_t *) &kw41z_dev;
#endif #endif

View File

@ -56,7 +56,7 @@ void auto_init_kw41zrf(void)
{ {
for (unsigned i = 0; i < KW41ZRF_NUMOF; i++) { for (unsigned i = 0; i < KW41ZRF_NUMOF; i++) {
LOG_DEBUG("[auto_init_netif] initializing kw41zrf #%u\n", i); LOG_DEBUG("[auto_init_netif] initializing kw41zrf #%u\n", i);
kw41zrf_setup(&kw41zrf_devs[i]); kw41zrf_setup(&kw41zrf_devs[i], i);
#if defined(MODULE_GNRC_GOMACH) #if defined(MODULE_GNRC_GOMACH)
gnrc_netif_gomach_create(&_netif[i], _kw41zrf_stacks[i], KW41ZRF_NETIF_STACKSIZE, gnrc_netif_gomach_create(&_netif[i], _kw41zrf_stacks[i], KW41ZRF_NETIF_STACKSIZE,