1 /*
2 * Copyright (c) 2019-2025 Allwinner Technology Co., Ltd. ALL rights reserved.
3 *
4 * Allwinner is a trademark of Allwinner Technology Co.,Ltd., registered in
5 * the the People's Republic of China and other countries.
6 * All Allwinner Technology Co.,Ltd. trademarks are used with permission.
7 *
8 * DISCLAIMER
9 * THIRD PARTY LICENCES MAY BE REQUIRED TO IMPLEMENT THE SOLUTION/PRODUCT.
10 * IF YOU NEED TO INTEGRATE THIRD PARTY¡¯S TECHNOLOGY (SONY, DTS, DOLBY, AVS OR MPEGLA, ETC.)
11 * IN ALLWINNERS¡¯SDK OR PRODUCTS, YOU SHALL BE SOLELY RESPONSIBLE TO OBTAIN
12 * ALL APPROPRIATELY REQUIRED THIRD PARTY LICENCES.
13 * ALLWINNER SHALL HAVE NO WARRANTY, INDEMNITY OR OTHER OBLIGATIONS WITH RESPECT TO MATTERS
14 * COVERED UNDER ANY REQUIRED THIRD PARTY LICENSE.
15 * YOU ARE SOLELY RESPONSIBLE FOR YOUR USAGE OF THIRD PARTY¡¯S TECHNOLOGY.
16 *
17 *
18 * THIS SOFTWARE IS PROVIDED BY ALLWINNER"AS IS" AND TO THE MAXIMUM EXTENT
19 * PERMITTED BY LAW, ALLWINNER EXPRESSLY DISCLAIMS ALL WARRANTIES OF ANY KIND,
20 * WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION REGARDING
21 * THE TITLE, NON-INFRINGEMENT, ACCURACY, CONDITION, COMPLETENESS, PERFORMANCE
22 * OR MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
23 * IN NO EVENT SHALL ALLWINNER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26 * LOSS OF USE, DATA, OR PROFITS, OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
28 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
30 * OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32 
33 #ifndef __DMA_SUN8IW19_H__
34 #define __DMA_SUN8IW19_H__
35 
36 #define SUNXI_DMAC_PBASE         0x03002000
37 
38 #define DMA_IRQ_NUM 42
39 
40 #define NR_MAX_CHAN 8   /* total of channels */
41 #define START_CHAN_OFFSET      0
42 
43 #define SUNXI_CLK_DMA HAL_CLK_PERIPH_DMA
44 #define SUNXI_CLK_MBUS_DMA (0)
45 #define SUNXI_RST_DMA (0)
46 
47 
48 /*
49  * The source DRQ type and port corresponding relation
50  */
51 #define DRQSRC_SRAM     0
52 #define DRQSRC_SDRAM        0
53 /* #define DRQSRC_RESEVER       2 */
54 #define DRQSRC_DAUDIO_0_RX  3
55 #define DRQSRC_DAUDIO_1_RX  4
56 /*#define DRQSRC_DAUDIO_2_RX    5 */
57 #define DRQSRC_AUDIO_CODEC  6
58 #define DRQSRC_DMIC     7
59 /* #define DRQSRC_RESEVER       8 */
60 /* #define DRQSRC_RESEVER       9 */
61 /*#define DRQSRC_NAND0      10 */
62 /* #define DRQSRC_RESEVER       11 */
63 #define DRQSRC_GPADC        12
64 /* #define DRQSRC_RESEVER       13 */
65 #define DRQSRC_UART0_RX     14
66 #define DRQSRC_UART1_RX     15
67 #define DRQSRC_UART2_RX         16
68 #define DRQSRC_UART3_RX     17
69 /*#define DRQSRC_UART4_RX         18 */
70 /* #define DRQSRC_RESEVER       19 */
71 /* #define DRQSRC_RESEVER       20 */
72 /* #define DRQSRC_RESEVER       21 */
73 #define DRQSRC_SPI0_RX      22
74 #define DRQSRC_SPI1_RX      23
75 #define DRQSRC_SPI2_RX      24
76 /*#define DRQSRC_SPI3_RX    25 */
77 /* #define DRQSRC_RESEVER       26 */
78 /* #define DRQSRC_RESEVER       27 */
79 /* #define DRQSRC_RESEVER       28 */
80 /* #define DRQSRC_RESEVER       29 */
81 #define DRQSRC_OTG_EP1      30
82 #define DRQSRC_OTG_EP2      31
83 #define DRQSRC_OTG_EP3          32
84 #define DRQSRC_OTG_EP4          33
85 #define DRQSRC_OTG_EP5          34
86 #define DRQSRC_TWI0_RX      43
87 #define DRQSRC_TWI1_RX      44
88 #define DRQSRC_TWI2_RX      45
89 #define DRQSRC_TWI3_RX      46
90 #define DRQSRC_R_TWI0       48
91 
92 /*
93  * The destination DRQ type and port corresponding relation
94  */
95 #define DRQDST_SRAM     0
96 #define DRQDST_SDRAM        0
97 /* #define DRQSRC_RESEVER       2 */
98 #define DRQDST_DAUDIO_0_TX  3
99 #define DRQDST_DAUDIO_1_TX  4
100 /*#define DRQDST_DAUDIO_2_TX    5 */
101 #define DRQDST_AUDIO_CODEC  6
102 /* #define DRQSRC_RESEVER       7 */
103 /* #define DRQSRC_RESEVER       8 */
104 /* #define DRQSRC_RESEVER       9 */
105 /*#define DRQDST_NAND0      10 */
106 /* #define DRQSRC_RESEVER       11*/
107 /* #define DRQSRC_RESEVER       12 */
108 /*#define DRQDST_IR_TX      13 */
109 #define DRQDST_UART0_TX     14
110 #define DRQDST_UART1_TX     15
111 #define DRQDST_UART2_TX         16
112 #define DRQDST_UART3_TX         17
113 /*#define DRQDST_UART4_TX       18 */
114 /* #define DRQSRC_RESEVER       19 */
115 /* #define DRQSRC_RESEVER       20 */
116 /* #define DRQSRC_RESEVER       21 */
117 #define DRQDST_SPI0_TX      22
118 #define DRQDST_SPI1_TX          23
119 #define DRQDST_SPI2_TX          24
120 /*#define DRQDST_SPI3_TX        25 */
121 /* #define DRQSRC_RESEVER       26 */
122 /* #define DRQSRC_RESEVER       27 */
123 /* #define DRQSRC_RESEVER       28 */
124 /* #define DRQSRC_RESEVER       29 */
125 #define DRQDST_OTG_EP1      30
126 #define DRQDST_OTG_EP2      31
127 #define DRQDST_OTG_EP3          32
128 #define DRQDST_OTG_EP4          33
129 #define DRQDST_OTG_EP5          34
130 #define DRQDST_TWI0_TX      43
131 #define DRQDST_TWI1_TX          44
132 #define DRQDST_TWI2_TX          45
133 #define DRQDST_TWI3_TX          46
134 #define DRQDST_R_TWI0       48
135 
136 
137 #endif /*__DMA_SUN8IW19_H__  */
138