openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

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 */