xref: /OK3568_Linux_fs/kernel/drivers/gpu/drm/exynos/regs-decon7.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
4*4882a593Smuzhiyun  * Author: Ajay Kumar <ajaykumar.rs@samsung.com>
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #ifndef EXYNOS_REGS_DECON7_H
8*4882a593Smuzhiyun #define EXYNOS_REGS_DECON7_H
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun /* VIDCON0 */
11*4882a593Smuzhiyun #define VIDCON0					0x00
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun #define VIDCON0_SWRESET				(1 << 28)
14*4882a593Smuzhiyun #define VIDCON0_DECON_STOP_STATUS		(1 << 2)
15*4882a593Smuzhiyun #define VIDCON0_ENVID				(1 << 1)
16*4882a593Smuzhiyun #define VIDCON0_ENVID_F				(1 << 0)
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun /* VIDOUTCON0 */
19*4882a593Smuzhiyun #define VIDOUTCON0				0x4
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun #define VIDOUTCON0_DUAL_MASK			(0x3 << 24)
22*4882a593Smuzhiyun #define VIDOUTCON0_DUAL_ON			(0x3 << 24)
23*4882a593Smuzhiyun #define VIDOUTCON0_DISP_IF_1_ON			(0x2 << 24)
24*4882a593Smuzhiyun #define VIDOUTCON0_DISP_IF_0_ON			(0x1 << 24)
25*4882a593Smuzhiyun #define VIDOUTCON0_DUAL_OFF			(0x0 << 24)
26*4882a593Smuzhiyun #define VIDOUTCON0_IF_SHIFT			23
27*4882a593Smuzhiyun #define VIDOUTCON0_IF_MASK			(0x1 << 23)
28*4882a593Smuzhiyun #define VIDOUTCON0_RGBIF			(0x0 << 23)
29*4882a593Smuzhiyun #define VIDOUTCON0_I80IF			(0x1 << 23)
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun /* VIDCON3 */
32*4882a593Smuzhiyun #define VIDCON3					0x8
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun /* VIDCON4 */
35*4882a593Smuzhiyun #define VIDCON4					0xC
36*4882a593Smuzhiyun #define VIDCON4_FIFOCNT_START_EN		(1 << 0)
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun /* VCLKCON0 */
39*4882a593Smuzhiyun #define VCLKCON0				0x10
40*4882a593Smuzhiyun #define VCLKCON0_CLKVALUP			(1 << 8)
41*4882a593Smuzhiyun #define VCLKCON0_VCLKFREE			(1 << 0)
42*4882a593Smuzhiyun 
43*4882a593Smuzhiyun /* VCLKCON */
44*4882a593Smuzhiyun #define VCLKCON1				0x14
45*4882a593Smuzhiyun #define VCLKCON1_CLKVAL_NUM_VCLK(val)		(((val) & 0xff) << 0)
46*4882a593Smuzhiyun #define VCLKCON2				0x18
47*4882a593Smuzhiyun 
48*4882a593Smuzhiyun /* SHADOWCON */
49*4882a593Smuzhiyun #define SHADOWCON				0x30
50*4882a593Smuzhiyun 
51*4882a593Smuzhiyun #define SHADOWCON_WINx_PROTECT(_win)		(1 << (10 + (_win)))
52*4882a593Smuzhiyun 
53*4882a593Smuzhiyun /* WINCONx */
54*4882a593Smuzhiyun #define WINCON(_win)				(0x50 + ((_win) * 4))
55*4882a593Smuzhiyun 
56*4882a593Smuzhiyun #define WINCONx_BUFSTATUS			(0x3 << 30)
57*4882a593Smuzhiyun #define WINCONx_BUFSEL_MASK			(0x3 << 28)
58*4882a593Smuzhiyun #define WINCONx_BUFSEL_SHIFT			28
59*4882a593Smuzhiyun #define WINCONx_TRIPLE_BUF_MODE			(0x1 << 18)
60*4882a593Smuzhiyun #define WINCONx_DOUBLE_BUF_MODE			(0x0 << 18)
61*4882a593Smuzhiyun #define WINCONx_BURSTLEN_16WORD			(0x0 << 11)
62*4882a593Smuzhiyun #define WINCONx_BURSTLEN_8WORD			(0x1 << 11)
63*4882a593Smuzhiyun #define WINCONx_BURSTLEN_MASK			(0x1 << 11)
64*4882a593Smuzhiyun #define WINCONx_BURSTLEN_SHIFT			11
65*4882a593Smuzhiyun #define WINCONx_BLD_PLANE			(0 << 8)
66*4882a593Smuzhiyun #define WINCONx_BLD_PIX				(1 << 8)
67*4882a593Smuzhiyun #define WINCONx_ALPHA_MUL			(1 << 7)
68*4882a593Smuzhiyun 
69*4882a593Smuzhiyun #define WINCONx_BPPMODE_MASK			(0xf << 2)
70*4882a593Smuzhiyun #define WINCONx_BPPMODE_SHIFT			2
71*4882a593Smuzhiyun #define WINCONx_BPPMODE_16BPP_565		(0x8 << 2)
72*4882a593Smuzhiyun #define WINCONx_BPPMODE_24BPP_BGRx		(0x7 << 2)
73*4882a593Smuzhiyun #define WINCONx_BPPMODE_24BPP_RGBx		(0x6 << 2)
74*4882a593Smuzhiyun #define WINCONx_BPPMODE_24BPP_xBGR		(0x5 << 2)
75*4882a593Smuzhiyun #define WINCONx_BPPMODE_24BPP_xRGB		(0x4 << 2)
76*4882a593Smuzhiyun #define WINCONx_BPPMODE_32BPP_BGRA		(0x3 << 2)
77*4882a593Smuzhiyun #define WINCONx_BPPMODE_32BPP_RGBA		(0x2 << 2)
78*4882a593Smuzhiyun #define WINCONx_BPPMODE_32BPP_ABGR		(0x1 << 2)
79*4882a593Smuzhiyun #define WINCONx_BPPMODE_32BPP_ARGB		(0x0 << 2)
80*4882a593Smuzhiyun #define WINCONx_ALPHA_SEL			(1 << 1)
81*4882a593Smuzhiyun #define WINCONx_ENWIN				(1 << 0)
82*4882a593Smuzhiyun 
83*4882a593Smuzhiyun #define WINCON1_ALPHA_MUL_F			(1 << 7)
84*4882a593Smuzhiyun #define WINCON2_ALPHA_MUL_F			(1 << 7)
85*4882a593Smuzhiyun #define WINCON3_ALPHA_MUL_F			(1 << 7)
86*4882a593Smuzhiyun #define WINCON4_ALPHA_MUL_F			(1 << 7)
87*4882a593Smuzhiyun 
88*4882a593Smuzhiyun /*  VIDOSDxH: The height for the OSD image(READ ONLY)*/
89*4882a593Smuzhiyun #define VIDOSD_H(_x)				(0x80 + ((_x) * 4))
90*4882a593Smuzhiyun 
91*4882a593Smuzhiyun /* Frame buffer start addresses: VIDWxxADD0n */
92*4882a593Smuzhiyun #define VIDW_BUF_START(_win)			(0x80 + ((_win) * 0x10))
93*4882a593Smuzhiyun #define VIDW_BUF_START1(_win)			(0x84 + ((_win) * 0x10))
94*4882a593Smuzhiyun #define VIDW_BUF_START2(_win)			(0x88 + ((_win) * 0x10))
95*4882a593Smuzhiyun 
96*4882a593Smuzhiyun #define VIDW_WHOLE_X(_win)			(0x0130 + ((_win) * 8))
97*4882a593Smuzhiyun #define VIDW_WHOLE_Y(_win)			(0x0134 + ((_win) * 8))
98*4882a593Smuzhiyun #define VIDW_OFFSET_X(_win)			(0x0170 + ((_win) * 8))
99*4882a593Smuzhiyun #define VIDW_OFFSET_Y(_win)			(0x0174 + ((_win) * 8))
100*4882a593Smuzhiyun #define VIDW_BLKOFFSET(_win)			(0x01B0 + ((_win) * 4))
101*4882a593Smuzhiyun #define VIDW_BLKSIZE(win)			(0x0200 + ((_win) * 4))
102*4882a593Smuzhiyun 
103*4882a593Smuzhiyun /* Interrupt controls register */
104*4882a593Smuzhiyun #define VIDINTCON2				0x228
105*4882a593Smuzhiyun 
106*4882a593Smuzhiyun #define VIDINTCON1_INTEXTRA1_EN			(1 << 1)
107*4882a593Smuzhiyun #define VIDINTCON1_INTEXTRA0_EN			(1 << 0)
108*4882a593Smuzhiyun 
109*4882a593Smuzhiyun /* Interrupt controls and status register */
110*4882a593Smuzhiyun #define VIDINTCON3				0x22C
111*4882a593Smuzhiyun 
112*4882a593Smuzhiyun #define VIDINTCON1_INTEXTRA1_PEND		(1 << 1)
113*4882a593Smuzhiyun #define VIDINTCON1_INTEXTRA0_PEND		(1 << 0)
114*4882a593Smuzhiyun 
115*4882a593Smuzhiyun /* VIDOSDxA ~ VIDOSDxE */
116*4882a593Smuzhiyun #define VIDOSD_BASE				0x230
117*4882a593Smuzhiyun 
118*4882a593Smuzhiyun #define OSD_STRIDE				0x20
119*4882a593Smuzhiyun 
120*4882a593Smuzhiyun #define VIDOSD_A(_win)				(VIDOSD_BASE + \
121*4882a593Smuzhiyun 						((_win) * OSD_STRIDE) + 0x00)
122*4882a593Smuzhiyun #define VIDOSD_B(_win)				(VIDOSD_BASE + \
123*4882a593Smuzhiyun 						((_win) * OSD_STRIDE) + 0x04)
124*4882a593Smuzhiyun #define VIDOSD_C(_win)				(VIDOSD_BASE + \
125*4882a593Smuzhiyun 						((_win) * OSD_STRIDE) + 0x08)
126*4882a593Smuzhiyun #define VIDOSD_D(_win)				(VIDOSD_BASE + \
127*4882a593Smuzhiyun 						((_win) * OSD_STRIDE) + 0x0C)
128*4882a593Smuzhiyun #define VIDOSD_E(_win)				(VIDOSD_BASE + \
129*4882a593Smuzhiyun 						((_win) * OSD_STRIDE) + 0x10)
130*4882a593Smuzhiyun 
131*4882a593Smuzhiyun #define VIDOSDxA_TOPLEFT_X_MASK			(0x1fff << 13)
132*4882a593Smuzhiyun #define VIDOSDxA_TOPLEFT_X_SHIFT		13
133*4882a593Smuzhiyun #define VIDOSDxA_TOPLEFT_X_LIMIT		0x1fff
134*4882a593Smuzhiyun #define VIDOSDxA_TOPLEFT_X(_x)			(((_x) & 0x1fff) << 13)
135*4882a593Smuzhiyun 
136*4882a593Smuzhiyun #define VIDOSDxA_TOPLEFT_Y_MASK			(0x1fff << 0)
137*4882a593Smuzhiyun #define VIDOSDxA_TOPLEFT_Y_SHIFT		0
138*4882a593Smuzhiyun #define VIDOSDxA_TOPLEFT_Y_LIMIT		0x1fff
139*4882a593Smuzhiyun #define VIDOSDxA_TOPLEFT_Y(_x)			(((_x) & 0x1fff) << 0)
140*4882a593Smuzhiyun 
141*4882a593Smuzhiyun #define VIDOSDxB_BOTRIGHT_X_MASK		(0x1fff << 13)
142*4882a593Smuzhiyun #define VIDOSDxB_BOTRIGHT_X_SHIFT		13
143*4882a593Smuzhiyun #define VIDOSDxB_BOTRIGHT_X_LIMIT		0x1fff
144*4882a593Smuzhiyun #define VIDOSDxB_BOTRIGHT_X(_x)			(((_x) & 0x1fff) << 13)
145*4882a593Smuzhiyun 
146*4882a593Smuzhiyun #define VIDOSDxB_BOTRIGHT_Y_MASK		(0x1fff << 0)
147*4882a593Smuzhiyun #define VIDOSDxB_BOTRIGHT_Y_SHIFT		0
148*4882a593Smuzhiyun #define VIDOSDxB_BOTRIGHT_Y_LIMIT		0x1fff
149*4882a593Smuzhiyun #define VIDOSDxB_BOTRIGHT_Y(_x)			(((_x) & 0x1fff) << 0)
150*4882a593Smuzhiyun 
151*4882a593Smuzhiyun #define VIDOSDxC_ALPHA0_R_F(_x)			(((_x) & 0xFF) << 16)
152*4882a593Smuzhiyun #define VIDOSDxC_ALPHA0_G_F(_x)			(((_x) & 0xFF) << 8)
153*4882a593Smuzhiyun #define VIDOSDxC_ALPHA0_B_F(_x)			(((_x) & 0xFF) << 0)
154*4882a593Smuzhiyun 
155*4882a593Smuzhiyun #define VIDOSDxD_ALPHA1_R_F(_x)			(((_x) & 0xFF) << 16)
156*4882a593Smuzhiyun #define VIDOSDxD_ALPHA1_G_F(_x)			(((_x) & 0xFF) << 8)
157*4882a593Smuzhiyun #define VIDOSDxD_ALPHA1_B_F(_x)			(((_x) & 0xFF) >> 0)
158*4882a593Smuzhiyun 
159*4882a593Smuzhiyun /* Window MAP (Color map) */
160*4882a593Smuzhiyun #define WINxMAP(_win)				(0x340 + ((_win) * 4))
161*4882a593Smuzhiyun 
162*4882a593Smuzhiyun #define WINxMAP_MAP				(1 << 24)
163*4882a593Smuzhiyun #define WINxMAP_MAP_COLOUR_MASK			(0xffffff << 0)
164*4882a593Smuzhiyun #define WINxMAP_MAP_COLOUR_SHIFT		0
165*4882a593Smuzhiyun #define WINxMAP_MAP_COLOUR_LIMIT		0xffffff
166*4882a593Smuzhiyun #define WINxMAP_MAP_COLOUR(_x)			((_x) << 0)
167*4882a593Smuzhiyun 
168*4882a593Smuzhiyun /* Window colour-key control registers */
169*4882a593Smuzhiyun #define WKEYCON					0x370
170*4882a593Smuzhiyun 
171*4882a593Smuzhiyun #define WKEYCON0				0x00
172*4882a593Smuzhiyun #define WKEYCON1				0x04
173*4882a593Smuzhiyun #define WxKEYCON0_KEYBL_EN			(1 << 26)
174*4882a593Smuzhiyun #define WxKEYCON0_KEYEN_F			(1 << 25)
175*4882a593Smuzhiyun #define WxKEYCON0_DIRCON			(1 << 24)
176*4882a593Smuzhiyun #define WxKEYCON0_COMPKEY_MASK			(0xffffff << 0)
177*4882a593Smuzhiyun #define WxKEYCON0_COMPKEY_SHIFT			0
178*4882a593Smuzhiyun #define WxKEYCON0_COMPKEY_LIMIT			0xffffff
179*4882a593Smuzhiyun #define WxKEYCON0_COMPKEY(_x)			((_x) << 0)
180*4882a593Smuzhiyun #define WxKEYCON1_COLVAL_MASK			(0xffffff << 0)
181*4882a593Smuzhiyun #define WxKEYCON1_COLVAL_SHIFT			0
182*4882a593Smuzhiyun #define WxKEYCON1_COLVAL_LIMIT			0xffffff
183*4882a593Smuzhiyun #define WxKEYCON1_COLVAL(_x)			((_x) << 0)
184*4882a593Smuzhiyun 
185*4882a593Smuzhiyun /* color key control register for hardware window 1 ~ 4. */
186*4882a593Smuzhiyun #define WKEYCON0_BASE(x)		((WKEYCON + WKEYCON0) + ((x - 1) * 8))
187*4882a593Smuzhiyun /* color key value register for hardware window 1 ~ 4. */
188*4882a593Smuzhiyun #define WKEYCON1_BASE(x)		((WKEYCON + WKEYCON1) + ((x - 1) * 8))
189*4882a593Smuzhiyun 
190*4882a593Smuzhiyun /* Window KEY Alpha value */
191*4882a593Smuzhiyun #define WxKEYALPHA(_win)			(0x3A0 + (((_win) - 1) * 0x4))
192*4882a593Smuzhiyun 
193*4882a593Smuzhiyun #define Wx_KEYALPHA_R_F_SHIFT			16
194*4882a593Smuzhiyun #define Wx_KEYALPHA_G_F_SHIFT			8
195*4882a593Smuzhiyun #define Wx_KEYALPHA_B_F_SHIFT			0
196*4882a593Smuzhiyun 
197*4882a593Smuzhiyun /* Blending equation */
198*4882a593Smuzhiyun #define BLENDE(_win)				(0x03C0 + ((_win) * 4))
199*4882a593Smuzhiyun #define BLENDE_COEF_ZERO			0x0
200*4882a593Smuzhiyun #define BLENDE_COEF_ONE				0x1
201*4882a593Smuzhiyun #define BLENDE_COEF_ALPHA_A			0x2
202*4882a593Smuzhiyun #define BLENDE_COEF_ONE_MINUS_ALPHA_A		0x3
203*4882a593Smuzhiyun #define BLENDE_COEF_ALPHA_B			0x4
204*4882a593Smuzhiyun #define BLENDE_COEF_ONE_MINUS_ALPHA_B		0x5
205*4882a593Smuzhiyun #define BLENDE_COEF_ALPHA0			0x6
206*4882a593Smuzhiyun #define BLENDE_COEF_A				0xA
207*4882a593Smuzhiyun #define BLENDE_COEF_ONE_MINUS_A			0xB
208*4882a593Smuzhiyun #define BLENDE_COEF_B				0xC
209*4882a593Smuzhiyun #define BLENDE_COEF_ONE_MINUS_B			0xD
210*4882a593Smuzhiyun #define BLENDE_Q_FUNC(_v)			((_v) << 18)
211*4882a593Smuzhiyun #define BLENDE_P_FUNC(_v)			((_v) << 12)
212*4882a593Smuzhiyun #define BLENDE_B_FUNC(_v)			((_v) << 6)
213*4882a593Smuzhiyun #define BLENDE_A_FUNC(_v)			((_v) << 0)
214*4882a593Smuzhiyun 
215*4882a593Smuzhiyun /* Blending equation control */
216*4882a593Smuzhiyun #define BLENDCON				0x3D8
217*4882a593Smuzhiyun #define BLENDCON_NEW_MASK			(1 << 0)
218*4882a593Smuzhiyun #define BLENDCON_NEW_8BIT_ALPHA_VALUE		(1 << 0)
219*4882a593Smuzhiyun #define BLENDCON_NEW_4BIT_ALPHA_VALUE		(0 << 0)
220*4882a593Smuzhiyun 
221*4882a593Smuzhiyun /* Interrupt control register */
222*4882a593Smuzhiyun #define VIDINTCON0				0x500
223*4882a593Smuzhiyun 
224*4882a593Smuzhiyun #define VIDINTCON0_WAKEUP_MASK			(0x3f << 26)
225*4882a593Smuzhiyun #define VIDINTCON0_INTEXTRAEN			(1 << 21)
226*4882a593Smuzhiyun 
227*4882a593Smuzhiyun #define VIDINTCON0_FRAMESEL0_SHIFT		15
228*4882a593Smuzhiyun #define VIDINTCON0_FRAMESEL0_MASK		(0x3 << 15)
229*4882a593Smuzhiyun #define VIDINTCON0_FRAMESEL0_BACKPORCH		(0x0 << 15)
230*4882a593Smuzhiyun #define VIDINTCON0_FRAMESEL0_VSYNC		(0x1 << 15)
231*4882a593Smuzhiyun #define VIDINTCON0_FRAMESEL0_ACTIVE		(0x2 << 15)
232*4882a593Smuzhiyun #define VIDINTCON0_FRAMESEL0_FRONTPORCH		(0x3 << 15)
233*4882a593Smuzhiyun 
234*4882a593Smuzhiyun #define VIDINTCON0_INT_FRAME			(1 << 11)
235*4882a593Smuzhiyun 
236*4882a593Smuzhiyun #define VIDINTCON0_FIFOLEVEL_MASK		(0x7 << 3)
237*4882a593Smuzhiyun #define VIDINTCON0_FIFOLEVEL_SHIFT		3
238*4882a593Smuzhiyun #define VIDINTCON0_FIFOLEVEL_EMPTY		(0x0 << 3)
239*4882a593Smuzhiyun #define VIDINTCON0_FIFOLEVEL_TO25PC		(0x1 << 3)
240*4882a593Smuzhiyun #define VIDINTCON0_FIFOLEVEL_TO50PC		(0x2 << 3)
241*4882a593Smuzhiyun #define VIDINTCON0_FIFOLEVEL_FULL		(0x4 << 3)
242*4882a593Smuzhiyun 
243*4882a593Smuzhiyun #define VIDINTCON0_FIFOSEL_MAIN_EN		(1 << 1)
244*4882a593Smuzhiyun #define VIDINTCON0_INT_FIFO			(1 << 1)
245*4882a593Smuzhiyun 
246*4882a593Smuzhiyun #define VIDINTCON0_INT_ENABLE			(1 << 0)
247*4882a593Smuzhiyun 
248*4882a593Smuzhiyun /* Interrupt controls and status register */
249*4882a593Smuzhiyun #define VIDINTCON1				0x504
250*4882a593Smuzhiyun 
251*4882a593Smuzhiyun #define VIDINTCON1_INT_EXTRA			(1 << 3)
252*4882a593Smuzhiyun #define VIDINTCON1_INT_I80			(1 << 2)
253*4882a593Smuzhiyun #define VIDINTCON1_INT_FRAME			(1 << 1)
254*4882a593Smuzhiyun #define VIDINTCON1_INT_FIFO			(1 << 0)
255*4882a593Smuzhiyun 
256*4882a593Smuzhiyun /* VIDCON1 */
257*4882a593Smuzhiyun #define VIDCON1(_x)				(0x0600 + ((_x) * 0x50))
258*4882a593Smuzhiyun #define VIDCON1_LINECNT_GET(_v)			(((_v) >> 17) & 0x1fff)
259*4882a593Smuzhiyun #define VIDCON1_VCLK_MASK			(0x3 << 9)
260*4882a593Smuzhiyun #define VIDCON1_VCLK_HOLD			(0x0 << 9)
261*4882a593Smuzhiyun #define VIDCON1_VCLK_RUN			(0x1 << 9)
262*4882a593Smuzhiyun #define VIDCON1_VCLK_RUN_VDEN_DISABLE		(0x3 << 9)
263*4882a593Smuzhiyun #define VIDCON1_RGB_ORDER_O_MASK		(0x7 << 4)
264*4882a593Smuzhiyun #define VIDCON1_RGB_ORDER_O_RGB			(0x0 << 4)
265*4882a593Smuzhiyun #define VIDCON1_RGB_ORDER_O_GBR			(0x1 << 4)
266*4882a593Smuzhiyun #define VIDCON1_RGB_ORDER_O_BRG			(0x2 << 4)
267*4882a593Smuzhiyun #define VIDCON1_RGB_ORDER_O_BGR			(0x4 << 4)
268*4882a593Smuzhiyun #define VIDCON1_RGB_ORDER_O_RBG			(0x5 << 4)
269*4882a593Smuzhiyun #define VIDCON1_RGB_ORDER_O_GRB			(0x6 << 4)
270*4882a593Smuzhiyun 
271*4882a593Smuzhiyun /* VIDTCON0 */
272*4882a593Smuzhiyun #define VIDTCON0				0x610
273*4882a593Smuzhiyun 
274*4882a593Smuzhiyun #define VIDTCON0_VBPD_MASK			(0xffff << 16)
275*4882a593Smuzhiyun #define VIDTCON0_VBPD_SHIFT			16
276*4882a593Smuzhiyun #define VIDTCON0_VBPD_LIMIT			0xffff
277*4882a593Smuzhiyun #define VIDTCON0_VBPD(_x)			((_x) << 16)
278*4882a593Smuzhiyun 
279*4882a593Smuzhiyun #define VIDTCON0_VFPD_MASK			(0xffff << 0)
280*4882a593Smuzhiyun #define VIDTCON0_VFPD_SHIFT			0
281*4882a593Smuzhiyun #define VIDTCON0_VFPD_LIMIT			0xffff
282*4882a593Smuzhiyun #define VIDTCON0_VFPD(_x)			((_x) << 0)
283*4882a593Smuzhiyun 
284*4882a593Smuzhiyun /* VIDTCON1 */
285*4882a593Smuzhiyun #define VIDTCON1				0x614
286*4882a593Smuzhiyun 
287*4882a593Smuzhiyun #define VIDTCON1_VSPW_MASK			(0xffff << 16)
288*4882a593Smuzhiyun #define VIDTCON1_VSPW_SHIFT			16
289*4882a593Smuzhiyun #define VIDTCON1_VSPW_LIMIT			0xffff
290*4882a593Smuzhiyun #define VIDTCON1_VSPW(_x)			((_x) << 16)
291*4882a593Smuzhiyun 
292*4882a593Smuzhiyun /* VIDTCON2 */
293*4882a593Smuzhiyun #define VIDTCON2				0x618
294*4882a593Smuzhiyun 
295*4882a593Smuzhiyun #define VIDTCON2_HBPD_MASK			(0xffff << 16)
296*4882a593Smuzhiyun #define VIDTCON2_HBPD_SHIFT			16
297*4882a593Smuzhiyun #define VIDTCON2_HBPD_LIMIT			0xffff
298*4882a593Smuzhiyun #define VIDTCON2_HBPD(_x)			((_x) << 16)
299*4882a593Smuzhiyun 
300*4882a593Smuzhiyun #define VIDTCON2_HFPD_MASK			(0xffff << 0)
301*4882a593Smuzhiyun #define VIDTCON2_HFPD_SHIFT			0
302*4882a593Smuzhiyun #define VIDTCON2_HFPD_LIMIT			0xffff
303*4882a593Smuzhiyun #define VIDTCON2_HFPD(_x)			((_x) << 0)
304*4882a593Smuzhiyun 
305*4882a593Smuzhiyun /* VIDTCON3 */
306*4882a593Smuzhiyun #define VIDTCON3				0x61C
307*4882a593Smuzhiyun 
308*4882a593Smuzhiyun #define VIDTCON3_HSPW_MASK			(0xffff << 16)
309*4882a593Smuzhiyun #define VIDTCON3_HSPW_SHIFT			16
310*4882a593Smuzhiyun #define VIDTCON3_HSPW_LIMIT			0xffff
311*4882a593Smuzhiyun #define VIDTCON3_HSPW(_x)			((_x) << 16)
312*4882a593Smuzhiyun 
313*4882a593Smuzhiyun /* VIDTCON4 */
314*4882a593Smuzhiyun #define VIDTCON4				0x620
315*4882a593Smuzhiyun 
316*4882a593Smuzhiyun #define VIDTCON4_LINEVAL_MASK			(0xfff << 16)
317*4882a593Smuzhiyun #define VIDTCON4_LINEVAL_SHIFT			16
318*4882a593Smuzhiyun #define VIDTCON4_LINEVAL_LIMIT			0xfff
319*4882a593Smuzhiyun #define VIDTCON4_LINEVAL(_x)			(((_x) & 0xfff) << 16)
320*4882a593Smuzhiyun 
321*4882a593Smuzhiyun #define VIDTCON4_HOZVAL_MASK			(0xfff << 0)
322*4882a593Smuzhiyun #define VIDTCON4_HOZVAL_SHIFT			0
323*4882a593Smuzhiyun #define VIDTCON4_HOZVAL_LIMIT			0xfff
324*4882a593Smuzhiyun #define VIDTCON4_HOZVAL(_x)			(((_x) & 0xfff) << 0)
325*4882a593Smuzhiyun 
326*4882a593Smuzhiyun /* LINECNT OP THRSHOLD*/
327*4882a593Smuzhiyun #define LINECNT_OP_THRESHOLD			0x630
328*4882a593Smuzhiyun 
329*4882a593Smuzhiyun /* CRCCTRL */
330*4882a593Smuzhiyun #define CRCCTRL					0x6C8
331*4882a593Smuzhiyun #define CRCCTRL_CRCCLKEN			(0x1 << 2)
332*4882a593Smuzhiyun #define CRCCTRL_CRCSTART_F			(0x1 << 1)
333*4882a593Smuzhiyun #define CRCCTRL_CRCEN				(0x1 << 0)
334*4882a593Smuzhiyun 
335*4882a593Smuzhiyun /* DECON_CMU */
336*4882a593Smuzhiyun #define DECON_CMU				0x704
337*4882a593Smuzhiyun 
338*4882a593Smuzhiyun #define DECON_CMU_ALL_CLKGATE_ENABLE		0x3
339*4882a593Smuzhiyun #define DECON_CMU_SE_CLKGATE_ENABLE		(0x1 << 2)
340*4882a593Smuzhiyun #define DECON_CMU_SFR_CLKGATE_ENABLE		(0x1 << 1)
341*4882a593Smuzhiyun #define DECON_CMU_MEM_CLKGATE_ENABLE		(0x1 << 0)
342*4882a593Smuzhiyun 
343*4882a593Smuzhiyun /* DECON_UPDATE */
344*4882a593Smuzhiyun #define DECON_UPDATE				0x710
345*4882a593Smuzhiyun 
346*4882a593Smuzhiyun #define DECON_UPDATE_SLAVE_SYNC			(1 << 4)
347*4882a593Smuzhiyun #define DECON_UPDATE_STANDALONE_F		(1 << 0)
348*4882a593Smuzhiyun 
349*4882a593Smuzhiyun #endif /* EXYNOS_REGS_DECON7_H */
350