8ff51a3cfd95ff14775b9a56f6fd738e6b1d5d77
[sfrench/cifs-2.6.git] / drivers / media / platform / ti-vpe / vpdma_priv.h
1 /*
2  * Copyright (c) 2013 Texas Instruments Inc.
3  *
4  * David Griego, <dagriego@biglakesoftware.com>
5  * Dale Farnsworth, <dale@farnsworth.org>
6  * Archit Taneja, <archit@ti.com>
7  *
8  * This program is free software; you can redistribute it and/or modify it
9  * under the terms of the GNU General Public License version 2 as published by
10  * the Free Software Foundation.
11  */
12
13 #ifndef _TI_VPDMA_PRIV_H_
14 #define _TI_VPDMA_PRIV_H_
15
16 /*
17  * VPDMA Register offsets
18  */
19
20 /* Top level */
21 #define VPDMA_PID               0x00
22 #define VPDMA_LIST_ADDR         0x04
23 #define VPDMA_LIST_ATTR         0x08
24 #define VPDMA_LIST_STAT_SYNC    0x0c
25 #define VPDMA_BG_RGB            0x18
26 #define VPDMA_BG_YUV            0x1c
27 #define VPDMA_SETUP             0x30
28 #define VPDMA_MAX_SIZE1         0x34
29 #define VPDMA_MAX_SIZE2         0x38
30 #define VPDMA_MAX_SIZE3         0x3c
31
32 /* Interrupts */
33 #define VPDMA_INT_CHAN_STAT(grp)        (0x40 + grp * 8)
34 #define VPDMA_INT_CHAN_MASK(grp)        (VPDMA_INT_CHAN_STAT(grp) + 4)
35 #define VPDMA_INT_CLIENT0_STAT          0x78
36 #define VPDMA_INT_CLIENT0_MASK          0x7c
37 #define VPDMA_INT_CLIENT1_STAT          0x80
38 #define VPDMA_INT_CLIENT1_MASK          0x84
39 #define VPDMA_INT_LIST0_STAT            0x88
40 #define VPDMA_INT_LIST0_MASK            0x8c
41
42 #define VPDMA_PERFMON(i)                (0x200 + i * 4)
43
44 /* VPE specific client registers */
45 #define VPDMA_DEI_CHROMA1_CSTAT         0x0300
46 #define VPDMA_DEI_LUMA1_CSTAT           0x0304
47 #define VPDMA_DEI_LUMA2_CSTAT           0x0308
48 #define VPDMA_DEI_CHROMA2_CSTAT         0x030c
49 #define VPDMA_DEI_LUMA3_CSTAT           0x0310
50 #define VPDMA_DEI_CHROMA3_CSTAT         0x0314
51 #define VPDMA_DEI_MV_IN_CSTAT           0x0330
52 #define VPDMA_DEI_MV_OUT_CSTAT          0x033c
53 #define VPDMA_VIP_UP_Y_CSTAT            0x0390
54 #define VPDMA_VIP_UP_UV_CSTAT           0x0394
55 #define VPDMA_VPI_CTL_CSTAT             0x03d0
56
57 /* Reg field info for VPDMA_CLIENT_CSTAT registers */
58 #define VPDMA_CSTAT_LINE_MODE_MASK      0x03
59 #define VPDMA_CSTAT_LINE_MODE_SHIFT     8
60 #define VPDMA_CSTAT_FRAME_START_MASK    0xf
61 #define VPDMA_CSTAT_FRAME_START_SHIFT   10
62
63 #define VPDMA_LIST_NUM_MASK             0x07
64 #define VPDMA_LIST_NUM_SHFT             24
65 #define VPDMA_LIST_STOP_SHFT            20
66 #define VPDMA_LIST_RDY_MASK             0x01
67 #define VPDMA_LIST_RDY_SHFT             19
68 #define VPDMA_LIST_TYPE_MASK            0x03
69 #define VPDMA_LIST_TYPE_SHFT            16
70 #define VPDMA_LIST_SIZE_MASK            0xffff
71
72 /* VPDMA data type values for data formats */
73 #define DATA_TYPE_Y444                          0x0
74 #define DATA_TYPE_Y422                          0x1
75 #define DATA_TYPE_Y420                          0x2
76 #define DATA_TYPE_C444                          0x4
77 #define DATA_TYPE_C422                          0x5
78 #define DATA_TYPE_C420                          0x6
79 #define DATA_TYPE_YC422                         0x7
80 #define DATA_TYPE_YC444                         0x8
81 #define DATA_TYPE_CY422                         0x23
82
83 #define DATA_TYPE_RGB16_565                     0x0
84 #define DATA_TYPE_ARGB_1555                     0x1
85 #define DATA_TYPE_ARGB_4444                     0x2
86 #define DATA_TYPE_RGBA_5551                     0x3
87 #define DATA_TYPE_RGBA_4444                     0x4
88 #define DATA_TYPE_ARGB24_6666                   0x5
89 #define DATA_TYPE_RGB24_888                     0x6
90 #define DATA_TYPE_ARGB32_8888                   0x7
91 #define DATA_TYPE_RGBA24_6666                   0x8
92 #define DATA_TYPE_RGBA32_8888                   0x9
93 #define DATA_TYPE_BGR16_565                     0x10
94 #define DATA_TYPE_ABGR_1555                     0x11
95 #define DATA_TYPE_ABGR_4444                     0x12
96 #define DATA_TYPE_BGRA_5551                     0x13
97 #define DATA_TYPE_BGRA_4444                     0x14
98 #define DATA_TYPE_ABGR24_6666                   0x15
99 #define DATA_TYPE_BGR24_888                     0x16
100 #define DATA_TYPE_ABGR32_8888                   0x17
101 #define DATA_TYPE_BGRA24_6666                   0x18
102 #define DATA_TYPE_BGRA32_8888                   0x19
103
104 #define DATA_TYPE_MV                            0x3
105
106 /* VPDMA channel numbers(only VPE channels for now) */
107 #define VPE_CHAN_NUM_LUMA1_IN           0
108 #define VPE_CHAN_NUM_CHROMA1_IN         1
109 #define VPE_CHAN_NUM_LUMA2_IN           2
110 #define VPE_CHAN_NUM_CHROMA2_IN         3
111 #define VPE_CHAN_NUM_LUMA3_IN           4
112 #define VPE_CHAN_NUM_CHROMA3_IN         5
113 #define VPE_CHAN_NUM_MV_IN              12
114 #define VPE_CHAN_NUM_MV_OUT             15
115 #define VPE_CHAN_NUM_LUMA_OUT           102
116 #define VPE_CHAN_NUM_CHROMA_OUT         103
117 #define VPE_CHAN_NUM_RGB_OUT            106
118
119 #endif