31 #ifndef M2MB_SLAVE_SPI_API_H 32 #define M2MB_SLAVE_SPI_API_H 53 #define M2MB_SLAVE_WRITE_DONE_EVT (0x00000001) 54 #define M2MB_SLAVE_INIT_DONE_EVT (0x00000002) 56 #define M2MB_SPI_SLAVE_RECEIVE_BUFFER_COUNT (12) 57 #define M2MB_SPI_SLAVE_RECEIVE_BUFFER_SIZE (1536) 59 #define M2MB_NUM_BUFFERS_PER_MBOX (12) 61 #define M2MB_SPI_SLAVE_WRITE_BUFFER_SIZE (2048) 63 #define M2MB_MBOX_BLOCK_SIZE 256 64 #define M2MB_MBOX_MSG_HDR_SIZE (2) 65 #define M2MB_MBOX_PAYLOAD_MAX_SIZE (M2MB_SPI_SLAVE_RECEIVE_BUFFER_SIZE-M2MB_MBOX_MSG_HDR_SIZE) 67 #ifdef M2MB_TX_MULTIPLE_ENQ_ENABLE 68 #define M2MB_SPI_SLAVE_WRITE_BUFFER_MAX ((M2MB_SPI_SLAVE_WRITE_BUFFER_SIZE/M2MB_SPI_SLAVE_RECEIVE_BUFFER_SIZE)+1) 70 #define M2MB_SPI_SLAVE_WRITE_BUFFER_MAX (1) 74 #define M2MB_MBOX_MAX_TX_SIZE M2MB_MBOX_BLOCK_SIZE 76 #define M2MB_SPI_SLAVE_FLOW_CTRL_LOW_THRESHOLD 3 77 #define M2MB_SPI_SLAVE_FLOW_CTRL_HIGH_THRESHOLD 6 79 #define M2MB_SPI_SLAVE_MBOX_ID (0) 82 typedef struct M2MB_SLAVE_SPI_WRITE_REQUEST_S { 119 #ifdef M2MB_TX_MULTIPLE_ENQ_ENABLE 837 void *pInitCb,
void *pSendCb,
void *pRecvCb,
void *pContext);
CHAR rx_buffer[M2MB_SPI_SLAVE_RECEIVE_BUFFER_COUNT][M2MB_SPI_SLAVE_RECEIVE_BUFFER_SIZE]
M2MB_SLAVE_SPI_BUFFER_T rx_buf_info[M2MB_SPI_SLAVE_RECEIVE_BUFFER_COUNT]
#define M2MB_SPI_SLAVE_RECEIVE_BUFFER_COUNT
M2MB_OS_SEM_HANDLE sem_handle
struct M2M_SLAVE_SPI_BUFFER_S M2MB_SLAVE_SPI_BUFFER_T
void m2mb_slave_spi_resume_recv(INT32 instance_id, INT32 mbox)
sends rx resume indication to host
void m2mb_slave_spi_pause_recv(INT32 instance_id, INT32 mbox)
sends rx pause indication to host
struct M2MB_SLAVE_SPI_WRITE_REQUEST_S M2MB_SLAVE_SPI_WRITE_REQUEST_T
void m2mb_slave_spi_post_init(UINT32 instance_id, INT32 mbox, UINT32 block_size, UINT32 rxmsg_size, void *pResetCb)
additional initialisation needed for mbox
struct M2MB_SLAVE_MBOX_MSG_S M2MB_SLAVE_MBOX_MSG_T
struct M2M_SLAVE_SPI_BUFFER_S * next
INT32 m2mb_slave_spi_recv_buflist_dequeue(INT32 instance_id, INT32 mbox, M2MB_SLAVE_SPI_BUFFER_T **pbufinfo)
deques a list of completed receive buffers.
M2MB_OS_EV_HANDLE ev_init_handle
UINT8 tx_buffer[M2MB_SPI_SLAVE_WRITE_BUFFER_MAX][2048]
#define M2MB_SPI_SLAVE_RECEIVE_BUFFER_SIZE
void m2mb_slave_spi_deinit(int instance_id, int mbox)
stops mbox h/w and deallocates dma resources
INT32 m2mb_slave_spi_pre_init(UINT32 instance_id, INT32 mbox, UINT32 rx_buf_size, void *pInitCb, void *pSendCb, void *pRecvCb, void *pContext)
mobox initialisation
HANDLE M2MB_OS_SEM_HANDLE
M2MB_SLAVE_SPI_WRITE_REQUEST_T write_req
void m2mb_slave_spi_tx_credit_inc(INT32 instance_id, INT32 mbox)
Increments the Host Tx credit counter registers.
M2MB_SLAVE_SPI_BUFFER_T tx_buf_info[M2MB_SPI_SLAVE_WRITE_BUFFER_MAX]
M2MB_OS_EV_HANDLE ev_tx_handle
INT32 m2mb_slave_spi_send_buflist_dequeue(INT32 instance_id, INT32 mbox, M2MB_SLAVE_SPI_BUFFER_T **pbufinfo)
deques a list of completed send buffers.
#define M2MB_MBOX_PAYLOAD_MAX_SIZE
#define M2MB_SPI_SLAVE_WRITE_BUFFER_MAX
INT32 m2mb_slave_spi_send_buflist_enqueue(INT32 instance_id, INT32 mbox, M2MB_SLAVE_SPI_BUFFER_T *bufinfo)
enques tx buffer.
struct M2MB_SLAVE_SPI_S M2MB_SLAVE_SPI_T
INT32 m2mb_slave_spi_recv_buflist_enqueue(INT32 instance_id, INT32 mbox, M2MB_SLAVE_SPI_BUFFER_T *bufinfo)
enques recieve buffer.