/* * Copyright (c) 2019 Brett Witherspoon * Copyright (c) 2020 Friedt Professional Engineering Services, Inc * * SPDX-License-Identifier: Apache-2.0 */ #ifndef ZEPHYR_DRIVERS_IEEE802154_IEEE802154_CC13XX_CC26XX_SUBG_H_ #define ZEPHYR_DRIVERS_IEEE802154_IEEE802154_CC13XX_CC26XX_SUBG_H_ #include #include #include #include #include #include #include #include #include #include #define CC13XX_CC26XX_NUM_RX_BUF \ CONFIG_IEEE802154_CC13XX_CC26XX_SUB_GHZ_NUM_RX_BUF /* Three additional bytes for length, RSSI and status values from CPE */ #define CC13XX_CC26XX_RX_BUF_SIZE (IEEE802154_MAX_PHY_PACKET_SIZE + 3) #define CC13XX_CC26XX_TX_BUF_SIZE (IEEE802154_PHY_SUN_FSK_PHR_LEN + IEEE802154_MAX_PHY_PACKET_SIZE) #define CC13XX_CC26XX_INVALID_RSSI INT8_MIN struct ieee802154_cc13xx_cc26xx_subg_data { /* protects writable data and serializes access to the API */ struct k_sem lock; RF_Handle rf_handle; RF_Object rf_object; struct net_if *iface; uint8_t mac[8]; /* in big endian */ bool is_up; dataQueue_t rx_queue; rfc_dataEntryPointer_t rx_entry[CC13XX_CC26XX_NUM_RX_BUF]; uint8_t rx_data[CC13XX_CC26XX_NUM_RX_BUF][CC13XX_CC26XX_RX_BUF_SIZE]; uint8_t tx_data[CC13XX_CC26XX_TX_BUF_SIZE]; /* Common Radio Commands */ volatile rfc_CMD_FS_t cmd_fs; /* Sub-GHz Radio Commands */ volatile rfc_CMD_PROP_RX_ADV_t cmd_prop_rx_adv; volatile rfc_CMD_PROP_TX_ADV_t cmd_prop_tx_adv; volatile rfc_propRxOutput_t cmd_prop_rx_adv_output; volatile rfc_CMD_PROP_CS_t cmd_prop_cs; RF_CmdHandle rx_cmd_handle; }; #endif /* ZEPHYR_DRIVERS_IEEE802154_IEEE802154_CC13XX_CC26XX_SUBG_H_ */