⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hwapi_hdma.h

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 H
字号:
/****************************************************************
 Copyright (C) 2007 RockChip All Rights Reserved.

File:   hwapi_hdma.h
Desc: HDMA api
Author: LZY
Date: 2007/08/30
note:
$Log: hwapi_hdma.h,v $
Revision 1.6  2007/12/03 07:21:42  Hanjiang
增加dma强制stop接口,修改启动dma接口,系统其他调用的位置已同步更新

Revision 1.5  2007/10/24 07:43:24  Hanjiang
no message

Revision 1.4  2007/10/23 08:23:46  Huangxinyu
调试后修改bug

Revision 1.3  2007/10/15 09:07:59  Huangxinyu
根据RK27提交修改driver

Revision 1.2  2007/10/08 02:38:43  Lingzhaojun
添加版本自动注释脚本


*****************************************************************/
#ifndef _HWAPI_HDMA_H
#define _HWAPI_HDMA_H

//操作模式


#define DmaMode_Slice   (1<<22)

#define DMA_CHN_EN                      (1<<21)

#define DmaMode_Reload              (1<<20)

#define DmaMode_Interrupt  (1<<18)
#define DmaMode_Polling   (0<<18)

#define DmaMode_BurstSignle  (0<<13)
#define DmaMode_Burst4   (3<<13)
#define DmaMode_Burst8   (5<<13)
#define DmaMode_Burst16  (7<<13)

#define DmaMode_UART0_RX   (0x0<<9)
#define DmaMode_UART0_TX         (0x1<<9)
#define DmaMode_UART1_RX   (0x2<<9)
#define DmaMode_UART1_TX   (0x3<<9)
#define DmaMode_SPI_RX                (0x4<<9)
#define DmaMode_SPI_TX          (0x5<<9)
#define DmaMode_I2S_TX          (0x6<<9)
#define DmaMode_I2S_RX          (0x7<<9)
#define DmaMode_RequestNo   (0x0<<9)

#define DmaMode_SourceInc  (0x00<<7)
#define DmaMode_SourceFix  (0x01<<7)

#define DmaMode_DestInc  (0x00<<5)
#define DmaMode_DestFix  (0x01<<5)

#define DmaMode_width8Bit  (0x00<<3)
#define DmaMode_width16Bit  (0x01<<3)
#define DmaMode_width32Bit  (0x02<<3)

#define DmaMode_SoftwareStar     (1<<1)

#define DmaMode_Soft    (0x00<<0)
#define DmaMode_Hard    (0x01<<0)


typedef enum
{
    HDMA_chn0 = 0,
    HDMA_chn1 = 1,
    HDMA_chnmax
}HDMA_Channel_t;

typedef enum
{
    DmaSuccess = 0,
    DmaErr = -1,
    DmaBusy = -100

}DmaError;

typedef int (*DMACallBack)(void);      /*DMA 回调函数*/

typedef struct
{
    UINT32 SourceAddr;       /*源地址*/
    UINT32 DestinAddr;       /*目的地址*/
    UINT16 Count;        /*数目*/
}DmaField;

#define  DmaMemIntCopy       ( DmaMode_Soft\
       |DmaMode_SourceInc\
       |DmaMode_DestInc\
       |DmaMode_Interrupt\
       |DmaMode_width32Bit)

#define  DmaMemByteCopy ( DmaMode_Soft\
       |DmaMode_SourceInc\
       |DmaMode_DestInc\
       |DmaMode_Interrupt\
       |DmaMode_width16Bit)

#define DmaI2sPlayCopy          ( DmaMode_Hard\
       |DmaMode_I2S_TX\
       |DmaMode_SourceInc\
       |DmaMode_DestFix\
       |DmaMode_Interrupt\
       |DmaMode_width32Bit)

#define  DmaI2sRecordCopy   ( DmaMode_Hard\
       |DmaMode_I2S_RX\
       |DmaMode_SourceFix\
       |DmaMode_DestInc\
       |DmaMode_Interrupt\
       |DmaMode_width32Bit)


#define  DmaTestCopy       ( DmaMode_Soft\
       |DmaMode_RequestNo\
       |DmaMode_SourceInc\
       |DmaMode_DestInc\
       |DmaMode_Interrupt\
       |DmaMode_width32Bit)

int DmaTransmit(HDMA_Channel_t channel, UINT32 SrcAddr, UINT32 DestinAddr, UINT32 Count, UINT32 Mode, DMACallBack CallBack);
int HDMA_GetStatus(HDMA_Channel_t channel);
void HDMA_PowerOnInit(void);
void HDMA_DeInit(void);
void HDMA_Stop(HDMA_Channel_t channel);


#endif      //_HWAPI_HDMA_H

⌨️ 快捷键说明

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