Blame view

bootloader/u-boot_2015_04/drivers/video/videomodes.h 3.25 KB
6b13f685e   김민수   BSP 최초 추가
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
  /*
   * (C) Copyright 2004
   * Pierre Aubert, Staubli Faverges , <p.aubert@staubli.com>
   *
   * SPDX-License-Identifier:	GPL-2.0+
   */
  
  #include <edid.h>
  
  #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;
  	int refresh;		/* vertical refresh rate in hz  */
  	/* Timing: All values in pixclocks, except pixclock (of course) */
  	int pixclock;		/* pixel clock in ps (pico seconds) */
  	int pixclock_khz;	/* pixel clock in kHz           */
  	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_MODE_1280x720	6
  #define RES_MODE_1360x768	7
  #define RES_MODE_1920x1080	8
  #define RES_MODE_1920x1200	9
  #define RES_MODES_COUNT		10
  
  #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);
  
  void video_get_ctfb_res_modes(int default_mode, unsigned int default_depth,
  			      const struct ctfb_res_modes **mode_ret,
  			      unsigned int *depth_ret,
  			      const char **options);
  
  void video_get_option_string(const char *options, const char *name,
  			     char *dest, int dest_len, const char *def);
  
  int video_get_option_int(const char *options, const char *name, int def);
  
  int video_edid_dtd_to_ctfb_res_modes(struct edid_detailed_timing *t,
  				     struct ctfb_res_modes *mode);