xref: /openbmc/u-boot/include/fsl_diu_fb.h (revision 9e70d137)
1*9e70d137SAnatolij Gustschin /*
2*9e70d137SAnatolij Gustschin  * Copyright 2007 Freescale Semiconductor, Inc.
3*9e70d137SAnatolij Gustschin  * York Sun <yorksun@freescale.com>
4*9e70d137SAnatolij Gustschin  *
5*9e70d137SAnatolij Gustschin  * FSL DIU Framebuffer driver
6*9e70d137SAnatolij Gustschin  *
7*9e70d137SAnatolij Gustschin  * See file CREDITS for list of people who contributed to this
8*9e70d137SAnatolij Gustschin  * project.
9*9e70d137SAnatolij Gustschin  *
10*9e70d137SAnatolij Gustschin  * This program is free software; you can redistribute it and/or
11*9e70d137SAnatolij Gustschin  * modify it under the terms of the GNU General Public License as
12*9e70d137SAnatolij Gustschin  * published by the Free Software Foundation; either version 2 of
13*9e70d137SAnatolij Gustschin  * the License, or (at your option) any later version.
14*9e70d137SAnatolij Gustschin  *
15*9e70d137SAnatolij Gustschin  * This program is distributed in the hope that it will be useful,
16*9e70d137SAnatolij Gustschin  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*9e70d137SAnatolij Gustschin  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*9e70d137SAnatolij Gustschin  * GNU General Public License for more details.
19*9e70d137SAnatolij Gustschin  *
20*9e70d137SAnatolij Gustschin  * You should have received a copy of the GNU General Public License
21*9e70d137SAnatolij Gustschin  * along with this program; if not, write to the Free Software
22*9e70d137SAnatolij Gustschin  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
23*9e70d137SAnatolij Gustschin  * MA 02111-1307 USA
24*9e70d137SAnatolij Gustschin  */
25*9e70d137SAnatolij Gustschin 
26*9e70d137SAnatolij Gustschin struct fb_var_screeninfo {
27*9e70d137SAnatolij Gustschin 	unsigned int xres;		/* visible resolution		*/
28*9e70d137SAnatolij Gustschin 	unsigned int yres;
29*9e70d137SAnatolij Gustschin 
30*9e70d137SAnatolij Gustschin 	unsigned int bits_per_pixel;	/* guess what			*/
31*9e70d137SAnatolij Gustschin 
32*9e70d137SAnatolij Gustschin 	/* Timing: All values in pixclocks, except pixclock (of course) */
33*9e70d137SAnatolij Gustschin 	unsigned int pixclock;		/* pixel clock in ps (pico seconds) */
34*9e70d137SAnatolij Gustschin 	unsigned int left_margin;	/* time from sync to picture	*/
35*9e70d137SAnatolij Gustschin 	unsigned int right_margin;	/* time from picture to sync	*/
36*9e70d137SAnatolij Gustschin 	unsigned int upper_margin;	/* time from sync to picture	*/
37*9e70d137SAnatolij Gustschin 	unsigned int lower_margin;
38*9e70d137SAnatolij Gustschin 	unsigned int hsync_len;		/* length of horizontal sync	*/
39*9e70d137SAnatolij Gustschin 	unsigned int vsync_len;		/* length of vertical sync	*/
40*9e70d137SAnatolij Gustschin 	unsigned int sync;		/* see FB_SYNC_*		*/
41*9e70d137SAnatolij Gustschin 	unsigned int vmode;		/* see FB_VMODE_*		*/
42*9e70d137SAnatolij Gustschin 	unsigned int rotate;		/* angle we rotate counter clockwise */
43*9e70d137SAnatolij Gustschin };
44*9e70d137SAnatolij Gustschin 
45*9e70d137SAnatolij Gustschin struct fb_info {
46*9e70d137SAnatolij Gustschin 	struct fb_var_screeninfo var;	/* Current var */
47*9e70d137SAnatolij Gustschin 	unsigned long smem_start;	/* Start of frame buffer mem */
48*9e70d137SAnatolij Gustschin 					/* (physical address) */
49*9e70d137SAnatolij Gustschin 	unsigned int smem_len;		/* Length of frame buffer mem */
50*9e70d137SAnatolij Gustschin 	unsigned int type;		/* see FB_TYPE_*		*/
51*9e70d137SAnatolij Gustschin 	unsigned int line_length;	/* length of a line in bytes    */
52*9e70d137SAnatolij Gustschin 
53*9e70d137SAnatolij Gustschin 	char *screen_base;
54*9e70d137SAnatolij Gustschin 	unsigned long screen_size;
55*9e70d137SAnatolij Gustschin };
56*9e70d137SAnatolij Gustschin 
57*9e70d137SAnatolij Gustschin 
58*9e70d137SAnatolij Gustschin extern char *fsl_fb_open(struct fb_info **info);
59*9e70d137SAnatolij Gustschin int fsl_diu_init(int xres, unsigned int pixel_format, int gamma_fix);
60*9e70d137SAnatolij Gustschin int platform_diu_init(unsigned int *xres, unsigned int *yres);
61