aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-exynos/include/mach/regs-mixer.h
blob: a9e905e4efff7b6f1671f5f4d32022caaa62e3b5 (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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
/* linux/arch/arm/mach-exynos/include/mach/regs-mixer.h
 *
 * Copyright (c) 2010 Samsung Electronics
 *		http://www.samsung.com/
 *
 * Mixer register header file for Samsung TVOUT driver
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#ifndef __ARCH_ARM_REGS_MIXER_H
#define __ARCH_ARM_REGS_MIXER_H

/*
 * Register part
 */
#define S5P_MXR_STATUS				(0x0000)
#define S5P_MXR_CFG				(0x0004)
#define S5P_MXR_INT_EN				(0x0008)
#define S5P_MXR_INT_STATUS			(0x000C)
#define S5P_MXR_LAYER_CFG			(0x0010)
#define S5P_MXR_VIDEO_CFG			(0x0014)
#define S5P_MXR_VIDEO_LIMITER_PARA_CFG		(0x0018)
#define S5P_MXR_GRAPHIC0_CFG			(0x0020)
#define S5P_MXR_GRAPHIC0_BASE			(0x0024)
#define S5P_MXR_GRAPHIC0_SPAN			(0x0028)
#define S5P_MXR_GRAPHIC0_SXY			(0x002C)
#define S5P_MXR_GRAPHIC0_WH			(0x0030)
#define S5P_MXR_GRAPHIC0_DXY			(0x0034)
#define S5P_MXR_GRAPHIC0_BLANK			(0x0038)
#define S5P_MXR_GRAPHIC1_CFG			(0x0040)
#define S5P_MXR_GRAPHIC1_BASE			(0x0044)
#define S5P_MXR_GRAPHIC1_SPAN			(0x0048)
#define S5P_MXR_GRAPHIC1_SXY			(0x004C)
#define S5P_MXR_GRAPHIC1_WH			(0x0050)
#define S5P_MXR_GRAPHIC1_DXY			(0x0054)
#define S5P_MXR_GRAPHIC1_BLANK			(0x0058)
#define S5P_MXR_BG_CFG				(0x0060)
#define S5P_MXR_BG_COLOR0			(0x0064)
#define S5P_MXR_BG_COLOR1			(0x0068)
#define S5P_MXR_BG_COLOR2			(0x006C)
#define S5P_MXR_CM_COEFF_Y			(0x0080)
#define S5P_MXR_CM_COEFF_CB			(0x0084)
#define S5P_MXR_CM_COEFF_CR			(0x0088)
#define S5P_MXR_VER				(0x0100)

#define S5P_MXR_STATUS_S			(0x2000)
#define S5P_MXR_CFG_S				(0x2004)
#define S5P_MXR_LAYER_CFG_S			(0x2010)
#define S5P_MXR_VIDEO_CFG_S			(0x2014)
#define S5P_MXR_VIDEO_LIMITER_PARA_CFG_S	(0x2018)
#define S5P_MXR_GRAPHIC0_CFG_S			(0x2020)
#define S5P_MXR_GRAPHIC0_BASE_S			(0x2024)
#define S5P_MXR_GRAPHIC0_SPAN_S			(0x2028)
#define S5P_MXR_GRAPHIC0_SXY_S			(0x202C)
#define S5P_MXR_GRAPHIC0_WH_S			(0x2030)
#define S5P_MXR_GRAPHIC0_DXY_S			(0x2034)
#define S5P_MXR_GRAPHIC0_BLANK_PIXEL_S		(0x2038)
#define S5P_MXR_GRAPHIC1_CFG_S			(0x2040)
#define S5P_MXR_GRAPHIC1_BASE_S			(0x2044)
#define S5P_MXR_GRAPHIC1_SPAN_S			(0x2048)
#define S5P_MXR_GRAPHIC1_SXY_S			(0x204C)
#define S5P_MXR_GRAPHIC1_WH_S			(0x2050)
#define S5P_MXR_GRAPHIC1_DXY_S			(0x2054)
#define S5P_MXR_GRAPHIC1_BLANK_PIXEL_S		(0x2058)
#define S5P_MXR_BG_COLOR0_S			(0x2064)
#define S5P_MXR_BG_COLOR1_S			(0x2068)
#define S5P_MXR_BG_COLOR2_S			(0x206C)

/*
 * Bit definition part
 */
/* MIXER_STATUS */
#define S5P_MXR_STATUS_16_BURST			(1 << 7)
#define S5P_MXR_STATUS_8_BURST			(0 << 7)
#define S5P_MXR_STATUS_LITTLE_ENDIAN		(0 << 3)
#define S5P_MXR_STATUS_BIG_ENDIAN		(1 << 3)
#define S5P_MXR_STATUS_SYNC_DISABLE		(0 << 2)
#define S5P_MXR_STATUS_SYNC_ENABLE		(1 << 2)
#define S5P_MXR_STATUS_OPERATING		(0 << 1)
#define S5P_MXR_STATUS_IDLE_MODE		(1 << 1)
#define S5P_MXR_STATUS_STOP			(0 << 0)
#define S5P_MXR_STATUS_RUN			(1 << 0)

/* MIXER_CGF */
#define S5P_MXR_CFG_TV_OUT			(~(1 << 7))
#define S5P_MXR_CFG_HDMI_OUT			(1 << 7)
#define S5P_MXR_CFG_HD_720P			(0 << 6)
#define S5P_MXR_CFG_HD_1080I			(1 << 6)
#define S5P_MXR_CFG_HD_1080P			(1 << 6)
#define S5P_MXR_CFG_GRAPHIC1_DISABLE		(0 << 5)
#define S5P_MXR_CFG_GRAPHIC1_ENABLE		(1 << 5)
#define S5P_MXR_CFG_GRAPHIC0_DISABLE		(0 << 4)
#define S5P_MXR_CFG_GRAPHIC0_ENABLE		(1 << 4)
#define S5P_MXR_CFG_VIDEO_DISABLE		(0 << 3)
#define S5P_MXR_CFG_VIDEO_ENABLE		(1 << 3)
#define S5P_MXR_CFG_INTERLACE			(~(1 << 2))
#define S5P_MXR_CFG_PROGRASSIVE			(1 << 2)
#define S5P_MXR_CFG_NTSC			(0 << 1)
#define S5P_MXR_CFG_PAL				(1 << 1)
#define S5P_MXR_CFG_SD				(0 << 0)
#define S5P_MXR_CFG_HD				(1 << 0)
#define S5P_MXR_CFG_RGB_FORMAT_MASK		(0xFF << 9)

/* MIXER_INT_EN */
#define S5P_MXR_INT_EN_VSYNC_ENABLE		(1 << 11)
#define S5P_MXR_INT_EN_VP_DISABLE		(0 << 10)
#define S5P_MXR_INT_EN_VP_ENABLE		(1 << 10)
#define S5P_MXR_INT_EN_GRP1_DISABLE		(0 << 9)
#define S5P_MXR_INT_EN_GRP1_ENABLE		(1 << 9)
#define S5P_MXR_INT_EN_GRP0_DISABLE		(0 << 8)
#define S5P_MXR_INT_EN_GRP0_ENABLE		(1 << 8)

/* MIXER_INT_STATUS */
#define S5P_MXR_INT_STATUS_VSYNC_CLEARED	(1 << 11)
#define S5P_MXR_INT_STATUS_VP_N_FIRED		(0 << 10)
#define S5P_MXR_INT_STATUS_VP_FIRED		(1 << 10)
#define S5P_MXR_INT_STATUS_GRP1_N_FIRED		(0 << 9)
#define S5P_MXR_INT_STATUS_GRP1_FIRED		(1 << 9)
#define S5P_MXR_INT_STATUS_GRP0_N_FIRED		(0 << 8)
#define S5P_MXR_INT_STATUS_GRP0_FIRED		(1 << 8)
#define S5P_MXR_INT_STATUS_INT_FIRED		(1 << 0)

/* MIXER_LAYER_CFG */
#define S5P_MXR_LAYER_CFG_GRP1_HIDE		(0 << 8)
#define S5P_MXR_LAYER_CFG_GRP1_PRIORITY(x)	(((x) & 0xF) << 8)
#define S5P_MXR_LAYER_CFG_GRP1_PRIORITY_CLR(x)	((x) & (~(0xF << 8)))
#define S5P_MXR_LAYER_CFG_GRP1_PRIORITY_INFO(x)	((x) & (0xF << 8))
#define S5P_MXR_LAYER_CFG_GRP0_HIDE		(0 << 4)
#define S5P_MXR_LAYER_CFG_GRP0_PRIORITY(x)	(((x) & 0xF) << 4)
#define S5P_MXR_LAYER_CFG_GRP0_PRIORITY_CLR(x)	((x) & (~(0xF << 4)))
#define S5P_MXR_LAYER_CFG_GRP0_PRIORITY_INFO(x)	((x) & (0xF << 4))
#define S5P_MXR_LAYER_CFG_VID_HIDE		(0 << 0)
#define S5P_MXR_LAYER_CFG_VID_PRIORITY(x)	(((x) & 0xF) << 0)
#define S5P_MXR_LAYER_CFG_VID_PRIORITY_CLR(x)	((x) & (~(0xF << 0)))
#define S5P_MXR_LAYER_CFG_VID_PRIORITY_INFO(x)	((x) & (0xF << 0))

/* MIXER_VIDEO_CFG */
#define S5P_MXR_VIDEO_CFG_LIMITER_DIS		(0 << 17)
#define S5P_MXR_VIDEO_CFG_LIMITER_EN		(1 << 17)
#define S5P_MXR_VIDEO_CFG_BLEND_DIS		(0 << 16)
#define S5P_MXR_VIDEO_CFG_BLEND_EN		(1 << 16)
#define S5P_MXR_VIDEO_CFG_ALPHA_MASK		(0xFF)
#define S5P_MXR_VIDEO_CFG_ALPHA_VALUE(x)	(((x) & 0xFF) << 0)
#define S5P_MXR_VIDEO_CFG_ALPHA_VALUE_CLR(x)	((x) & (~(0xFF << 0)))

/* MIXER_VIDEO_LIMITER_PARA_CFG */
#define S5P_MXR_VIDEO_LIMITER_PARA_Y_UPPER(x)   (((x) & 0xFF) << 24)
#define S5P_MXR_VIDEO_LIMITER_PARA_Y_LOWER(x)   (((x) & 0xFF) << 16)
#define S5P_MXR_VIDEO_LIMITER_PARA_C_UPPER(x)   (((x) & 0xFF) << 8)
#define S5P_MXR_VIDEO_LIMITER_PARA_C_LOWER(x)   (((x) & 0xFF) << 0)

/* MIXER_GRAPHIC0_CFG */
/* MIXER_GRAPHIC1_CFG */
#define S5P_MXR_BLANK_CHANGE_NEW_PIXEL		(1 << 21)
#define S5P_MXR_BLANK_NOT_CHANGE_NEW_PIXEL	(0 << 21)
#define S5P_MXR_PRE_MUL_MODE			(1 << 20)
#define S5P_MXR_NORMAL_MODE			(0 << 20)
#define S5P_MXR_WIN_BLEND_ENABLE		(1 << 17)
#define S5P_MXR_WIN_BLEND_DISABLE		(0 << 17)
#define S5P_MXR_PIXEL_BLEND_ENABLE		(1 << 16)
#define S5P_MXR_PIXEL_BLEND_DISABLE		(0 << 16)
#define S5P_MXR_EG_COLOR_FORMAT(x)		(((x) & 0xF) << 8)
#define S5P_MXR_EG_COLOR_FORMAT_CLEAR(x)	((x) & (~(0xF << 8)))
#define S5P_MXR_GRP_ALPHA_VALUE(x)		(((x) & 0xFF) << 0)
#define S5P_MXR_GRP_ALPHA_VALUE_CLEAR(x)	((x) & (~(0xFF << 0)))

/* MIXER_GRAPHIC0_BASE */
/* MIXER_GRAPHIC1_BASE */
#define S5P_MXR_GPR_BASE(x)			((x) & 0xFFFFFFFF)
#define S5P_MXR_GRP_ADDR_ILLEGAL(x)		((x) & 0x3)

/* MIXER_GRAPHIC0_SPAN */
#define S5P_MXR_GRP_SPAN(x)			((x) & 0x7FFF)

/* MIXER_GRAPHIC0_WH */
#define S5P_MXR_GRP_H_SCALE(x)			(((x) & 0x1) << 28)
#define S5P_MXR_GRP_V_SCALE(x)			(((x) & 0x1) << 12)
#define S5P_MXR_GRP_WIDTH(x)			(((x) & 0x7FF) << 16)
#define S5P_MXR_GRP_HEIGHT(x)			(((x) & 0x7FF) << 0)

/* MIXER_GRAPHIC0_XY */
#define S5P_MXR_GRP_STARTX(x)			(((x) & 0x7FF) << 16)
#define S5P_MXR_GRP_STARTY(x)			(((x) & 0x7FF) << 0)

/* MIXER_GRAPHIC0_DXY */
#define S5P_MXR_GRP_DESTX(x)			(((x) & 0x7FF) << 16)
#define S5P_MXR_GRP_DESTY(x)			(((x) & 0x7FF) << 0)

/* MIXER_GRAPHIC0_BLANK */
#define S5P_MXR_GPR_BLANK_COLOR(x)		((x) & 0xFFFFFFFF)

/* MIXER_BG_CFG */
#define S5P_MXR_BG_CR_DIHER_EN			(1 << 19)	/* Not support in S5PV210 */
#define S5P_MXR_BG_CB_DIHER_EN			(1 << 18)	/* Not support in S5PV210 */
#define S5P_MXR_BG_Y_DIHER_EN			(1 << 17)	/* Not support in S5PV210 */

/* MIXER_BG_COLOR0/1/2 */
#define S5P_MXR_BG_COEFF_0(x)			(((x) & 0x3F) << 20)
#define S5P_MXR_BG_COEFF_1(x)			(((x) & 0x3F) << 10)
#define S5P_MXR_BG_COEFF_2(x)			(((x) & 0x3F) << 0)

/* MIXER_CM_COEFF_Y */
#define S5P_MXR_BG_COLOR_WIDE			(1 << 30)
#define S5P_MXR_BG_COLOR_NARROW			(0 << 30)
#define S5P_MXR_BG_COLOR_Y(x)			(((x) & 0xFF) << 16)

/* MIXER_CM_COEFF_CB */
#define S5P_MXR_BG_COLOR_CB(x)			(((x) & 0xFF) << 8)

/* MIXER_CM_COEFF_Cr */
#define S5P_MXR_BG_COLOR_CR(x)			(((x) & 0xFF) << 0)
#endif /* __ARCH_ARM_REGS_MIXER_H */