118 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /****************************************************************************
 | |
| 
 | |
| Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
 | |
| 
 | |
| This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
 | |
| be copied by any method or incorporated into another program without
 | |
| the express written consent of Aerospace C.Power. This Information or any portion
 | |
| thereof remains the property of Aerospace C.Power. The Information contained herein
 | |
| is believed to be accurate and Aerospace C.Power assumes no responsibility or
 | |
| liability for its use in any way and conveys no license or title under
 | |
| any patent or copyright and makes no representation or warranty that this
 | |
| Information is free from patent or copyright infringement.
 | |
| 
 | |
| ****************************************************************************/
 | |
| 
 | |
| #ifndef _BB_CPU_HW_RING_H_
 | |
| #define _BB_CPU_HW_RING_H_
 | |
| 
 | |
| /* os shim includes */
 | |
| #include "os_types.h"
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /**
 | |
|  * @brief                   base on phr select ring,
 | |
|  *                          and return payload rx buffer
 | |
|  * @param phr_info:         rx phr info
 | |
|  * @retval:                 payload rx buffer address.
 | |
|  *                          for packet with no payload, return NULL.
 | |
|  */
 | |
| uint8_t *bb_cpu_hw_ring_select(void *phr_info);
 | |
| 
 | |
| /**
 | |
|  * @brief                   all or packet data rx compelet, then fill ring desc
 | |
|  * @retval:                 error code. see ERR_XXX.
 | |
|  */
 | |
| uint32_t bb_cpu_hw_ring_rx_complete_cfg_desc(void);
 | |
| 
 | |
| /**
 | |
|  * @brief                   trigger ring buffer rx done flow.
 | |
|  *                          update ring buffer write index, and set rx done
 | |
|  *                          isr to plc cpu。
 | |
|  * @retval:                 error code. see ERR_XXX.
 | |
|  */
 | |
| uint32_t bb_cpu_hw_ring_rx_done_set(void);
 | |
| 
 | |
| /**
 | |
|  * @brief                   set snr to ring buffer
 | |
|  * @param snr:              snr value
 | |
|  * @retval:                 none.
 | |
|  */
 | |
| void bb_cpu_hw_ring_snr_set(int8_t snr);
 | |
| 
 | |
| /**
 | |
|  * @brief                   set raw snr to ring buffer
 | |
|  * @param snr:              raw snr value
 | |
|  * @retval:                 none.
 | |
|  */
 | |
| void bb_cpu_hw_ring_raw_snr_set(uint16_t snr);
 | |
| 
 | |
| /**
 | |
|  * @brief                   set rssi to ring buffer
 | |
|  * @param rssi:             rssi value
 | |
|  * @retval:                 none.
 | |
|  */
 | |
| void bb_cpu_hw_ring_rssi_set(int8_t rssi);
 | |
| 
 | |
| /**
 | |
|  * @brief                   set rx gain to ring buffer
 | |
|  * @param rx_gain:          rx gain value
 | |
|  * @retval:                 none.
 | |
|  */
 | |
| void bb_cpu_hw_ring_rx_gain_set(uint8_t rx_gain);
 | |
| 
 | |
| /**
 | |
|  * @brief                   set rx ppmhz to ring buffer
 | |
|  * @param rx_ppm:           rx ppm hz value
 | |
|  * @retval:                 none.
 | |
|  */
 | |
| void bb_cpu_hw_ring_rx_ppmhz_set(int32_t rx_ppm_hz);
 | |
| 
 | |
| /**
 | |
|  * @brief                    set raw snr/rssi reigster to ring buffer
 | |
|  * @param raw_snr_rssi_reg1: raw snr/rssi register1 value
 | |
|  * @param raw_snr_rssi_reg2: raw snr/rssi register2 value
 | |
|  * @param raw_snr_rssi_reg3: raw snr/rssi register3 value
 | |
|  * @retval:                  void.
 | |
|  */
 | |
| void bb_cpu_hw_ring_raw_snr_rssi_set(uint32_t raw_snr_rssi_reg1,
 | |
|     uint32_t raw_snr_rssi_reg2, uint32_t raw_snr_rssi_reg3);
 | |
| 
 | |
| /**
 | |
|  * @brief                   init hw ring buffer context
 | |
|  * @retval:                 none.
 | |
|  */
 | |
| void bb_cpu_hw_ring_init(void);
 | |
| 
 | |
| /**
 | |
|  * @brief                   set ring status
 | |
|  * @param rx_status:        rx status
 | |
|  * @retval:                 error code. see ERR_XXX.
 | |
|  */
 | |
| uint32_t bb_cpu_hw_ring_set_rx_status(uint32_t rx_status);
 | |
| 
 | |
| /**
 | |
|  * @brief                   set ring tx sack status
 | |
|  * @param tx_sack_status:   tx sack status
 | |
|  * @retval:                 error code. see ERR_XXX.
 | |
|  */
 | |
| uint32_t bb_cpu_hw_ring_set_tx_sack_status(uint32_t tx_sack_status);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif // _BB_CPU_HW_RING_H_
 |