示例#1
0
static int _init(netdev_t *netdev)
{
    kw2xrf_t *dev = (kw2xrf_t *)netdev;

    /* initialize SPI and GPIOs */
    if (kw2xrf_init(dev, &_irq_handler)) {
        LOG_ERROR("[kw2xrf] unable to initialize device\n");
        return -1;
    }

#ifdef MODULE_NETSTATS_L2
    memset(&netdev->stats, 0, sizeof(netstats_t));
#endif

    /* reset device to default values and put it into RX state */
    kw2xrf_reset_phy(dev);

    return 0;
}
示例#2
0
void auto_init_kw2xrf(void)
{
    for (int i = 0; i < KW2XRF_NUM; i++) {
        const kw2xrf_params_t *p = &kw2xrf_params[i];

        DEBUG("Initializing KW2xrf radio at SPI_%i\n", p->spi);
        int res = kw2xrf_init(&kw2xrf_devs[i],
                              p->spi,
                              p->spi_speed,
                              p->cs_pin,
                              p->int_pin);

        if (res < 0) {
            DEBUG("Error initializing KW2xrf radio device!\n");
        }
        else {
            gnrc_nomac_init(_nomac_stacks[i],
                            KW2XRF_MAC_STACKSIZE, KW2XRF_MAC_PRIO,
                            "kw2xrf", (gnrc_netdev_t *)&kw2xrf_devs[i]);
        }
    }
}