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; }
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]); } } }