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