csl_dma_lcd.h

来自「dsp在音频处理中的运用」· C头文件 代码 · 共 545 行 · 第 1/2 页

H
545
字号
/** @brief Enumerations for End of Programming Status bit of the channel * */typedef enum {    CSL_DMA_LCD_OMAP31_COMPATABILITY   =                  0,  /**< Channel is in OMAP3.0/3.1 compatible mode */    CSL_DMA_LCD_OMAP32_COMPATABILITY   =                  1   /**< Channel is in OMAP3.2 Compatible mode */} CSL_DmaLcdCompatability;/** @brief Enumerations for End of Programming Status bit of the channel * */typedef enum {    CSL_DMA_LCD_ENDPROG_DISABLE        =    0,   /**< When auto-init is set and repeat not set auto-init                                                      delayed till ENDPROG is ENABLED. */    CSL_DMA_LCD_ENDPROG_ENABLE         =    1    /**< In auto-init mode channel reinitialized after current transfer */} CSL_DmaLcdEndProg;/** @brief Enumerations for Repetitive operation of the channel * */typedef enum {    CSL_DMA_LCD_REPEAT_DISABLE         =      0,  /**< When DMA is in auto-init mode and end_prog=0 channel automatically                                                       reinitializes itself once the current transfer is complete */    CSL_DMA_LCD_REPEAT_ENABLE          =      1   /**< When DMA is in auto-init mode and end_prog=0 channel automatically                                                       reinitializes itself once the current transfer is complete */} CSL_DmaLcdRepeat;/** @brief Enumerations for Auto-Initialization Mode of the channel * */typedef enum {    CSL_DMA_LCD_AUTOINIT_DISABLE       =      0,  /**< Channel stops at the end of current transfer */    CSL_DMA_LCD_AUTOINIT_ENABLE        =      1   /**< After current transfer is complete, channel automatically reinitializes                                                       itself if REPEAT or ENDPROG is ENABLE. */} CSL_DmaLcdAutoInit;/** @brief Enumerations for Priority of channel * */typedef enum {    CSL_DMA_LCD_PRIORITY_LOW           =          0,  /**< Channel has the lowest priority level */    CSL_DMA_LCD_PRIORITY_HIGH          =          1   /**< Channel has the highest priority level */} CSL_DmaLcdPriority;/** @brief Enumerations for Frame Synchronization * */typedef enum {    CSL_DMA_LCD_BS_DISABLE    =          0,  /**< If LCD channel is enabled it is software triggered */    CSL_DMA_LCD_BS_ENABLE     =          1   /**< A block transfer is started when LCD channel is enabled                                                  and a hardware sync signal is received from external LCD Controller */} CSL_DmaLcdBS;/** @brief Enumerations for the LCD Channel Control Setup * */typedef struct CSL_DmaLcdSetupChaCtrl {    CSL_DmaLcdBS               bs;             /**< Block Synchronization Setting */    CSL_DmaLcdPriority         priority;       /**< Channel Priority Setting */    CSL_DmaLcdAutoInit         autoinit;       /**< Channel Auto-Initialization feature */    CSL_DmaLcdEndProg          endprog;        /**< Channel End Programmation feature */    CSL_DmaLcdRepeat           repeat;         /**< Channel Repeat feature */    CSL_DmaLcdCompatability    compatability;  /**< Channel Compatability feature */}CSL_DmaLcdSetupChaCtrl;/** @brief LCD Channel Setup  Structure * */typedef struct CSL_DmaLcdSetupChannel {    Uint16                   interruptMask;      /**< Bit-wise OR of the @a #CSL_DmaLcdIntEvents data type */    CSL_DmaLcdLchType        lchType;            /**< Logical Channel assignment relationship to physical channels */    CSL_DmaLcdBlockMode      blockMode;          /**< Type of block Mode used for LCD Transfer */    CSL_DmaLcdSetupChaCtrl   *chaCtrlSetup;      /**< Pointer to @a #CSL_DmaLcdSetupChaCtrl structure */    CSL_DmaLcdSetupChaBlock1 *chaBlock1Setup;    /**< Pointer to @a #CSL_DmaLcdSetupChaBlock1 structure */    CSL_DmaLcdSetupChaBlock2 *chaBlock2Setup;    /**< Pointer to @a #CSL_DmaLcdSetupChaBlock2 structure */} CSL_DmaLcdSetupChannel;/** @brief Enumerations for Type of port which is the destination of lcd channel *         for the next LCD transfer * */typedef enum {   CSL_DMA_LCD_OMAP_LCD_CONTROLLER    =   0,     /**< OMAP LCD Controller is connected to the LCD Channel */   CSL_DMA_LCD_EXT_LCD_CONTROLLER     =   1      /**< External LCD Controller is connected to the LCD Channel */} CSL_DmaLcdDstPort;/** @brief Enumerations for Type of port which is the source of lcd channel * */typedef enum {    CSL_DMA_LCD_PORT_SDRAM             =                  0,   /**< SDRAM Port : also aliased as EMIFF Port */    CSL_DMA_LCD_PORT_EMIFF             =                  0,   /**< EMIFF Port : also aliased as SDRAM Port */    CSL_DMA_LCD_PORT_L3_OCP_T1         =                  1,   /**< L3 OCP T1 Port : also aliased as IMIF Port */    CSL_DMA_LCD_PORT_IMIF              =                  1,   /**< EMIFS Port */    CSL_DMA_LCD_PORT_L3_OCP_T2         =                  2,   /**< L3 OCP T2 Port : also aliased as Local Access Bus Port */    CSL_DMA_LCD_PORT_LOCAL_ACCESS_BUS  =                  2    /**< Local Access Bus Port : also aliased as L3 OCP T2 Port */} CSL_DmaLcdPort;/** @brief Enumerations for Addressing mode * */typedef enum {    CSL_DMA_LCD_AMODE_POST_INCREMENT   =          1,    /**< Post Increment Addressing Mode */    CSL_DMA_LCD_AMODE_SINGLE_INDEX     =          2,    /**< Single Index Addressing Mode */    CSL_DMA_LCD_AMODE_DOUBLE_INDEX     =          3     /**< Double Index Addressing Mode */} CSL_DmaLcdAmode;/** @brief Enumerations for Packing enable/disable * */typedef enum {    CSL_DMA_LCD_PACKED_ACCESS_DISABLE  =                  0,   /**< Disable packed accesses */    CSL_DMA_LCD_PACKED_ACCESS_ENABLE   =                  1    /**< Enable packed accesses */} CSL_DmaLcdPack;/** @brief Enumerations for Burst enable/disable * */typedef enum {    CSL_DMA_LCD_SINGLE_ACCESS          =                  0,   /**< Bursting Disabled : Single access  */    CSL_DMA_LCD_BURST4_ACCESS          =                  2    /**< Burst of 4*port_width  */} CSL_DmaLcdBurst;/** @brief Block Port related Setup * */typedef struct CSL_DmaLcdSetupSrcPortBlock {    CSL_DmaLcdBurst            burst;               /**< Port's burst capability for the block */    CSL_DmaLcdPack             pack;                /**< Port's packing capability for the block */    CSL_DmaLcdAmode            amode;               /**< Port's Addressing Mode for the block */    Uint32                     topAddr;             /**< Byte Address for Buffer's Top Address */    Uint32                     bottomAddr;          /**< Byte Address for Buffer's Top Address */    Int16                      elementIndex;        /**< Element Index */    Int32                      frameIndex;          /**< Frame Index */} CSL_DmaLcdSetupSrcPortBlock;/** @brief Setup Source Port Block1 * */typedef struct CSL_DmaLcdSetupSrcPortBlock CSL_DmaLcdSetupSrcPortBlock1;/** @brief Setup Source Port Block2 * */typedef struct CSL_DmaLcdSetupSrcPortBlock CSL_DmaLcdSetupSrcPortBlock2;typedef struct CSL_DmaLcdSetupSrcPort {    CSL_DmaLcdPort                port;                 /**< Pointer to Port Name for next LCD transfer */    CSL_DmaLcdSetupSrcPortBlock1  *srcPortBlock1Setup;  /**< Pointer to @a #CSL_DmaLcdSetupSrcPortBlock1 structure */    CSL_DmaLcdSetupSrcPortBlock2  *srcPortBlock2Setup;  /**< Pointer to @a #CSL_DmaLcdSetupSrcPortBlock2 structure */} CSL_DmaLcdSetupSrcPort;/** @brief Dma LCD Channel Setup Structure * *  An object of this type is allocated by the user and *  its address is passed as a parameter to CSL_dmaLcdHwSetup(). */typedef struct CSL_DmaLcdHwSetup {    CSL_DmaLcdDstPort          *lcdDstPort;            /**< Pointer to @a #CSL_DmaLcdDstPort data type */    CSL_DmaLcdSetupSrcPort     *lcdSrcPortSetup;       /**< Pointer to @a #CSL_DmaLcdSetupSrcPort structure */    CSL_DmaLcdSetupChannel     *lcdChannelSetup;       /**< Pointer to @a #CSL_DmaLcdSetupChannel structure */    CSL_DmaSetupGlobal         *globalSetup;           /**< Pointer to @a #CSL_DmaSetupGlobal structure */} CSL_DmaLcdHwSetup;/* * ====================================================== *   @func   CSL_dmaLcdHwSetup * ====================================================== *//** @brief *         Configures the DMA LCD channel using the different config structures. *         Sets up the DMA LCD channel (passed as handle) using the *         configurations specified in the different structures (CSL_dmaLcdSetupSrcPort), *         CSL_DmaLcdSetupChannel and CSL_DmaSetupGlobal). This function *         calls the respective functions. *         The function will return an error if cannot complete the request * *//* ====================================================== *   @arg  hDma *              Handle to the DMA Channel *   @arg  setup *              DMA setup structure for the DMA LCD Channel *   @ret  CSL_Status * * * ======================================================*/ CSL_Status  CSL_dmaLcdHwSetup(    CSL_DmaHandle             hDma,    CSL_DmaLcdHwSetup            *setup);/* * ====================================================== *   @func   CSL_dmaLcdHwControl * ====================================================== *//**  @brief  Controls the parameters of DMA LCD channel (passed as handle) * *//* ====================================================== *           The function will return an error if cannot complete the request * *   @arg  hDma *              Handle to the LCD channel *   @arg  cmd *              The operation to be performed. *   @arg  voidPtr *              This is a void pointer, and will be cast to the required type. *   @ret  CSL_Status *          CSL_SOK : Successful, desired operation is done. *          CSL_ESYS_INVCNTLCMD : Control Command is not supported. * * ======================================================*/ CSL_Status  CSL_dmaLcdHwControl(    CSL_DmaHandle         hDma,    CSL_DmaLcdControlCmd   cmd,    void                  *voidPtr);/* * ====================================================== *   @func   CSL_dmaLcdGetHwStatus * ====================================================== *//** @brief *         Traces the various parameters of the LCD DMA channel (passed as handle) * *//* ====================================================== * *           Usage Constraints: *           Channel should have been opened before with a valid handle *           We should know that the registers can be read back. * *           The are various Operations that can be done here are: *           1) Trace the channel setup configuration *           2) Get the Status of the channel * *           The function will return an error if cannot complete the request * *   @arg  hDma *              Handle to the channel *   @arg  cmd *              The Values to be traced back *   @arg  voidPtr *              This is a void pointer, and will be cast to the required type. *   @ret  CSL_Status * * * ======================================================*/ CSL_Status  CSL_dmaLcdGetHwStatus(    CSL_DmaHandle                  hDma,    CSL_DmaLcdHwStatusQuery        query,    void                           *voidPtr);#ifdef __cplusplus}#endif#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?