1 /* 2 * Copyright (C) 2015-2020 Alibaba Group Holding Limited 3 */ 4 #ifndef __HAL_INTERSYS_H__ 5 #define __HAL_INTERSYS_H__ 6 7 #ifdef __cplusplus 8 extern "C" { 9 #endif 10 11 #include "stdbool.h" 12 13 enum HAL_INTERSYS_ID_T { 14 HAL_INTERSYS_ID_0, 15 HAL_INTERSYS_ID_1, 16 17 HAL_INTERSYS_ID_QTY 18 }; 19 20 enum HAL_INTERSYS_MSG_TYPE_T { 21 HAL_INTERSYS_MSG_HCI, 22 HAL_INTERSYS_MSG_SYS, 23 24 HAL_INTERSYS_MSG_TYPE_QTY 25 }; 26 27 typedef struct debug_intersys 28 { 29 unsigned short irq_happen; 30 unsigned short cmd_opcode; 31 }debug_intersys_type; 32 33 typedef unsigned int (*HAL_INTERSYS_RX_IRQ_HANDLER)(const unsigned char *data, unsigned int len); 34 typedef void (*HAL_INTERSYS_TX_IRQ_HANDLER)(const unsigned char *data, unsigned int len); 35 36 int hal_intersys_open(enum HAL_INTERSYS_ID_T id, enum HAL_INTERSYS_MSG_TYPE_T type, 37 HAL_INTERSYS_RX_IRQ_HANDLER rxhandler, HAL_INTERSYS_TX_IRQ_HANDLER txhandler, bool rx_flowctrl); 38 39 int hal_intersys_close(enum HAL_INTERSYS_ID_T id,enum HAL_INTERSYS_MSG_TYPE_T type); 40 41 int hal_intersys_start_recv(enum HAL_INTERSYS_ID_T id); 42 43 int hal_intersys_stop_recv(enum HAL_INTERSYS_ID_T id); 44 45 int hal_intersys_send(enum HAL_INTERSYS_ID_T id, enum HAL_INTERSYS_MSG_TYPE_T type, 46 const unsigned char *data, unsigned int len); 47 48 void hal_intersys_rx_done(enum HAL_INTERSYS_ID_T id); 49 50 void hal_intersys_peer_irq_auto_clear(bool enable); 51 52 #ifdef TX_RX_PCM_MASK 53 typedef void (*FRAME2BUFF_HANDLER)(); 54 55 int hal_intersys_mic_open(enum HAL_INTERSYS_ID_T id, FRAME2BUFF_HANDLER dch); 56 57 void hal_intersys_mic_rx_irq(); 58 #endif 59 60 #ifdef __cplusplus 61 } 62 #endif 63 64 #endif 65 66