mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 03:58:17 +00:00 
			
		
		
		
	Add function video_get_video_mode(), which parses the "video-mode" environment variable and returns each of its components. The format matches the video= command-line option used for Linux: video-mode=<driver>:<xres>x<yres>-<depth>@<freq><,option=string> <driver> The video driver, ignored by U-Boot <xres> The X resolution (in pixels) to use. <yres> The Y resolution (in pixels) to use. <depth> The color depth (in bits) to use. <freq> The frequency (in Hz) to use. <options> A comma-separated list of device-specific options Signed-off-by: Timur Tabi <timur@freescale.com>
		
			
				
	
	
		
			92 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * (C) Copyright 2004
 | |
|  * Pierre Aubert, Staubli Faverges , <p.aubert@staubli.com>
 | |
|  *
 | |
|  * See file CREDITS for list of people who contributed to this
 | |
|  * project.
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or
 | |
|  * modify it under the terms of the GNU General Public License as
 | |
|  * published by the Free Software Foundation; either version 2 of
 | |
|  * the License, or (at your option) any later version.
 | |
|  *
 | |
|  * This program is distributed in the hope that it will be useful,
 | |
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
 | |
|  * GNU General Public License for more details.
 | |
|  *
 | |
|  * You should have received a copy of the GNU General Public License
 | |
|  * along with this program; if not, write to the Free Software
 | |
|  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 | |
|  * MA 02111-1307 USA
 | |
|  */
 | |
| 
 | |
| 
 | |
| #ifndef CONFIG_SYS_DEFAULT_VIDEO_MODE
 | |
| #define CONFIG_SYS_DEFAULT_VIDEO_MODE	0x301
 | |
| #endif
 | |
| 
 | |
| /* Some mode definitions */
 | |
| #define FB_SYNC_HOR_HIGH_ACT	1	/* horizontal sync high active	*/
 | |
| #define FB_SYNC_VERT_HIGH_ACT	2	/* vertical sync high active	*/
 | |
| #define FB_SYNC_EXT		4	/* external sync		*/
 | |
| #define FB_SYNC_COMP_HIGH_ACT	8	/* composite sync high active	*/
 | |
| #define FB_SYNC_BROADCAST	16	/* broadcast video timings	*/
 | |
| 					/* vtotal = 144d/288n/576i => PAL  */
 | |
| 					/* vtotal = 121d/242n/484i => NTSC */
 | |
| #define FB_SYNC_ON_GREEN	32	/* sync on green */
 | |
| #define FB_VMODE_NONINTERLACED	0	/* non interlaced */
 | |
| #define FB_VMODE_INTERLACED	1	/* interlaced	*/
 | |
| #define FB_VMODE_DOUBLE		2	/* double scan */
 | |
| #define FB_VMODE_MASK		255
 | |
| 
 | |
| #define FB_VMODE_YWRAP		256	/* ywrap instead of panning	*/
 | |
| #define FB_VMODE_SMOOTH_XPAN	512	/* smooth xpan possible (internally used) */
 | |
| #define FB_VMODE_CONUPDATE	512	/* don't update x/yoffset	*/
 | |
| 
 | |
| 
 | |
| /******************************************************************
 | |
|  * Resolution Struct
 | |
|  ******************************************************************/
 | |
| struct ctfb_res_modes {
 | |
| 	int xres;		/* visible resolution		*/
 | |
| 	int yres;
 | |
| 	/* Timing: All values in pixclocks, except pixclock (of course) */
 | |
| 	int pixclock;		/* pixel clock in ps (pico seconds) */
 | |
| 	int left_margin;	/* time from sync to picture	*/
 | |
| 	int right_margin;	/* time from picture to sync	*/
 | |
| 	int upper_margin;	/* time from sync to picture	*/
 | |
| 	int lower_margin;
 | |
| 	int hsync_len;		/* length of horizontal sync	*/
 | |
| 	int vsync_len;		/* length of vertical sync	*/
 | |
| 	int sync;		/* see FB_SYNC_*		*/
 | |
| 	int vmode;		/* see FB_VMODE_*		*/
 | |
| };
 | |
| 
 | |
| /******************************************************************
 | |
|  * Vesa Mode Struct
 | |
|  ******************************************************************/
 | |
| struct ctfb_vesa_modes {
 | |
| 	int vesanr;		/* Vesa number as in LILO (VESA Nr + 0x200} */
 | |
| 	int resindex;		/* index to resolution struct */
 | |
| 	int bits_per_pixel;	/* bpp */
 | |
| };
 | |
| 
 | |
| #define RES_MODE_640x480	0
 | |
| #define RES_MODE_800x600	1
 | |
| #define RES_MODE_1024x768	2
 | |
| #define RES_MODE_960_720	3
 | |
| #define RES_MODE_1152x864	4
 | |
| #define RES_MODE_1280x1024	5
 | |
| #define RES_MODES_COUNT		6
 | |
| 
 | |
| #define VESA_MODES_COUNT 19
 | |
| 
 | |
| extern const struct ctfb_vesa_modes vesa_modes[];
 | |
| extern const struct ctfb_res_modes res_mode_init[];
 | |
| 
 | |
| int video_get_params (struct ctfb_res_modes *pPar, char *penv);
 | |
| 
 | |
| int video_get_video_mode(unsigned int *xres, unsigned int *yres,
 | |
| 	unsigned int *depth, unsigned int *freq, const char **options);
 |