1 /* linux/arch/arm/plat-s3c/include/plat/fb.h 2 * 3 * Copyright 2008 Openmoko, Inc. 4 * Copyright 2008 Simtec Electronics 5 * http://armlinux.simtec.co.uk/ 6 * Ben Dooks <ben@simtec.co.uk> 7 * 8 * S3C - FB platform data definitions 9 * 10 * This program is free software; you can redistribute it and/or modify 11 * it under the terms of the GNU General Public License version 2 as 12 * published by the Free Software Foundation. 13 */ 14 15 #ifndef __PLAT_S3C_FB_H 16 #define __PLAT_S3C_FB_H __FILE__ 17 18 /** 19 * struct s3c_fb_pd_win - per window setup data 20 * @win_mode: The display parameters to initialise (not for window 0) 21 * @virtual_x: The virtual X size. 22 * @virtual_y: The virtual Y size. 23 */ 24 struct s3c_fb_pd_win { 25 struct fb_videomode win_mode; 26 27 unsigned short default_bpp; 28 unsigned short max_bpp; 29 unsigned short virtual_x; 30 unsigned short virtual_y; 31 }; 32 33 /** 34 * struct s3c_fb_platdata - S3C driver platform specific information 35 * @setup_gpio: Setup the external GPIO pins to the right state to transfer 36 * the data from the display system to the connected display 37 * device. 38 * @vidcon0: The base vidcon0 values to control the panel data format. 39 * @vidcon1: The base vidcon1 values to control the panel data output. 40 * @win: The setup data for each hardware window, or NULL for unused. 41 * @display_mode: The LCD output display mode. 42 * 43 * The platform data supplies the video driver with all the information 44 * it requires to work with the display(s) attached to the machine. It 45 * controls the initial mode, the number of display windows (0 is always 46 * the base framebuffer) that are initialised etc. 47 * 48 */ 49 struct s3c_fb_platdata { 50 void (*setup_gpio)(void); 51 52 struct s3c_fb_pd_win *win[S3C_FB_MAX_WIN]; 53 54 u32 vidcon0; 55 u32 vidcon1; 56 }; 57 58 /** 59 * s3c_fb_set_platdata() - Setup the FB device with platform data. 60 * @pd: The platform data to set. The data is copied from the passed structure 61 * so the machine data can mark the data __initdata so that any unused 62 * machines will end up dumping their data at runtime. 63 */ 64 extern void s3c_fb_set_platdata(struct s3c_fb_platdata *pd); 65 66 /** 67 * s3c64xx_fb_gpio_setup_24bpp() - S3C64XX setup function for 24bpp LCD 68 * 69 * Initialise the GPIO for an 24bpp LCD display on the RGB interface. 70 */ 71 extern void s3c64xx_fb_gpio_setup_24bpp(void); 72 73 #endif /* __PLAT_S3C_FB_H */ 74