Lines Matching +full:ieee802154 +full:- +full:supported
4 * SPDX-License-Identifier: Apache-2.0
93 if ((net_if_get_link_addr(data.iface)->len != B91_IEEE_ADDRESS_SIZE) || in b91_run_filter()
110 struct b91_data *b91 = dev->data; in b91_get_mac()
113 sys_rand_get(b91->mac_addr, sizeof(b91->mac_addr)); in b91_get_mac()
120 b91->mac_addr[0] = (b91->mac_addr[0] & ~0x01) | 0x02; in b91_get_mac()
123 b91->mac_addr[0] = 0xC4; in b91_get_mac()
124 b91->mac_addr[1] = 0x19; in b91_get_mac()
125 b91->mac_addr[2] = 0xD1; in b91_get_mac()
126 b91->mac_addr[3] = 0x00; in b91_get_mac()
129 b91->mac_addr[4] = CONFIG_IEEE802154_B91_MAC4; in b91_get_mac()
130 b91->mac_addr[5] = CONFIG_IEEE802154_B91_MAC5; in b91_get_mac()
131 b91->mac_addr[6] = CONFIG_IEEE802154_B91_MAC6; in b91_get_mac()
132 b91->mac_addr[7] = CONFIG_IEEE802154_B91_MAC7; in b91_get_mac()
135 return b91->mac_addr; in b91_get_mac()
149 lqi32 = B91_RSSI_TO_LQI_SCALE * (rssi - B91_RSSI_TO_LQI_MIN); in b91_convert_rssi_to_lqi()
166 [data.rx_buffer[B91_LENGTH_OFFSET] + B91_RSSI_OFFSET])) - 110; in b91_update_rssi_and_lqi()
179 /* See Telink SDK Dev Handbook, AN-21010600, section 21.5.2.2. */ in b91_set_tx_payload()
180 if (payload_len > (B91_TRX_LENGTH - B91_PAYLOAD_OFFSET - IEEE802154_FCS_LENGTH)) { in b91_set_tx_payload()
181 return -EINVAL; in b91_set_tx_payload()
236 LOG_INF("ACK packet not handled - releasing."); in b91_handle_ack()
279 length = data.rx_buffer[B91_LENGTH_OFFSET] - B91_FCS_LENGTH; in b91_rf_rx_isr()
368 struct b91_data *b91 = dev->data; in b91_init()
371 k_sem_init(&b91->tx_wait, 0, 1); in b91_init()
372 k_sem_init(&b91->ack_wait, 0, 1); in b91_init()
399 struct b91_data *b91 = dev->data; in b91_iface_init()
404 b91->iface = iface; in b91_iface_init()
431 return -EBUSY; in b91_cca()
440 return -EINVAL; in b91_set_channel()
444 return -ENOTSUP; in b91_set_channel()
463 return -ENOTSUP; in b91_filter()
467 return b91_set_ieee_addr(filter->ieee_addr); in b91_filter()
469 return b91_set_short_addr(filter->short_addr); in b91_filter()
471 return b91_set_pan_id(filter->pan_id); in b91_filter()
474 return -ENOTSUP; in b91_filter()
482 /* check for supported Min/Max range */ in b91_set_txpower()
490 rf_set_power_level(b91_tx_pwr_lt[dbm - B91_TX_POWER_MIN]); in b91_set_txpower()
536 struct b91_data *b91 = dev->data; in b91_tx()
538 /* check for supported mode */ in b91_tx()
540 LOG_DBG("TX mode %d not supported", mode); in b91_tx()
541 return -ENOTSUP; in b91_tx()
545 status = b91_set_tx_payload(frag->data, frag->len); in b91_tx()
551 k_sem_reset(&b91->tx_wait); in b91_tx()
552 k_sem_reset(&b91->ack_wait); in b91_tx()
560 status = k_sem_take(&b91->tx_wait, K_MSEC(B91_TX_WAIT_TIME_MS)); in b91_tx()
563 return -EIO; in b91_tx()
567 if (frag->data[B91_FRAME_TYPE_OFFSET] & B91_ACK_REQUEST) { in b91_tx()
569 status = k_sem_take(&b91->ack_wait, K_MSEC(B91_ACK_WAIT_TIME_MS)); in b91_tx()
584 /* ed_scan not supported */ in b91_ed_scan()
586 return -ENOTSUP; in b91_ed_scan()
598 /* configure not supported */ in b91_configure()
600 return -ENOTSUP; in b91_configure()
603 /* driver-allocated attribute memory - constant across all driver instances */
617 /* IEEE802154 driver APIs structure */
645 /* IEEE802154 driver registration */