ccmdma_internal.h (2457B)
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: ccmdma_internal.h 8 * Purpose: Maps out structures used for CCM DMA operations and 9 * internal routines. 10 */ 11 12 #ifndef _SOC_CCMDMA_INTERNAL_H 13 #define _SOC_CCMDMA_INTERNAL_H 14 15 #include <soc/defs.h> 16 #include <soc/types.h> 17 #include <sal/types.h> 18 #include <sal/core/time.h> 19 #include <sal/core/sync.h> 20 #include <sal/core/thread.h> 21 #include <soc/ccmdma.h> 22 23 #define CMIC_CMCx_CCMDMA_CHSELECT_TIMEOUT (1000) 24 25 26 /* CCM DMA function pointers */ 27 typedef struct soc_ccmdma_drv_s { 28 int (*soc_ccmdma_ch_get)(int unit, int *vchan); 29 int (*soc_ccmdma_ch_put)(int unit, int vchan); 30 int (*soc_ccmdma_copy)(int unit, sal_paddr_t *srcbuf, sal_paddr_t *dstbuf, 31 unsigned int src_is_internal, unsigned int dst_is_internal, 32 int count, int flags, int vchan); 33 int (*soc_ccmdma_copy_wait)(int unit, int vchan); 34 int (*soc_ccmdma_abort)(int unit, int vchan); 35 int (*soc_ccmdma_clean)(int unit, int max_cmc); 36 }soc_ccmdma_drv_t; 37 38 /******************************************* 39 * @function cmicm_ccmdma_init 40 * purpose API to Initialize cmicm CCM DMA 41 * 42 * @param unit [in] unit 43 * @param drv [out] soc_ccmdma_drv_t pointer 44 * 45 * @returns SOC_E_NONE 46 * @returns SOC_E_XXX 47 * 48 * @end 49 */ 50 extern int cmicm_ccmdma_init(int unit, soc_ccmdma_drv_t *drv); 51 52 /******************************************* 53 * @function cmicm_ccmdma_deinit 54 * purpose API to Deinitialize cmicm CCM DMA 55 * 56 * @param unit [in] unit 57 * @param drv [in] soc_ccmdma_drv_t pointer 58 * 59 * @returns SOC_E_NONE 60 61 * 62 * @end 63 */ 64 extern int cmicm_ccmdma_deinit(int unit, soc_ccmdma_drv_t *drv); 65 66 /******************************************* 67 * @function cmicx_ccmdma_init 68 * purpose API to Initialize cmicx CCM DMA 69 * 70 * @param unit [in] unit 71 * @param drv [out] soc_ccmdma_drv_t pointer 72 * 73 * @returns SOC_E_NONE 74 * @returns SOC_E_XXX 75 * 76 * @end 77 */ 78 extern int cmicx_ccmdma_init(int unit, soc_ccmdma_drv_t *drv); 79 80 /******************************************* 81 * @function cmicx_ccmdma_deinit 82 * purpose API to Deinitialize cmicx CCM DMA 83 * 84 * @param unit [in] unit 85 * @param drv [in] soc_ccmdma_drv_t pointer 86 * 87 * @returns SOC_E_NONE 88 89 * 90 * @end 91 */ 92 extern int cmicx_ccmdma_deinit(int unit, soc_ccmdma_drv_t *drv); 93 94 #endif /* !_SOC_CCMDMA_INTERNAL_H */