dma.h (1898B)
1 /* 2 * 3 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 4 * 5 * Copyright 2007-2019 Broadcom Inc. All rights reserved. 6 * 7 * File: dma.h 8 * Purpose: 9 */ 10 11 #ifndef _PCID_DMA_H_ 12 #define _PCID_DMA_H_ 13 14 #include <soc/defs.h> 15 #include <soc/dcb.h> 16 #include <sys/types.h> 17 18 #include "pcid.h" 19 20 extern uint32 pcid_dcb_fetch(pcid_info_t *pcid_info, uint32 addr, dcb_t *dcb); 21 extern uint32 pcid_dcb_store(pcid_info_t *pcid_info, uint32 addr, dcb_t *dcb); 22 extern void pcid_dma_tx_start(pcid_info_t *pcid_info, int ch); 23 extern void pcid_dma_cmicm_tx_start(pcid_info_t *pcid_info, int ch); 24 extern void pcid_dma_rx_start(pcid_info_t *pcid_info, int ch); 25 extern void pcid_dma_cmicm_rx_start(pcid_info_t *pcid_info, int ch); 26 extern void pcid_dma_rx_check(pcid_info_t *pcid_info, int chan); 27 extern void pcid_dma_cmicm_rx_check(pcid_info_t *pcid_info, int chan); 28 extern void pcid_dma_start_chan(pcid_info_t *pcid_info, int ch); 29 extern void pcid_dma_stat_write(pcid_info_t *pcid_info, uint32 value); 30 extern void pcid_dma_ctrl_write(pcid_info_t *pcid_info, uint32 value); 31 extern void pcid_dma_cmicm_ctrl_write(pcid_info_t *pcid_info, uint32 reg, uint32 value); 32 extern void pcid_dma_stop_all(pcid_info_t *pcid_info); 33 34 /* Call back function type for tx */ 35 typedef int (*pcid_tx_cb_f)(pcid_info_t *pcid_info, uint8 *pkt_data, int eop); 36 extern void pcid_dma_tx_cb_set(pcid_info_t *pcid_info, pcid_tx_cb_f fun); 37 void _pcid_loop_tx_cb(pcid_info_t *pcid_info, dcb_t *dcb, int chan); 38 39 extern uint32 40 pcid_reg_read(pcid_info_t *pcid_info, uint32 addr); 41 extern void 42 pcid_reg_write(pcid_info_t *pcid_info, uint32 addr, uint32 value); 43 extern void 44 pcid_reg_or_write(pcid_info_t* pcid_info, uint32 addr, uint32 or_value); 45 extern void 46 pcid_reg_and_write(pcid_info_t* pcid_info, uint32 addr, uint32 and_value); 47 48 #endif /* _PCID_DMA_H_ */