driver.h
905 Bytes
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
/*
* driver.h, memory structure for CS driver
*
*
*
*/
#ifndef DRIVER_INCLUDE
#define DRIVER_INCLUDE
#include "ints.h"
#define DELAY_ONE 1
#define DELAY_TWO 2
/*
* DMA states
*/
typedef enum {
WAIT,
OUTPUT_WORD,
DELAY1,
DELAY2
} DmaState;
typedef struct {
/* required */
char *label;
int clk_old;
int argc;
char **argv;
/* input */
int clk;
int request;
/* output */
int64 xbus_cs_data;
int xbus_cs_valid;
int ew_cs_busy;
int ms_busy;
int rel_sync_tile;
int rel_sync_pipe;
int rel_sync_full;
int rel_sync_load;
int texel_size;
int copy_fill;
int reset_l;
int dv;
/* intermediate regs */
DmaState state;
int count;
/* delayed values */
int dv_delay[DELAY_TWO];
} driver_t;
/*
* Prototypes
*/
void driver(driver_t **pp0, driver_t **pp1);
void driver_init(driver_t *p0, driver_t *p1);
#endif /* DRIVER_INCLUDE */