aboutsummaryrefslogtreecommitdiff
path: root/src/sample/io_sample/GDMA/Mem2Mem_multi_block/io_gdma.h
blob: 9e7469a3ba053c85e0505e3172a40010177a5dde (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/**
*********************************************************************************************************
*               Copyright(c) 2018, Realtek Semiconductor Corporation. All rights reserved.
*********************************************************************************************************
* @file     io_gdma.h
* @brief
* @details
* @author   yuan
* @date     2019-01-11
* @version  v1.0
*********************************************************************************************************
*/

#ifndef __IO_GDMA_H
#define __IO_GDMA_H

#ifdef __cplusplus
extern "C" {
#endif

/* Includes ------------------------------------------------------------------*/
#include <string.h>
#include "rtl876x_gdma.h"
#include "rtl876x_nvic.h"
#include "rtl876x_pinmux.h"
#include "rtl876x_rcc.h"
#include "trace.h"

#include "board.h"

#include "app_task.h"

/* Defines ------------------------------------------------------------------*/
/* Channel 0 ~ channel 1 have multiple block mode. */
#define GDMA_CHANNEL_NUM                1
#define GDMA_Channel                    GDMA_Channel1
#define GDMA_Channel_IRQn               GDMA0_Channel1_IRQn
#define GDMA_Channel_Handler            GDMA0_Channel1_Handler

/* The maximum number of GDMA single block is 65535. */
#define GDMA_TRANSFER_SIZE              200

#define GDMA_MULTIBLOCK_SIZE            12

/** GDMA multi block mode.
  * AUTO_RELOAD_WITH_CONTIGUOUS_SAR
  * AUTO_RELOAD_WITH_CONTIGUOUS_DAR
  * AUTO_RELOAD_TRANSFER
  * LLI_WITH_CONTIGUOUS_SAR
  * LLI_WITH_AUTO_RELOAD_SAR
  * LLI_WITH_CONTIGUOUS_DAR
  * LLI_WITH_AUTO_RELOAD_DAR
  * LLI_TRANSFER
  */
#define GDMA_MULTIBLOCK_MODE            LLI_TRANSFER

#define INT_TRANSFER                    1
#define INT_BLOCK                       0
#define GDMA_INTERRUPT_MODE             INT_TRANSFER

void driver_gdma_init(void);
void io_handle_gdma_msg(T_IO_MSG *io_gdma_msg);


#ifdef __cplusplus
}
#endif

#endif