Root/target/linux/amazon/files/arch/mips/amazon/dma-core.h

1#ifndef DMA_CORE_H
2#define DMA_CORE_H
3
4#define AMAZON_DMA_REG32(reg_num) *((volatile u32*)(reg_num))
5#define AMAZON_DMA_CH_STEP 4
6
7#define COMB_ISR_RX_MASK 0xfe000000
8#define COMB_ISR_TX_MASK 0x01f00000
9
10
11#define DMA_OWN 1
12#define CPU_OWN 0
13#define DMA_MAJOR 250
14
15//Descriptors
16#define DMA_DESC_OWN_CPU 0x0
17#define DMA_DESC_OWN_DMA 0x80000000
18#define DMA_DESC_CPT_SET 0x40000000
19#define DMA_DESC_SOP_SET 0x20000000
20#define DMA_DESC_EOP_SET 0x10000000
21
22#define switch_rx_chan_base 0
23#define switch_tx_chan_base 7
24#define switch2_rx_chan_base 2
25#define switch2_tx_chan_base 8
26#define TPE_rx_chan_base 4
27#define TPE_tx_chan_base 9
28#define DPLus2FPI_rx_chan_base 6
29#define DPLus2FPI_tx_chan_base 11
30
31#define RX_CHAN_NUM 7
32#define TX_CHAN_NUM 5
33#define CHAN_TOTAL_NUM (RX_CHAN_NUM+TX_CHAN_NUM)
34#define DEFAULT_OFFSET 20
35#define DESCRIPTOR_SIZE 8
36
37typedef struct dev_list{
38   struct dma_device_info* dev;
39   int weight;
40   struct dev_list* prev;
41   struct dev_list* next;
42}dev_list;
43
44typedef struct channel_info{
45   char device_name[16];
46   int occupied;
47   enum attr_t attr;
48   int current_desc;
49   int weight;
50   int default_weight;
51   int desc_num;
52   int burst_len;
53   int desc_len;
54   int desc_ofst;
55   int packet_size;
56   int offset_from_base;
57   int control;
58   void* opt[DEFAULT_OFFSET];
59   u8* (*buffer_alloc)(int len,int* offset, void** opt);
60   int (*buffer_free)(u8* dataptr,void* opt);
61   int (*intr_handler)(struct dma_device_info* info,int status);
62
63   struct dma_device_info* dma_dev;
64}channel_info;
65
66
67
68#endif
69
70

Archive Download this file



interactive