xref: /rk3399_rockchip-uboot/drivers/video/videomodes.h (revision 352d259130b349fe9593b8dada641bd78a9659e5)
1*352d2591SJean-Christophe PLAGNIOL-VILLARD /*
2*352d2591SJean-Christophe PLAGNIOL-VILLARD  * (C) Copyright 2004
3*352d2591SJean-Christophe PLAGNIOL-VILLARD  * Pierre Aubert, Staubli Faverges , <p.aubert@staubli.com>
4*352d2591SJean-Christophe PLAGNIOL-VILLARD  *
5*352d2591SJean-Christophe PLAGNIOL-VILLARD  * See file CREDITS for list of people who contributed to this
6*352d2591SJean-Christophe PLAGNIOL-VILLARD  * project.
7*352d2591SJean-Christophe PLAGNIOL-VILLARD  *
8*352d2591SJean-Christophe PLAGNIOL-VILLARD  * This program is free software; you can redistribute it and/or
9*352d2591SJean-Christophe PLAGNIOL-VILLARD  * modify it under the terms of the GNU General Public License as
10*352d2591SJean-Christophe PLAGNIOL-VILLARD  * published by the Free Software Foundation; either version 2 of
11*352d2591SJean-Christophe PLAGNIOL-VILLARD  * the License, or (at your option) any later version.
12*352d2591SJean-Christophe PLAGNIOL-VILLARD  *
13*352d2591SJean-Christophe PLAGNIOL-VILLARD  * This program is distributed in the hope that it will be useful,
14*352d2591SJean-Christophe PLAGNIOL-VILLARD  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15*352d2591SJean-Christophe PLAGNIOL-VILLARD  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
16*352d2591SJean-Christophe PLAGNIOL-VILLARD  * GNU General Public License for more details.
17*352d2591SJean-Christophe PLAGNIOL-VILLARD  *
18*352d2591SJean-Christophe PLAGNIOL-VILLARD  * You should have received a copy of the GNU General Public License
19*352d2591SJean-Christophe PLAGNIOL-VILLARD  * along with this program; if not, write to the Free Software
20*352d2591SJean-Christophe PLAGNIOL-VILLARD  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21*352d2591SJean-Christophe PLAGNIOL-VILLARD  * MA 02111-1307 USA
22*352d2591SJean-Christophe PLAGNIOL-VILLARD  */
23*352d2591SJean-Christophe PLAGNIOL-VILLARD 
24*352d2591SJean-Christophe PLAGNIOL-VILLARD 
25*352d2591SJean-Christophe PLAGNIOL-VILLARD #ifndef CFG_DEFAULT_VIDEO_MODE
26*352d2591SJean-Christophe PLAGNIOL-VILLARD #define CFG_DEFAULT_VIDEO_MODE	0x301
27*352d2591SJean-Christophe PLAGNIOL-VILLARD #endif
28*352d2591SJean-Christophe PLAGNIOL-VILLARD 
29*352d2591SJean-Christophe PLAGNIOL-VILLARD /* Some mode definitions */
30*352d2591SJean-Christophe PLAGNIOL-VILLARD #define FB_SYNC_HOR_HIGH_ACT	1	/* horizontal sync high active	*/
31*352d2591SJean-Christophe PLAGNIOL-VILLARD #define FB_SYNC_VERT_HIGH_ACT	2	/* vertical sync high active	*/
32*352d2591SJean-Christophe PLAGNIOL-VILLARD #define FB_SYNC_EXT		4	/* external sync		*/
33*352d2591SJean-Christophe PLAGNIOL-VILLARD #define FB_SYNC_COMP_HIGH_ACT	8	/* composite sync high active	*/
34*352d2591SJean-Christophe PLAGNIOL-VILLARD #define FB_SYNC_BROADCAST	16	/* broadcast video timings	*/
35*352d2591SJean-Christophe PLAGNIOL-VILLARD 					/* vtotal = 144d/288n/576i => PAL  */
36*352d2591SJean-Christophe PLAGNIOL-VILLARD 					/* vtotal = 121d/242n/484i => NTSC */
37*352d2591SJean-Christophe PLAGNIOL-VILLARD #define FB_SYNC_ON_GREEN	32	/* sync on green */
38*352d2591SJean-Christophe PLAGNIOL-VILLARD #define FB_VMODE_NONINTERLACED	0	/* non interlaced */
39*352d2591SJean-Christophe PLAGNIOL-VILLARD #define FB_VMODE_INTERLACED	1	/* interlaced	*/
40*352d2591SJean-Christophe PLAGNIOL-VILLARD #define FB_VMODE_DOUBLE		2	/* double scan */
41*352d2591SJean-Christophe PLAGNIOL-VILLARD #define FB_VMODE_MASK		255
42*352d2591SJean-Christophe PLAGNIOL-VILLARD 
43*352d2591SJean-Christophe PLAGNIOL-VILLARD #define FB_VMODE_YWRAP		256	/* ywrap instead of panning	*/
44*352d2591SJean-Christophe PLAGNIOL-VILLARD #define FB_VMODE_SMOOTH_XPAN	512	/* smooth xpan possible (internally used) */
45*352d2591SJean-Christophe PLAGNIOL-VILLARD #define FB_VMODE_CONUPDATE	512	/* don't update x/yoffset	*/
46*352d2591SJean-Christophe PLAGNIOL-VILLARD 
47*352d2591SJean-Christophe PLAGNIOL-VILLARD 
48*352d2591SJean-Christophe PLAGNIOL-VILLARD /******************************************************************
49*352d2591SJean-Christophe PLAGNIOL-VILLARD  * Resolution Struct
50*352d2591SJean-Christophe PLAGNIOL-VILLARD  ******************************************************************/
51*352d2591SJean-Christophe PLAGNIOL-VILLARD struct ctfb_res_modes {
52*352d2591SJean-Christophe PLAGNIOL-VILLARD 	int xres;		/* visible resolution		*/
53*352d2591SJean-Christophe PLAGNIOL-VILLARD 	int yres;
54*352d2591SJean-Christophe PLAGNIOL-VILLARD 	/* Timing: All values in pixclocks, except pixclock (of course) */
55*352d2591SJean-Christophe PLAGNIOL-VILLARD 	int pixclock;		/* pixel clock in ps (pico seconds) */
56*352d2591SJean-Christophe PLAGNIOL-VILLARD 	int left_margin;	/* time from sync to picture	*/
57*352d2591SJean-Christophe PLAGNIOL-VILLARD 	int right_margin;	/* time from picture to sync	*/
58*352d2591SJean-Christophe PLAGNIOL-VILLARD 	int upper_margin;	/* time from sync to picture	*/
59*352d2591SJean-Christophe PLAGNIOL-VILLARD 	int lower_margin;
60*352d2591SJean-Christophe PLAGNIOL-VILLARD 	int hsync_len;		/* length of horizontal sync	*/
61*352d2591SJean-Christophe PLAGNIOL-VILLARD 	int vsync_len;		/* length of vertical sync	*/
62*352d2591SJean-Christophe PLAGNIOL-VILLARD 	int sync;		/* see FB_SYNC_*		*/
63*352d2591SJean-Christophe PLAGNIOL-VILLARD 	int vmode;		/* see FB_VMODE_*		*/
64*352d2591SJean-Christophe PLAGNIOL-VILLARD };
65*352d2591SJean-Christophe PLAGNIOL-VILLARD 
66*352d2591SJean-Christophe PLAGNIOL-VILLARD /******************************************************************
67*352d2591SJean-Christophe PLAGNIOL-VILLARD  * Vesa Mode Struct
68*352d2591SJean-Christophe PLAGNIOL-VILLARD  ******************************************************************/
69*352d2591SJean-Christophe PLAGNIOL-VILLARD struct ctfb_vesa_modes {
70*352d2591SJean-Christophe PLAGNIOL-VILLARD 	int vesanr;		/* Vesa number as in LILO (VESA Nr + 0x200} */
71*352d2591SJean-Christophe PLAGNIOL-VILLARD 	int resindex;		/* index to resolution struct */
72*352d2591SJean-Christophe PLAGNIOL-VILLARD 	int bits_per_pixel;	/* bpp */
73*352d2591SJean-Christophe PLAGNIOL-VILLARD };
74*352d2591SJean-Christophe PLAGNIOL-VILLARD 
75*352d2591SJean-Christophe PLAGNIOL-VILLARD #define RES_MODE_640x480	0
76*352d2591SJean-Christophe PLAGNIOL-VILLARD #define RES_MODE_800x600	1
77*352d2591SJean-Christophe PLAGNIOL-VILLARD #define RES_MODE_1024x768	2
78*352d2591SJean-Christophe PLAGNIOL-VILLARD #define RES_MODE_960_720	3
79*352d2591SJean-Christophe PLAGNIOL-VILLARD #define RES_MODE_1152x864	4
80*352d2591SJean-Christophe PLAGNIOL-VILLARD #define RES_MODE_1280x1024	5
81*352d2591SJean-Christophe PLAGNIOL-VILLARD #define RES_MODES_COUNT		6
82*352d2591SJean-Christophe PLAGNIOL-VILLARD 
83*352d2591SJean-Christophe PLAGNIOL-VILLARD #define VESA_MODES_COUNT 19
84*352d2591SJean-Christophe PLAGNIOL-VILLARD 
85*352d2591SJean-Christophe PLAGNIOL-VILLARD extern const struct ctfb_vesa_modes vesa_modes[];
86*352d2591SJean-Christophe PLAGNIOL-VILLARD extern const struct ctfb_res_modes res_mode_init[];
87*352d2591SJean-Christophe PLAGNIOL-VILLARD 
88*352d2591SJean-Christophe PLAGNIOL-VILLARD int video_get_params (struct ctfb_res_modes *pPar, char *penv);
89