Commit | Line | Data |
---|---|---|
c116c1d7 | 1 | /* arch/arm/plat-samsung/include/plat/fb.h |
8f995cc3 BD |
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__ | |
f077f3fc BD |
17 | |
18 | /* S3C_FB_MAX_WIN | |
19 | * Set to the maximum number of windows that any of the supported hardware | |
20 | * can use. Since the platform data uses this for an array size, having it | |
21 | * set to the maximum of any version of the hardware can do is safe. | |
22 | */ | |
23 | #define S3C_FB_MAX_WIN (5) | |
8f995cc3 BD |
24 | |
25 | /** | |
26 | * struct s3c_fb_pd_win - per window setup data | |
a4196feb TA |
27 | * @xres : The window X size. |
28 | * @yres : The window Y size. | |
8f995cc3 BD |
29 | * @virtual_x: The virtual X size. |
30 | * @virtual_y: The virtual Y size. | |
31 | */ | |
32 | struct s3c_fb_pd_win { | |
8f995cc3 BD |
33 | unsigned short default_bpp; |
34 | unsigned short max_bpp; | |
a4196feb TA |
35 | unsigned short xres; |
36 | unsigned short yres; | |
8f995cc3 BD |
37 | unsigned short virtual_x; |
38 | unsigned short virtual_y; | |
39 | }; | |
40 | ||
41 | /** | |
42 | * struct s3c_fb_platdata - S3C driver platform specific information | |
43 | * @setup_gpio: Setup the external GPIO pins to the right state to transfer | |
44 | * the data from the display system to the connected display | |
45 | * device. | |
46 | * @vidcon0: The base vidcon0 values to control the panel data format. | |
47 | * @vidcon1: The base vidcon1 values to control the panel data output. | |
a4196feb | 48 | * @vtiming: Video timing when connected to a RGB type panel. |
8f995cc3 BD |
49 | * @win: The setup data for each hardware window, or NULL for unused. |
50 | * @display_mode: The LCD output display mode. | |
51 | * | |
52 | * The platform data supplies the video driver with all the information | |
53 | * it requires to work with the display(s) attached to the machine. It | |
54 | * controls the initial mode, the number of display windows (0 is always | |
55 | * the base framebuffer) that are initialised etc. | |
56 | * | |
57 | */ | |
58 | struct s3c_fb_platdata { | |
59 | void (*setup_gpio)(void); | |
60 | ||
61 | struct s3c_fb_pd_win *win[S3C_FB_MAX_WIN]; | |
a4196feb | 62 | struct fb_videomode *vtiming; |
8f995cc3 BD |
63 | |
64 | u32 vidcon0; | |
65 | u32 vidcon1; | |
66 | }; | |
67 | ||
68 | /** | |
69 | * s3c_fb_set_platdata() - Setup the FB device with platform data. | |
70 | * @pd: The platform data to set. The data is copied from the passed structure | |
71 | * so the machine data can mark the data __initdata so that any unused | |
72 | * machines will end up dumping their data at runtime. | |
73 | */ | |
74 | extern void s3c_fb_set_platdata(struct s3c_fb_platdata *pd); | |
75 | ||
e61b1701 JH |
76 | /** |
77 | * s5p_fimd0_set_platdata() - Setup the FB device with platform data. | |
78 | * @pd: The platform data to set. The data is copied from the passed structure | |
79 | * so the machine data can mark the data __initdata so that any unused | |
80 | * machines will end up dumping their data at runtime. | |
81 | */ | |
82 | extern void s5p_fimd0_set_platdata(struct s3c_fb_platdata *pd); | |
83 | ||
8f995cc3 BD |
84 | /** |
85 | * s3c64xx_fb_gpio_setup_24bpp() - S3C64XX setup function for 24bpp LCD | |
86 | * | |
87 | * Initialise the GPIO for an 24bpp LCD display on the RGB interface. | |
88 | */ | |
89 | extern void s3c64xx_fb_gpio_setup_24bpp(void); | |
90 | ||
edd6e3f8 PO |
91 | /** |
92 | * s5pc100_fb_gpio_setup_24bpp() - S5PC100 setup function for 24bpp LCD | |
93 | * | |
94 | * Initialise the GPIO for an 24bpp LCD display on the RGB interface. | |
95 | */ | |
96 | extern void s5pc100_fb_gpio_setup_24bpp(void); | |
97 | ||
5b696a67 MS |
98 | /** |
99 | * s5pv210_fb_gpio_setup_24bpp() - S5PV210/S5PC110 setup function for 24bpp LCD | |
100 | * | |
101 | * Initialise the GPIO for an 24bpp LCD display on the RGB interface. | |
102 | */ | |
103 | extern void s5pv210_fb_gpio_setup_24bpp(void); | |
104 | ||
e61b1701 JH |
105 | /** |
106 | * exynos4_fimd0_gpio_setup_24bpp() - Exynos4 setup function for 24bpp LCD0 | |
107 | * | |
108 | * Initialise the GPIO for an 24bpp LCD display on the RGB interface 0. | |
109 | */ | |
110 | extern void exynos4_fimd0_gpio_setup_24bpp(void); | |
111 | ||
c9f357ef AK |
112 | /** |
113 | * s5p64x0_fb_gpio_setup_24bpp() - S5P6440/S5P6450 setup function for 24bpp LCD | |
114 | * | |
115 | * Initialise the GPIO for an 24bpp LCD display on the RGB interface. | |
116 | */ | |
117 | extern void s5p64x0_fb_gpio_setup_24bpp(void); | |
118 | ||
8f995cc3 | 119 | #endif /* __PLAT_S3C_FB_H */ |