1:
10:
11:
15:
16:
#ifndef _DMACPRM_H_
17:
#define _DMACPRM_H_
18:
19:
20:
#ifdef __cplusplus
21:
extern "C" {
22:
#endif
23:
24:
25:
#define AG903_DMAC_UNIT_NUM (8)
26:
27:
28:
#define AG903_DMAC_PORT_NUM (16)
29:
30:
31:
#define AG903_DMAC_EVENT_NUM (8)
32:
33:
34:
#define AG903_DMAC_1DTRANS_MAX (0x3FFFFF)
35:
36:
37:
38:
39:
typedef struct _DMACPrmParamFEATURE {
40: uint32_t ChNum;
41: uint32_t UnalignMode;
42: uint32_t DWidth;
43: uint32_t SLVDWidth;
44: uint32_t DFDepth;
45: uint32_t PriOn;
46: uint32_t PriNum;
47: uint32_t LdmOn;
48: uint32_t LdmDepth;
49: uint32_t CmdDepth;
50: }
DMACPrmParamFEATURE;
51:
52:
void AG903_DMACPrmGetINT(uint32_t *stat);
53:
void AG903_DMACPrmGetTIMECOUNT_INT(uint32_t *stat);
54:
void AG903_DMACPrmSetTIMECOUNT_INT_CLEAR(uint32_t clear);
55:
void AG903_DMACPrmGetERR_ABORT_INT(uint32_t *err, uint32_t *wdt, uint32_t *abt);
56:
void AG903_DMACPrmSetERR_ABORT_INT_CLEAR(uint32_t err, uint32_t wdt, uint32_t abt);
57:
void AG903_DMACPrmGetTIMECOUNT_STATUS(uint32_t *stat);
58:
void AG903_DMACPrmGetERR_ABORT_STATUS(uint32_t *err, uint32_t *wdt, uint32_t *abt);
59:
void AG903_DMACPrmGetCHANNEL_ENABLE(uint32_t *enable);
60:
void AG903_DMACPrmSetCHANNEL_ENABLE(uint32_t enable);
61:
void AG903_DMACPrmGetSYNC_PERI_IF(uint32_t *enable);
62:
void AG903_DMACPrmSetSYNC_PERI_IF(uint32_t enable);
63:
void AG903_DMACPrmGetLOCAL_DESC_MEM_BASE(uint32_t *base);
64:
void AG903_DMACPrmSetLOCAL_DESC_MEM_BASE(uint32_t base);
65:
void AG903_DMACPrmGetWATCHDOG_TIMER(uint32_t *wdt);
66:
void AG903_DMACPrmSetWATCHDOG_TIMER(uint32_t wdt);
67:
void AG903_DMACPrmGetGLOBAL_EVENT(uint32_t *event);
68:
void AG903_DMACPrmSetGLOBAL_EVENT(uint32_t set, uint32_t clear);
69:
void AG903_DMACPrmGetPSLVERR_ENABLE(uint32_t *enable);
70:
void AG903_DMACPrmSetPSLVERR_ENABLE(uint32_t enable);
71:
void AG903_DMACPrmGetREVISION_NUMBER(uint32_t *rev);
72:
void AG903_DMACPrmGetHW_FEATURE(
DMACPrmParamFEATURE *feature);
73:
void AG903_DMACPrmGetLOCAL_DESC_MEM_FREE_FLAG_SET_0(uint32_t *flag);
74:
void AG903_DMACPrmSetLOCAL_DESC_MEM_FREE_FLAG_SET_0(uint32_t flag);
75:
void AG903_DMACPrmGetLOCAL_DESC_MEM_FREE_FLAG_SET_1(uint32_t *flag);
76:
void AG903_DMACPrmSetLOCAL_DESC_MEM_FREE_FLAG_SET_1(uint32_t flag);
77:
void AG903_DMACPrmGetLOCAL_DESC_MEM_FREE_FLAG_SET_2(uint32_t *flag);
78:
void AG903_DMACPrmSetLOCAL_DESC_MEM_FREE_FLAG_SET_2(uint32_t flag);
79:
void AG903_DMACPrmGetLOCAL_DESC_MEM_FREE_FLAG_SET_3(uint32_t *flag);
80:
void AG903_DMACPrmSetLOCAL_DESC_MEM_FREE_FLAG_SET_3(uint32_t flag);
81:
void AG903_DMACPrmGetENDIAN_CONVERSION(uint32_t *ec, uint32_t *lmec);
82:
void AG903_DMACPrmSetENDIAN_CONVERSION(uint32_t ec, uint32_t lmec);
83:
void AG903_DMACPrmGetCONSTANT_VALUE_WRITE_ONLY(uint32_t *value);
84:
void AG903_DMACPrmSetCONSTANT_VALUE_WRITE_ONLY(uint32_t value);
85:
86:
87:
88:
89:
typedef struct _DMACPrmParamCTRL {
90: uint32_t ChWEvent;
91: uint32_t WSync;
92: uint32_t ChSEvent;
93: uint32_t SEventEn;
94: uint32_t WEventEn;
95: uint32_t DEn;
96: uint32_t ExpEn;
97: uint32_t ChEn;
98: uint32_t WDTEn;
99: uint32_t DstCtrl;
100: uint32_t SrcCtrl;
101: uint32_t DstWidth;
102: uint32_t SrcWidth;
103: uint32_t TCMsk;
104: uint32_t SrcTcnt;
105: }
DMACPrmParamCTRL;
106:
107:
108:
typedef struct _DMACPrmParamCFG {
109: uint32_t TCIntMsk;
110: uint32_t ErrIntMsk;
111: uint32_t AbtIntMsk;
112: uint32_t SrcRS;
113: uint32_t SrcHEn;
114: uint32_t DstRS;
115: uint32_t DstHEn;
116: uint32_t LLPCnt;
117: uint32_t ChGntWin;
118: uint32_t ChPri;
119: uint32_t WOMode;
120: uint32_t UnalignMode;
121: }
DMACPrmParamCFG;
122:
123:
void AG903_DMACPrmGetCTRL_REG(uint8_t unit,
DMACPrmParamCTRL *ctrl);
124:
void AG903_DMACPrmSetCTRL_REG(uint8_t unit,
DMACPrmParamCTRL *ctrl);
125:
void AG903_DMACPrmGetCFG_REG(uint8_t unit,
DMACPrmParamCFG *cfg);
126:
void AG903_DMACPrmSetCFG_REG(uint8_t unit,
DMACPrmParamCFG *cfg);
127:
void AG903_DMACPrmGetSRC_ADDR(uint8_t unit, uint32_t *addr);
128:
void AG903_DMACPrmSetSRC_ADDR(uint8_t unit, uint32_t addr);
129:
void AG903_DMACPrmGetDST_ADDR(uint8_t unit, uint32_t *addr);
130:
void AG903_DMACPrmSetDST_ADDR(uint8_t unit, uint32_t addr);
131:
void AG903_DMACPrmGetLINK_LIST_POINTER(uint8_t unit, uint32_t *addr);
132:
void AG903_DMACPrmSetLINK_LIST_POINTER(uint8_t unit, uint32_t addr);
133:
void AG903_DMACPrmGetTRNS_SIZE_1D(uint8_t unit, uint32_t *cnt);
134:
void AG903_DMACPrmSetTRNS_SIZE_1D(uint8_t unit, uint32_t cnt);
135:
void AG903_DMACPrmGetTRNS_SIZE_2D(uint8_t unit, uint32_t *x_cnt, uint32_t *y_cnt);
136:
void AG903_DMACPrmSetTRNS_SIZE_2D(uint8_t unit, uint32_t x_cnt, uint32_t y_cnt);
137:
void AG903_DMACPrmGetSTRIDE_SRC_DST_ADDR(uint8_t unit, uint32_t *src, uint32_t *dst);
138:
void AG903_DMACPrmSetSTRIDE_SRC_DST_ADDR(uint8_t unit, uint32_t src, uint32_t dst);
139:
140:
141:
#define AG903_DMACPrmGetTERMCOUNT_INT AG903_DMACPrmGetTIMECOUNT_INT
142:
#define AG903_DMACPrmSetTERMCOUNT_INT_CLEAR AG903_DMACPrmSetTIMECOUNT_INT_CLEAR
143:
#define AG903_DMACPrmGetTERMCOUNT_STATUS AG903_DMACPrmGetTIMECOUNT_STATUS
144:
145:
#ifdef __cplusplus
146: }
147:
#endif
148:
#endif