/* ieee802154_nrf5.h - nRF5 802.15.4 driver */

/*
 * Copyright (c) 2017 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */
#ifndef __IEEE802154_NRF5_H__
#define __IEEE802154_NRF5_H__

#include <sections.h>
#include <atomic.h>

#define NRF5_FCS_LENGTH   (2)
#define NRF5_PSDU_LENGTH  (125)
#define NRF5_PHR_LENGTH   (1)

struct nrf5_802154_data {
	/* Pointer to the network interface. */
	struct net_if *iface;
	/* Pointer to a received frame. */
	u8_t *rx_psdu;
	/* TX buffer. First byte is PHR (length), remaining bytes are
	 * MPDU data.
	 */
	u8_t tx_psdu[NRF5_PHR_LENGTH + NRF5_PSDU_LENGTH];
	/* 802.15.4 HW address. */
	u8_t mac[8];
	/* RX thread stack. */
	char __stack rx_stack[CONFIG_IEEE802154_NRF5_RX_STACK_SIZE];
	/* RX thread control block */
	struct k_thread rx_thread;

	/* CCA complete sempahore. Unlocked when CCA is complete. */
	struct k_sem cca_wait;
	/* RX synchronization semaphore. Unlocked when frame has been
	 * received.
	 */
	struct k_sem rx_wait;
	/* TX synchronization semaphore. Unlocked when frame has been
	 * sent or CCA failed.
	 */
	struct k_sem tx_wait;
	/* TX result. Set to 1 on success, 0 otherwise. */
	bool tx_success;

	/* CCA channel energy. Unit as per 802.15.4-2006 specification. */
	s8_t channel_ed;

	/* TX power, in dBm, to be used when sending a frame. */
	s8_t txpower;
	/* 802.15.4 channel to be used when sending a frame. */
	u8_t channel;

	/* Last received frame LQI value. */
	u8_t lqi;
	/* Last received frame RSSI value. */
	s8_t rssi;
};

#endif /* __IEEE802154_NRF5_H__ */
