/* ieee802154_rf2xx_iface.h - ATMEL RF2XX transceiver interface */ /* * Copyright (c) 2019-2020 Gerson Fernando Budke * * SPDX-License-Identifier: Apache-2.0 */ #ifndef ZEPHYR_DRIVERS_IEEE802154_IEEE802154_RF2XX_IFACE_H_ #define ZEPHYR_DRIVERS_IEEE802154_IEEE802154_RF2XX_IFACE_H_ /** * @brief Resets the TRX radio * * @param[in] dev Transceiver device instance */ void rf2xx_iface_phy_rst(const struct device *dev); /** * @brief Start TX transmission * * @param[in] dev Transceiver device instance */ void rf2xx_iface_phy_tx_start(const struct device *dev); /** * @brief Reads current value from a transceiver register * * This function reads the current value from a transceiver register. * * @param[in] dev Transceiver device instance * @param[in] addr Specifies the address of the trx register * from which the data shall be read * * @return value of the register read */ uint8_t rf2xx_iface_reg_read(const struct device *dev, uint8_t addr); /** * @brief Writes data into a transceiver register * * This function writes a value into transceiver register. * * @param[in] dev Transceiver device instance * @param[in] addr Address of the trx register * @param[in] data Data to be written to trx register * */ void rf2xx_iface_reg_write(const struct device *dev, uint8_t addr, uint8_t data); /** * @brief Subregister read * * @param[in] dev Transceiver device instance * @param[in] addr offset of the register * @param[in] mask bit mask of the subregister * @param[in] pos bit position of the subregister * * @return value of the read bit(s) */ uint8_t rf2xx_iface_bit_read(const struct device *dev, uint8_t addr, uint8_t mask, uint8_t pos); /** * @brief Subregister write * * @param[in] dev Transceiver device instance * @param[in] reg_addr Offset of the register * @param[in] mask Bit mask of the subregister * @param[in] pos Bit position of the subregister * @param[out] new_value Data, which is muxed into the register */ void rf2xx_iface_bit_write(const struct device *dev, uint8_t reg_addr, uint8_t mask, uint8_t pos, uint8_t new_value); /** * @brief Reads frame buffer of the transceiver * * This function reads the frame buffer of the transceiver. * * @param[in] dev Transceiver device instance * @param[out] data Pointer to the location to store frame * @param[in] length Number of bytes to be read from the frame */ void rf2xx_iface_frame_read(const struct device *dev, uint8_t *data, uint8_t length); /** * @brief Writes data into frame buffer of the transceiver * * This function writes data into the frame buffer of the transceiver * * @param[in] dev Transceiver device instance * @param[in] data Pointer to data to be written into frame buffer * @param[in] length Number of bytes to be written into frame buffer */ void rf2xx_iface_frame_write(const struct device *dev, uint8_t *data, uint8_t length); /** * @brief Reads sram data from the transceiver * * This function reads the sram data of the transceiver. * * @param[in] dev Transceiver device instance * @param[in] address Start address to be read * @param[out] data Pointer to the location to store data * @param[in] length Number of bytes to be read from the sram space */ void rf2xx_iface_sram_read(const struct device *dev, uint8_t address, uint8_t *data, uint8_t length); #endif /* ZEPHYR_DRIVERS_IEEE802154_IEEE802154_RF2XX_IFACE_H_ */