xref: /rk3399_rockchip-uboot/arch/arm/mach-exynos/include/mach/fb.h (revision 783983f323730540f861413dfbea6802c88afcf8)
1*77b55e8cSThomas Abraham /*
2*77b55e8cSThomas Abraham  * (C) Copyright 2012 Samsung Electronics
3*77b55e8cSThomas Abraham  * Donghwa Lee <dh09.lee@samsung.com>
4*77b55e8cSThomas Abraham  *
5*77b55e8cSThomas Abraham  * SPDX-License-Identifier:	GPL-2.0+
6*77b55e8cSThomas Abraham  */
7*77b55e8cSThomas Abraham 
8*77b55e8cSThomas Abraham #ifndef __ASM_ARM_ARCH_FB_H_
9*77b55e8cSThomas Abraham #define __ASM_ARM_ARCH_FB_H_
10*77b55e8cSThomas Abraham 
11*77b55e8cSThomas Abraham #ifndef __ASSEMBLY__
12*77b55e8cSThomas Abraham struct exynos_fb {
13*77b55e8cSThomas Abraham 	unsigned int vidcon0;
14*77b55e8cSThomas Abraham 	unsigned int vidcon1;
15*77b55e8cSThomas Abraham 	unsigned int vidcon2;
16*77b55e8cSThomas Abraham 	unsigned int vidcon3;
17*77b55e8cSThomas Abraham 	unsigned int vidtcon0;
18*77b55e8cSThomas Abraham 	unsigned int vidtcon1;
19*77b55e8cSThomas Abraham 	unsigned int vidtcon2;
20*77b55e8cSThomas Abraham 	unsigned int vidtcon3;
21*77b55e8cSThomas Abraham 	unsigned int wincon0;
22*77b55e8cSThomas Abraham 	unsigned int wincon1;
23*77b55e8cSThomas Abraham 	unsigned int wincon2;
24*77b55e8cSThomas Abraham 	unsigned int wincon3;
25*77b55e8cSThomas Abraham 	unsigned int wincon4;
26*77b55e8cSThomas Abraham 
27*77b55e8cSThomas Abraham 	unsigned int winshmap;
28*77b55e8cSThomas Abraham 	unsigned int res1;
29*77b55e8cSThomas Abraham 
30*77b55e8cSThomas Abraham 	unsigned int winchmap2;
31*77b55e8cSThomas Abraham 	unsigned int vidosd0a;
32*77b55e8cSThomas Abraham 	unsigned int vidosd0b;
33*77b55e8cSThomas Abraham 	unsigned int vidosd0c;
34*77b55e8cSThomas Abraham 	unsigned int res2;
35*77b55e8cSThomas Abraham 
36*77b55e8cSThomas Abraham 	unsigned int vidosd1a;
37*77b55e8cSThomas Abraham 	unsigned int vidosd1b;
38*77b55e8cSThomas Abraham 	unsigned int vidosd1c;
39*77b55e8cSThomas Abraham 	unsigned int vidosd1d;
40*77b55e8cSThomas Abraham 
41*77b55e8cSThomas Abraham 	unsigned int vidosd2a;
42*77b55e8cSThomas Abraham 	unsigned int vidosd2b;
43*77b55e8cSThomas Abraham 	unsigned int vidosd2c;
44*77b55e8cSThomas Abraham 	unsigned int vidosd2d;
45*77b55e8cSThomas Abraham 
46*77b55e8cSThomas Abraham 	unsigned int vidosd3a;
47*77b55e8cSThomas Abraham 	unsigned int vidosd3b;
48*77b55e8cSThomas Abraham 	unsigned int vidosd3c;
49*77b55e8cSThomas Abraham 	unsigned int res3;
50*77b55e8cSThomas Abraham 
51*77b55e8cSThomas Abraham 	unsigned int vidosd4a;
52*77b55e8cSThomas Abraham 	unsigned int vidosd4b;
53*77b55e8cSThomas Abraham 	unsigned int vidosd4c;
54*77b55e8cSThomas Abraham 	unsigned int res4[5];
55*77b55e8cSThomas Abraham 
56*77b55e8cSThomas Abraham 	unsigned int vidw00add0b0;
57*77b55e8cSThomas Abraham 	unsigned int vidw00add0b1;
58*77b55e8cSThomas Abraham 	unsigned int vidw01add0b0;
59*77b55e8cSThomas Abraham 	unsigned int vidw01add0b1;
60*77b55e8cSThomas Abraham 
61*77b55e8cSThomas Abraham 	unsigned int vidw02add0b0;
62*77b55e8cSThomas Abraham 	unsigned int vidw02add0b1;
63*77b55e8cSThomas Abraham 	unsigned int vidw03add0b0;
64*77b55e8cSThomas Abraham 	unsigned int vidw03add0b1;
65*77b55e8cSThomas Abraham 	unsigned int vidw04add0b0;
66*77b55e8cSThomas Abraham 	unsigned int vidw04add0b1;
67*77b55e8cSThomas Abraham 	unsigned int res5[2];
68*77b55e8cSThomas Abraham 
69*77b55e8cSThomas Abraham 	unsigned int vidw00add1b0;
70*77b55e8cSThomas Abraham 	unsigned int vidw00add1b1;
71*77b55e8cSThomas Abraham 	unsigned int vidw01add1b0;
72*77b55e8cSThomas Abraham 	unsigned int vidw01add1b1;
73*77b55e8cSThomas Abraham 
74*77b55e8cSThomas Abraham 	unsigned int vidw02add1b0;
75*77b55e8cSThomas Abraham 	unsigned int vidw02add1b1;
76*77b55e8cSThomas Abraham 	unsigned int vidw03add1b0;
77*77b55e8cSThomas Abraham 	unsigned int vidw03add1b1;
78*77b55e8cSThomas Abraham 
79*77b55e8cSThomas Abraham 	unsigned int vidw04add1b0;
80*77b55e8cSThomas Abraham 	unsigned int vidw04add1b1;
81*77b55e8cSThomas Abraham 	unsigned int res7[2];
82*77b55e8cSThomas Abraham 
83*77b55e8cSThomas Abraham 	unsigned int vidw00add2;
84*77b55e8cSThomas Abraham 	unsigned int vidw01add2;
85*77b55e8cSThomas Abraham 	unsigned int vidw02add2;
86*77b55e8cSThomas Abraham 	unsigned int vidw03add2;
87*77b55e8cSThomas Abraham 	unsigned int vidw04add2;
88*77b55e8cSThomas Abraham 	unsigned int res8[7];
89*77b55e8cSThomas Abraham 
90*77b55e8cSThomas Abraham 	unsigned int vidintcon0;
91*77b55e8cSThomas Abraham 	unsigned int vidintcon1;
92*77b55e8cSThomas Abraham 	unsigned int res9[1];
93*77b55e8cSThomas Abraham 
94*77b55e8cSThomas Abraham 	unsigned int w1keycon0;
95*77b55e8cSThomas Abraham 	unsigned int w1keycon1;
96*77b55e8cSThomas Abraham 	unsigned int w2keycon0;
97*77b55e8cSThomas Abraham 	unsigned int w2keycon1;
98*77b55e8cSThomas Abraham 	unsigned int w3keycon0;
99*77b55e8cSThomas Abraham 	unsigned int w3keycon1;
100*77b55e8cSThomas Abraham 	unsigned int w4keycon0;
101*77b55e8cSThomas Abraham 	unsigned int w4keycon1;
102*77b55e8cSThomas Abraham 
103*77b55e8cSThomas Abraham 	unsigned int w1keyalpha;
104*77b55e8cSThomas Abraham 	unsigned int w2keyalpha;
105*77b55e8cSThomas Abraham 	unsigned int w3keyalpha;
106*77b55e8cSThomas Abraham 	unsigned int w4keyalpha;
107*77b55e8cSThomas Abraham 
108*77b55e8cSThomas Abraham 	unsigned int dithmode;
109*77b55e8cSThomas Abraham 	unsigned int res10[2];
110*77b55e8cSThomas Abraham 
111*77b55e8cSThomas Abraham 	unsigned int win0map;
112*77b55e8cSThomas Abraham 	unsigned int win1map;
113*77b55e8cSThomas Abraham 	unsigned int win2map;
114*77b55e8cSThomas Abraham 	unsigned int win3map;
115*77b55e8cSThomas Abraham 	unsigned int win4map;
116*77b55e8cSThomas Abraham 	unsigned int res11[1];
117*77b55e8cSThomas Abraham 
118*77b55e8cSThomas Abraham 	unsigned int wpalcon_h;
119*77b55e8cSThomas Abraham 	unsigned int wpalcon_l;
120*77b55e8cSThomas Abraham 
121*77b55e8cSThomas Abraham 	unsigned int trigcon;
122*77b55e8cSThomas Abraham 	unsigned int res12[2];
123*77b55e8cSThomas Abraham 
124*77b55e8cSThomas Abraham 	unsigned int i80ifcona0;
125*77b55e8cSThomas Abraham 	unsigned int i80ifcona1;
126*77b55e8cSThomas Abraham 	unsigned int i80ifconb0;
127*77b55e8cSThomas Abraham 	unsigned int i80ifconb1;
128*77b55e8cSThomas Abraham 
129*77b55e8cSThomas Abraham 	unsigned int colorgaincon;
130*77b55e8cSThomas Abraham 	unsigned int res13[2];
131*77b55e8cSThomas Abraham 
132*77b55e8cSThomas Abraham 	unsigned int ldi_cmdcon0;
133*77b55e8cSThomas Abraham 	unsigned int ldi_cmdcon1;
134*77b55e8cSThomas Abraham 	unsigned int res14[1];
135*77b55e8cSThomas Abraham 
136*77b55e8cSThomas Abraham 	/* To be updated */
137*77b55e8cSThomas Abraham 
138*77b55e8cSThomas Abraham 	unsigned char res15[156];
139*77b55e8cSThomas Abraham 	unsigned int dualrgb;
140*77b55e8cSThomas Abraham 	unsigned char res16[16];
141*77b55e8cSThomas Abraham 	unsigned int dp_mie_clkcon;
142*77b55e8cSThomas Abraham };
143*77b55e8cSThomas Abraham #endif
144*77b55e8cSThomas Abraham 
145*77b55e8cSThomas Abraham /* LCD IF register offset */
146*77b55e8cSThomas Abraham #define EXYNOS4_LCD_IF_BASE_OFFSET			0x0
147*77b55e8cSThomas Abraham #define EXYNOS5_LCD_IF_BASE_OFFSET			0x20000
148*77b55e8cSThomas Abraham 
exynos_fimd_get_base_offset(void)149*77b55e8cSThomas Abraham static inline unsigned int exynos_fimd_get_base_offset(void)
150*77b55e8cSThomas Abraham {
151*77b55e8cSThomas Abraham 	if (cpu_is_exynos5())
152*77b55e8cSThomas Abraham 		return EXYNOS5_LCD_IF_BASE_OFFSET;
153*77b55e8cSThomas Abraham 	else
154*77b55e8cSThomas Abraham 		return EXYNOS4_LCD_IF_BASE_OFFSET;
155*77b55e8cSThomas Abraham }
156*77b55e8cSThomas Abraham 
157*77b55e8cSThomas Abraham /*
158*77b55e8cSThomas Abraham  *  Register offsets
159*77b55e8cSThomas Abraham */
160*77b55e8cSThomas Abraham #define EXYNOS_WINCON(x)				(x * 0x04)
161*77b55e8cSThomas Abraham #define EXYNOS_VIDOSD(x)				(x * 0x10)
162*77b55e8cSThomas Abraham #define EXYNOS_BUFFER_OFFSET(x)				(x * 0x08)
163*77b55e8cSThomas Abraham #define EXYNOS_BUFFER_SIZE(x)				(x * 0x04)
164*77b55e8cSThomas Abraham 
165*77b55e8cSThomas Abraham /*
166*77b55e8cSThomas Abraham  * Bit Definitions
167*77b55e8cSThomas Abraham */
168*77b55e8cSThomas Abraham 
169*77b55e8cSThomas Abraham /* VIDCON0 */
170*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_DSI_DISABLE			(0 << 30)
171*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_DSI_ENABLE			(1 << 30)
172*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_SCAN_PROGRESSIVE			(0 << 29)
173*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_SCAN_INTERLACE			(1 << 29)
174*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_SCAN_MASK			(1 << 29)
175*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_VIDOUT_RGB			(0 << 26)
176*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_VIDOUT_ITU			(1 << 26)
177*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_VIDOUT_I80LDI0			(2 << 26)
178*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_VIDOUT_I80LDI1			(3 << 26)
179*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_VIDOUT_WB_RGB			(4 << 26)
180*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_VIDOUT_WB_I80LDI0		(6 << 26)
181*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_VIDOUT_WB_I80LDI1		(7 << 26)
182*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_VIDOUT_MASK			(7 << 26)
183*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_PNRMODE_RGB_P			(0 << 17)
184*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_PNRMODE_BGR_P			(1 << 17)
185*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_PNRMODE_RGB_S			(2 << 17)
186*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_PNRMODE_BGR_S			(3 << 17)
187*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_PNRMODE_MASK			(3 << 17)
188*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_PNRMODE_SHIFT			(17)
189*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_CLKVALUP_ALWAYS			(0 << 16)
190*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_CLKVALUP_START_FRAME		(1 << 16)
191*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_CLKVALUP_MASK			(1 << 16)
192*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_CLKVAL_F(x)			(((x) & 0xff) << 6)
193*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_VCLKEN_NORMAL			(0 << 5)
194*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_VCLKEN_FREERUN			(1 << 5)
195*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_VCLKEN_MASK			(1 << 5)
196*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_CLKDIR_DIRECTED			(0 << 4)
197*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_CLKDIR_DIVIDED			(1 << 4)
198*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_CLKDIR_MASK			(1 << 4)
199*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_CLKSEL_HCLK			(0 << 2)
200*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_CLKSEL_SCLK			(1 << 2)
201*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_CLKSEL_MASK			(1 << 2)
202*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_ENVID_ENABLE			(1 << 1)
203*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_ENVID_DISABLE			(0 << 1)
204*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_ENVID_F_ENABLE			(1 << 0)
205*77b55e8cSThomas Abraham #define EXYNOS_VIDCON0_ENVID_F_DISABLE			(0 << 0)
206*77b55e8cSThomas Abraham 
207*77b55e8cSThomas Abraham /* VIDCON1 */
208*77b55e8cSThomas Abraham #define EXYNOS_VIDCON1_IVCLK_FALLING_EDGE		(0 << 7)
209*77b55e8cSThomas Abraham #define EXYNOS_VIDCON1_IVCLK_RISING_EDGE		(1 << 7)
210*77b55e8cSThomas Abraham #define EXYNOS_VIDCON1_IHSYNC_NORMAL			(0 << 6)
211*77b55e8cSThomas Abraham #define EXYNOS_VIDCON1_IHSYNC_INVERT			(1 << 6)
212*77b55e8cSThomas Abraham #define EXYNOS_VIDCON1_IVSYNC_NORMAL			(0 << 5)
213*77b55e8cSThomas Abraham #define EXYNOS_VIDCON1_IVSYNC_INVERT			(1 << 5)
214*77b55e8cSThomas Abraham #define EXYNOS_VIDCON1_IVDEN_NORMAL			(0 << 4)
215*77b55e8cSThomas Abraham #define EXYNOS_VIDCON1_IVDEN_INVERT			(1 << 4)
216*77b55e8cSThomas Abraham 
217*77b55e8cSThomas Abraham /* VIDCON2 */
218*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_EN601_DISABLE			(0 << 23)
219*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_EN601_ENABLE			(1 << 23)
220*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_EN601_MASK			(1 << 23)
221*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_WB_DISABLE			(0 << 15)
222*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_WB_ENABLE			(1 << 15)
223*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_WB_MASK				(1 << 15)
224*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_TVFORMATSEL_HW			(0 << 14)
225*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_TVFORMATSEL_SW			(1 << 14)
226*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_TVFORMATSEL_MASK			(1 << 14)
227*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_TVFORMATSEL_YUV422		(1 << 12)
228*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_TVFORMATSEL_YUV444		(2 << 12)
229*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_TVFORMATSEL_YUV_MASK		(3 << 12)
230*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_ORGYUV_YCBCR			(0 << 8)
231*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_ORGYUV_CBCRY			(1 << 8)
232*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_ORGYUV_MASK			(1 << 8)
233*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_YUVORD_CBCR			(0 << 7)
234*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_YUVORD_CRCB			(1 << 7)
235*77b55e8cSThomas Abraham #define EXYNOS_VIDCON2_YUVORD_MASK			(1 << 7)
236*77b55e8cSThomas Abraham 
237*77b55e8cSThomas Abraham /* PRTCON */
238*77b55e8cSThomas Abraham #define EXYNOS_PRTCON_UPDATABLE				(0 << 11)
239*77b55e8cSThomas Abraham #define EXYNOS_PRTCON_PROTECT				(1 << 11)
240*77b55e8cSThomas Abraham 
241*77b55e8cSThomas Abraham /* VIDTCON0 */
242*77b55e8cSThomas Abraham #define EXYNOS_VIDTCON0_VBPDE(x)			(((x) & 0xff) << 24)
243*77b55e8cSThomas Abraham #define EXYNOS_VIDTCON0_VBPD(x)				(((x) & 0xff) << 16)
244*77b55e8cSThomas Abraham #define EXYNOS_VIDTCON0_VFPD(x)				(((x) & 0xff) << 8)
245*77b55e8cSThomas Abraham #define EXYNOS_VIDTCON0_VSPW(x)				(((x) & 0xff) << 0)
246*77b55e8cSThomas Abraham 
247*77b55e8cSThomas Abraham /* VIDTCON1 */
248*77b55e8cSThomas Abraham #define EXYNOS_VIDTCON1_VFPDE(x)			(((x) & 0xff) << 24)
249*77b55e8cSThomas Abraham #define EXYNOS_VIDTCON1_HBPD(x)				(((x) & 0xff) << 16)
250*77b55e8cSThomas Abraham #define EXYNOS_VIDTCON1_HFPD(x)				(((x) & 0xff) << 8)
251*77b55e8cSThomas Abraham #define EXYNOS_VIDTCON1_HSPW(x)				(((x) & 0xff) << 0)
252*77b55e8cSThomas Abraham 
253*77b55e8cSThomas Abraham /* VIDTCON2 */
254*77b55e8cSThomas Abraham #define EXYNOS_VIDTCON2_LINEVAL(x)			(((x) & 0x7ff) << 11)
255*77b55e8cSThomas Abraham #define EXYNOS_VIDTCON2_HOZVAL(x)			(((x) & 0x7ff) << 0)
256*77b55e8cSThomas Abraham #define EXYNOS_VIDTCON2_LINEVAL_E(x)			((((x) & 0x800) >> 11) << 23)
257*77b55e8cSThomas Abraham #define EXYNOS_VIDTCON2_HOZVAL_E(x)			((((x) & 0x800) >> 11) << 22)
258*77b55e8cSThomas Abraham 
259*77b55e8cSThomas Abraham /* Window 0~4 Control - WINCONx */
260*77b55e8cSThomas Abraham #define EXYNOS_WINCON_DATAPATH_DMA			(0 << 22)
261*77b55e8cSThomas Abraham #define EXYNOS_WINCON_DATAPATH_LOCAL			(1 << 22)
262*77b55e8cSThomas Abraham #define EXYNOS_WINCON_DATAPATH_MASK			(1 << 22)
263*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BUFSEL_0				(0 << 20)
264*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BUFSEL_1				(1 << 20)
265*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BUFSEL_MASK			(1 << 20)
266*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BUFSEL_SHIFT			(20)
267*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BUFAUTO_DISABLE			(0 << 19)
268*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BUFAUTO_ENABLE			(1 << 19)
269*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BUFAUTO_MASK			(1 << 19)
270*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BITSWP_DISABLE			(0 << 18)
271*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BITSWP_ENABLE			(1 << 18)
272*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BITSWP_SHIFT			(18)
273*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BYTESWP_DISABLE			(0 << 17)
274*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BYTESWP_ENABLE			(1 << 17)
275*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BYTESWP_SHIFT			(17)
276*77b55e8cSThomas Abraham #define EXYNOS_WINCON_HAWSWP_DISABLE			(0 << 16)
277*77b55e8cSThomas Abraham #define EXYNOS_WINCON_HAWSWP_ENABLE			(1 << 16)
278*77b55e8cSThomas Abraham #define EXYNOS_WINCON_HAWSWP_SHIFT			(16)
279*77b55e8cSThomas Abraham #define EXYNOS_WINCON_WSWP_DISABLE			(0 << 15)
280*77b55e8cSThomas Abraham #define EXYNOS_WINCON_WSWP_ENABLE			(1 << 15)
281*77b55e8cSThomas Abraham #define EXYNOS_WINCON_WSWP_SHIFT			(15)
282*77b55e8cSThomas Abraham #define EXYNOS_WINCON_INRGB_RGB				(0 << 13)
283*77b55e8cSThomas Abraham #define EXYNOS_WINCON_INRGB_YUV				(1 << 13)
284*77b55e8cSThomas Abraham #define EXYNOS_WINCON_INRGB_MASK			(1 << 13)
285*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BURSTLEN_16WORD			(0 << 9)
286*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BURSTLEN_8WORD			(1 << 9)
287*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BURSTLEN_4WORD			(2 << 9)
288*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BURSTLEN_MASK			(3 << 9)
289*77b55e8cSThomas Abraham #define EXYNOS_WINCON_ALPHA_MULTI_DISABLE		(0 << 7)
290*77b55e8cSThomas Abraham #define EXYNOS_WINCON_ALPHA_MULTI_ENABLE		(1 << 7)
291*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BLD_PLANE				(0 << 6)
292*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BLD_PIXEL				(1 << 6)
293*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BLD_MASK				(1 << 6)
294*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BPPMODE_1BPP			(0 << 2)
295*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BPPMODE_2BPP			(1 << 2)
296*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BPPMODE_4BPP			(2 << 2)
297*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BPPMODE_8BPP_PAL			(3 << 2)
298*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BPPMODE_8BPP			(4 << 2)
299*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BPPMODE_16BPP_565			(5 << 2)
300*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BPPMODE_16BPP_A555		(6 << 2)
301*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BPPMODE_18BPP_666			(8 << 2)
302*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BPPMODE_18BPP_A665		(9 << 2)
303*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BPPMODE_24BPP_888			(0xb << 2)
304*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BPPMODE_24BPP_A887		(0xc << 2)
305*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BPPMODE_32BPP			(0xd << 2)
306*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BPPMODE_16BPP_A444		(0xe << 2)
307*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BPPMODE_15BPP_555			(0xf << 2)
308*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BPPMODE_MASK			(0xf << 2)
309*77b55e8cSThomas Abraham #define EXYNOS_WINCON_BPPMODE_SHIFT			(2)
310*77b55e8cSThomas Abraham #define EXYNOS_WINCON_ALPHA0_SEL			(0 << 1)
311*77b55e8cSThomas Abraham #define EXYNOS_WINCON_ALPHA1_SEL			(1 << 1)
312*77b55e8cSThomas Abraham #define EXYNOS_WINCON_ALPHA_SEL_MASK			(1 << 1)
313*77b55e8cSThomas Abraham #define EXYNOS_WINCON_ENWIN_DISABLE			(0 << 0)
314*77b55e8cSThomas Abraham #define EXYNOS_WINCON_ENWIN_ENABLE			(1 << 0)
315*77b55e8cSThomas Abraham 
316*77b55e8cSThomas Abraham /* WINCON1 special */
317*77b55e8cSThomas Abraham #define EXYNOS_WINCON1_VP_DISABLE			(0 << 24)
318*77b55e8cSThomas Abraham #define EXYNOS_WINCON1_VP_ENABLE			(1 << 24)
319*77b55e8cSThomas Abraham #define EXYNOS_WINCON1_LOCALSEL_FIMC1			(0 << 23)
320*77b55e8cSThomas Abraham #define EXYNOS_WINCON1_LOCALSEL_VP			(1 << 23)
321*77b55e8cSThomas Abraham #define EXYNOS_WINCON1_LOCALSEL_MASK			(1 << 23)
322*77b55e8cSThomas Abraham 
323*77b55e8cSThomas Abraham /* WINSHMAP */
324*77b55e8cSThomas Abraham #define EXYNOS_WINSHMAP_PROTECT(x)			(((x) & 0x1f) << 10)
325*77b55e8cSThomas Abraham #define EXYNOS_WINSHMAP_CH_ENABLE(x)			(1 << (x))
326*77b55e8cSThomas Abraham #define EXYNOS_WINSHMAP_CH_DISABLE(x)			(1 << (x))
327*77b55e8cSThomas Abraham #define EXYNOS_WINSHMAP_LOCAL_ENABLE(x)			(0x20 << (x))
328*77b55e8cSThomas Abraham #define EXYNOS_WINSHMAP_LOCAL_DISABLE(x)		(0x20 << (x))
329*77b55e8cSThomas Abraham 
330*77b55e8cSThomas Abraham /* VIDOSDxA, VIDOSDxB */
331*77b55e8cSThomas Abraham #define EXYNOS_VIDOSD_LEFT_X(x)				(((x) & 0x7ff) << 11)
332*77b55e8cSThomas Abraham #define EXYNOS_VIDOSD_TOP_Y(x)				(((x) & 0x7ff) << 0)
333*77b55e8cSThomas Abraham #define EXYNOS_VIDOSD_RIGHT_X(x)			(((x) & 0x7ff) << 11)
334*77b55e8cSThomas Abraham #define EXYNOS_VIDOSD_BOTTOM_Y(x)			(((x) & 0x7ff) << 0)
335*77b55e8cSThomas Abraham #define EXYNOS_VIDOSD_RIGHT_X_E(x)			(((x) & 0x1) << 23)
336*77b55e8cSThomas Abraham #define EXYNOS_VIDOSD_BOTTOM_Y_E(x)			(((x) & 0x1) << 22)
337*77b55e8cSThomas Abraham 
338*77b55e8cSThomas Abraham /* VIDOSD0C, VIDOSDxD */
339*77b55e8cSThomas Abraham #define EXYNOS_VIDOSD_SIZE(x)				(((x) & 0xffffff) << 0)
340*77b55e8cSThomas Abraham 
341*77b55e8cSThomas Abraham /* VIDOSDxC (1~4) */
342*77b55e8cSThomas Abraham #define EXYNOS_VIDOSD_ALPHA0_R(x)			(((x) & 0xf) << 20)
343*77b55e8cSThomas Abraham #define EXYNOS_VIDOSD_ALPHA0_G(x)			(((x) & 0xf) << 16)
344*77b55e8cSThomas Abraham #define EXYNOS_VIDOSD_ALPHA0_B(x)			(((x) & 0xf) << 12)
345*77b55e8cSThomas Abraham #define EXYNOS_VIDOSD_ALPHA1_R(x)			(((x) & 0xf) << 8)
346*77b55e8cSThomas Abraham #define EXYNOS_VIDOSD_ALPHA1_G(x)			(((x) & 0xf) << 4)
347*77b55e8cSThomas Abraham #define EXYNOS_VIDOSD_ALPHA1_B(x)			(((x) & 0xf) << 0)
348*77b55e8cSThomas Abraham #define EXYNOS_VIDOSD_ALPHA0_SHIFT			(12)
349*77b55e8cSThomas Abraham #define EXYNOS_VIDOSD_ALPHA1_SHIFT			(0)
350*77b55e8cSThomas Abraham 
351*77b55e8cSThomas Abraham /* Start Address */
352*77b55e8cSThomas Abraham #define EXYNOS_VIDADDR_START_VBANK(x)			(((x) & 0xff) << 24)
353*77b55e8cSThomas Abraham #define EXYNOS_VIDADDR_START_VBASEU(x)			(((x) & 0xffffff) << 0)
354*77b55e8cSThomas Abraham 
355*77b55e8cSThomas Abraham /* End Address */
356*77b55e8cSThomas Abraham #define EXYNOS_VIDADDR_END_VBASEL(x)			(((x) & 0xffffff) << 0)
357*77b55e8cSThomas Abraham 
358*77b55e8cSThomas Abraham /* Buffer Size */
359*77b55e8cSThomas Abraham #define EXYNOS_VIDADDR_OFFSIZE(x)			(((x) & 0x1fff) << 13)
360*77b55e8cSThomas Abraham #define EXYNOS_VIDADDR_PAGEWIDTH(x)			(((x) & 0x1fff) << 0)
361*77b55e8cSThomas Abraham #define EXYNOS_VIDADDR_OFFSIZE_E(x)			((((x) & 0x2000) >> 13) << 27)
362*77b55e8cSThomas Abraham #define EXYNOS_VIDADDR_PAGEWIDTH_E(x)			((((x) & 0x2000) >> 13) << 26)
363*77b55e8cSThomas Abraham 
364*77b55e8cSThomas Abraham /* WIN Color Map */
365*77b55e8cSThomas Abraham #define EXYNOS_WINMAP_COLOR(x)				((x) & 0xffffff)
366*77b55e8cSThomas Abraham 
367*77b55e8cSThomas Abraham /* VIDINTCON0 */
368*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_SYSMAINCON_DISABLE		(0 << 19)
369*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_SYSMAINCON_ENABLE		(1 << 19)
370*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_SYSSUBCON_DISABLE		(0 << 18)
371*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_SYSSUBCON_ENABLE		(1 << 18)
372*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_SYSIFDONE_DISABLE		(0 << 17)
373*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_SYSIFDONE_ENABLE		(1 << 17)
374*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FRAMESEL0_BACK		(0 << 15)
375*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FRAMESEL0_VSYNC		(1 << 15)
376*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FRAMESEL0_ACTIVE		(2 << 15)
377*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FRAMESEL0_FRONT		(3 << 15)
378*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FRAMESEL0_MASK		(3 << 15)
379*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FRAMESEL1_NONE		(0 << 13)
380*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FRAMESEL1_BACK		(1 << 13)
381*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FRAMESEL1_VSYNC		(2 << 13)
382*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FRAMESEL1_FRONT		(3 << 13)
383*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_INTFRMEN_DISABLE		(0 << 12)
384*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_INTFRMEN_ENABLE		(1 << 12)
385*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FIFOSEL_WIN4			(1 << 11)
386*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FIFOSEL_WIN3			(1 << 10)
387*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FIFOSEL_WIN2			(1 << 9)
388*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FIFOSEL_WIN1			(1 << 6)
389*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FIFOSEL_WIN0			(1 << 5)
390*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FIFOSEL_ALL			(0x73 << 5)
391*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FIFOSEL_MASK			(0x73 << 5)
392*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FIFOLEVEL_25			(0 << 2)
393*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FIFOLEVEL_50			(1 << 2)
394*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FIFOLEVEL_75			(2 << 2)
395*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FIFOLEVEL_EMPTY		(3 << 2)
396*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FIFOLEVEL_FULL		(4 << 2)
397*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_FIFOLEVEL_MASK		(7 << 2)
398*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_INTFIFO_DISABLE		(0 << 1)
399*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_INTFIFO_ENABLE		(1 << 1)
400*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_INT_DISABLE			(0 << 0)
401*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_INT_ENABLE			(1 << 0)
402*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON0_INT_MASK			(1 << 0)
403*77b55e8cSThomas Abraham 
404*77b55e8cSThomas Abraham /* VIDINTCON1 */
405*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON1_INTVPPEND			(1 << 5)
406*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON1_INTI80PEND			(1 << 2)
407*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON1_INTFRMPEND			(1 << 1)
408*77b55e8cSThomas Abraham #define EXYNOS_VIDINTCON1_INTFIFOPEND			(1 << 0)
409*77b55e8cSThomas Abraham 
410*77b55e8cSThomas Abraham /* WINMAP */
411*77b55e8cSThomas Abraham #define EXYNOS_WINMAP_ENABLE				(1 << 24)
412*77b55e8cSThomas Abraham 
413*77b55e8cSThomas Abraham /* WxKEYCON0 (1~4) */
414*77b55e8cSThomas Abraham #define EXYNOS_KEYCON0_KEYBLEN_DISABLE			(0 << 26)
415*77b55e8cSThomas Abraham #define EXYNOS_KEYCON0_KEYBLEN_ENABLE			(1 << 26)
416*77b55e8cSThomas Abraham #define EXYNOS_KEYCON0_KEY_DISABLE			(0 << 25)
417*77b55e8cSThomas Abraham #define EXYNOS_KEYCON0_KEY_ENABLE			(1 << 25)
418*77b55e8cSThomas Abraham #define EXYNOS_KEYCON0_DIRCON_MATCH_FG			(0 << 24)
419*77b55e8cSThomas Abraham #define EXYNOS_KEYCON0_DIRCON_MATCH_BG			(1 << 24)
420*77b55e8cSThomas Abraham #define EXYNOS_KEYCON0_COMPKEY(x)			(((x) & 0xffffff) << 0)
421*77b55e8cSThomas Abraham 
422*77b55e8cSThomas Abraham /* WxKEYCON1 (1~4) */
423*77b55e8cSThomas Abraham #define EXYNOS_KEYCON1_COLVAL(x)			(((x) & 0xffffff) << 0)
424*77b55e8cSThomas Abraham 
425*77b55e8cSThomas Abraham /* DUALRGB */
426*77b55e8cSThomas Abraham #define EXYNOS_DUALRGB_BYPASS_SINGLE			(0x00 << 0)
427*77b55e8cSThomas Abraham #define EXYNOS_DUALRGB_BYPASS_DUAL			(0x01 << 0)
428*77b55e8cSThomas Abraham #define EXYNOS_DUALRGB_MIE_DUAL				(0x10 << 0)
429*77b55e8cSThomas Abraham #define EXYNOS_DUALRGB_MIE_SINGLE			(0x11 << 0)
430*77b55e8cSThomas Abraham #define EXYNOS_DUALRGB_LINESPLIT			(0x0 << 2)
431*77b55e8cSThomas Abraham #define EXYNOS_DUALRGB_FRAMESPLIT			(0x1 << 2)
432*77b55e8cSThomas Abraham #define EXYNOS_DUALRGB_SUB_CNT(x)			((x & 0xfff) << 4)
433*77b55e8cSThomas Abraham #define EXYNOS_DUALRGB_VDEN_EN_DISABLE			(0x0 << 16)
434*77b55e8cSThomas Abraham #define EXYNOS_DUALRGB_VDEN_EN_ENABLE			(0x1 << 16)
435*77b55e8cSThomas Abraham #define EXYNOS_DUALRGB_MAIN_CNT(x)			((x & 0xfff) << 18)
436*77b55e8cSThomas Abraham 
437*77b55e8cSThomas Abraham /* I80IFCONA0 and I80IFCONA1 */
438*77b55e8cSThomas Abraham #define EXYNOS_LCD_CS_SETUP(x)				(((x) & 0xf) << 16)
439*77b55e8cSThomas Abraham #define EXYNOS_LCD_WR_SETUP(x)				(((x) & 0xf) << 12)
440*77b55e8cSThomas Abraham #define EXYNOS_LCD_WR_ACT(x)				(((x) & 0xf) << 8)
441*77b55e8cSThomas Abraham #define EXYNOS_LCD_WR_HOLD(x)				(((x) & 0xf) << 4)
442*77b55e8cSThomas Abraham #define EXYNOS_RSPOL_LOW				(0 << 2)
443*77b55e8cSThomas Abraham #define EXYNOS_RSPOL_HIGH				(1 << 2)
444*77b55e8cSThomas Abraham #define EXYNOS_I80IFEN_DISABLE				(0 << 0)
445*77b55e8cSThomas Abraham #define EXYNOS_I80IFEN_ENABLE				(1 << 0)
446*77b55e8cSThomas Abraham 
447*77b55e8cSThomas Abraham /* TRIGCON */
448*77b55e8cSThomas Abraham #define EXYNOS_I80SOFT_TRIG_EN				(1 << 0)
449*77b55e8cSThomas Abraham #define EXYNOS_I80START_TRIG				(1 << 1)
450*77b55e8cSThomas Abraham #define EXYNOS_I80STATUS_TRIG_DONE			(1 << 2)
451*77b55e8cSThomas Abraham 
452*77b55e8cSThomas Abraham /* DP_MIE_CLKCON */
453*77b55e8cSThomas Abraham #define EXYNOS_DP_MIE_DISABLE				(0 << 0)
454*77b55e8cSThomas Abraham #define EXYNOS_DP_CLK_ENABLE				(1 << 1)
455*77b55e8cSThomas Abraham #define EXYNOS_MIE_CLK_ENABLE				(3 << 0)
456*77b55e8cSThomas Abraham 
457*77b55e8cSThomas Abraham #endif /* _REGS_FB_H */
458