fa12f3c547072a4b3c28672e1036dba8e4a72960
[mw/milkymist.git] / software / include / hw / tmu.h
1 /*
2  * Milkymist VJ SoC (Software)
3  * Copyright (C) 2007, 2008, 2009, 2010 Sebastien Bourdeauducq
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, version 3 of the License.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17
18 #ifndef __HW_TMU_H
19 #define __HW_TMU_H
20
21 #include <hw/common.h>
22
23 #define CSR_TMU_CTL             MMPTR(0x80006000)
24 #define TMU_CTL_START           0x01
25 #define TMU_CTL_BUSY            0x01
26 #define TMU_CTL_CHROMAKEY       0x02
27
28 #define CSR_TMU_HMESHLAST       MMPTR(0x80006004)
29 #define CSR_TMU_VMESHLAST       MMPTR(0x80006008)
30 #define CSR_TMU_BRIGHTNESS      MMPTR(0x8000600C)
31 #define CSR_TMU_CHROMAKEY       MMPTR(0x80006010)
32
33 #define TMU_BRIGHTNESS_MAX      (63)
34
35 #define CSR_TMU_VERTICESADR     MMPTR(0x80006014)
36 #define CSR_TMU_TEXFBUF         MMPTR(0x80006018)
37 #define CSR_TMU_TEXHRES         MMPTR(0x8000601C)
38 #define CSR_TMU_TEXVRES         MMPTR(0x80006020)
39 #define CSR_TMU_TEXHMASK        MMPTR(0x80006024)
40 #define CSR_TMU_TEXVMASK        MMPTR(0x80006028)
41
42 #define TMU_MASK_NOFILTER       (0x3ffc0)
43 #define TMU_MASK_FULL           (0x3ffff)
44 #define TMU_FIXEDPOINT_SHIFT    (6)
45
46 #define CSR_TMU_DSTFBUF         MMPTR(0x8000602C)
47 #define CSR_TMU_DSTHRES         MMPTR(0x80006030)
48 #define CSR_TMU_DSTVRES         MMPTR(0x80006034)
49 #define CSR_TMU_DSTHOFFSET      MMPTR(0x80006038)
50 #define CSR_TMU_DSTVOFFSET      MMPTR(0x8000603C)
51 #define CSR_TMU_DSTSQUAREW      MMPTR(0x80006040)
52 #define CSR_TMU_DSTSQUAREH      MMPTR(0x80006044)
53
54 #define CSR_TMU_ALPHA           MMPTR(0x80006048)
55
56 #define TMU_ALPHA_MAX           (63)
57
58 struct tmu_vertex {
59         int x;
60         int y;
61 } __attribute__((packed));
62
63 #define TMU_MESH_MAXSIZE        128
64
65 /* Performance monitoring */
66
67 #define CSR_TMU_REQ_A           MMPTR(0x80006050)
68 #define CSR_TMU_HIT_A           MMPTR(0x80006054)
69 #define CSR_TMU_REQ_B           MMPTR(0x80006058)
70 #define CSR_TMU_HIT_B           MMPTR(0x8000605C)
71 #define CSR_TMU_REQ_C           MMPTR(0x80006060)
72 #define CSR_TMU_HIT_C           MMPTR(0x80006064)
73 #define CSR_TMU_REQ_D           MMPTR(0x80006068)
74 #define CSR_TMU_HIT_D           MMPTR(0x8000606C)
75
76 #endif /* __HW_TMU_H */
77