aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Abraham <thomas.abraham@linaro.org>2012-03-24 12:28:48 -0400
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>2012-04-09 12:11:24 -0400
commit79d3c41ae444fb064cc8aab7cb249f577d6e0aae (patch)
tree3bb1e422478e9d0eb6065e56f7f9cafdb0a6d7e0
parent884924be2a3368a3ac96587f347f9973c80140f6 (diff)
ARM: Samsung: Rework platform data of s3c-fb driver
For all the Samsung SoC based boards which have the platform data for s3c-fb driver, the 'default_win' element in the platform data is removed and the lcd panel video timing values are moved out of individual window configuration data. Acked-by: Jingoo Han <jg1.han@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Cc: JeongHyeon Kim <jhkim@insignal.co.kr> Cc: Kukjin Kim <kgene.kim@samsung.com> Cc: Heiko Stuebner <heiko@sntech.de> Cc: Ben Dooks <ben-linux@fluff.org> Cc: Kwangwoo Lee <kwangwoo.lee@gmail.com> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: Peter Korsgaard <jacmet@sunsite.dk> Cc: Darius Augulis <augulis.darius@gmail.com> Cc: Maurus Cuelenaere <mcuelenaere@gmail.com> Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
-rw-r--r--arch/arm/mach-exynos/mach-nuri.c26
-rw-r--r--arch/arm/mach-exynos/mach-origen.c24
-rw-r--r--arch/arm/mach-exynos/mach-smdkv310.c28
-rw-r--r--arch/arm/mach-exynos/mach-universal_c210.c26
-rw-r--r--arch/arm/mach-s3c24xx/mach-smdk2416.c27
-rw-r--r--arch/arm/mach-s3c64xx/mach-anw6410.c25
-rw-r--r--arch/arm/mach-s3c64xx/mach-crag6410.c25
-rw-r--r--arch/arm/mach-s3c64xx/mach-hmt.c24
-rw-r--r--arch/arm/mach-s3c64xx/mach-mini6410.c54
-rw-r--r--arch/arm/mach-s3c64xx/mach-real6410.c52
-rw-r--r--arch/arm/mach-s3c64xx/mach-smartq5.c26
-rw-r--r--arch/arm/mach-s3c64xx/mach-smartq7.c26
-rw-r--r--arch/arm/mach-s3c64xx/mach-smdk6410.c25
-rw-r--r--arch/arm/mach-s5p64x0/mach-smdk6440.c24
-rw-r--r--arch/arm/mach-s5p64x0/mach-smdk6450.c24
-rw-r--r--arch/arm/mach-s5pc100/mach-smdkc100.c27
-rw-r--r--arch/arm/mach-s5pv210/mach-aquila.c36
-rw-r--r--arch/arm/mach-s5pv210/mach-goni.c26
-rw-r--r--arch/arm/mach-s5pv210/mach-smdkv210.c24
19 files changed, 311 insertions, 238 deletions
diff --git a/arch/arm/mach-exynos/mach-nuri.c b/arch/arm/mach-exynos/mach-nuri.c
index b3982c867c9c..e1e640e5b52a 100644
--- a/arch/arm/mach-exynos/mach-nuri.c
+++ b/arch/arm/mach-exynos/mach-nuri.c
@@ -214,25 +214,29 @@ static struct platform_device nuri_gpio_keys = {
214 214
215/* Frame Buffer */ 215/* Frame Buffer */
216static struct s3c_fb_pd_win nuri_fb_win0 = { 216static struct s3c_fb_pd_win nuri_fb_win0 = {
217 .win_mode = {
218 .left_margin = 64,
219 .right_margin = 16,
220 .upper_margin = 64,
221 .lower_margin = 1,
222 .hsync_len = 48,
223 .vsync_len = 3,
224 .xres = 1024,
225 .yres = 600,
226 .refresh = 60,
227 },
228 .max_bpp = 24, 217 .max_bpp = 24,
229 .default_bpp = 16, 218 .default_bpp = 16,
219 .xres = 1024,
220 .yres = 600,
230 .virtual_x = 1024, 221 .virtual_x = 1024,
231 .virtual_y = 2 * 600, 222 .virtual_y = 2 * 600,
232}; 223};
233 224
225static struct fb_videomode nuri_lcd_timing = {
226 .left_margin = 64,
227 .right_margin = 16,
228 .upper_margin = 64,
229 .lower_margin = 1,
230 .hsync_len = 48,
231 .vsync_len = 3,
232 .xres = 1024,
233 .yres = 600,
234 .refresh = 60,
235};
236
234static struct s3c_fb_platdata nuri_fb_pdata __initdata = { 237static struct s3c_fb_platdata nuri_fb_pdata __initdata = {
235 .win[0] = &nuri_fb_win0, 238 .win[0] = &nuri_fb_win0,
239 .vtiming = &nuri_lcd_timing,
236 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB | 240 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB |
237 VIDCON0_CLKSEL_LCD, 241 VIDCON0_CLKSEL_LCD,
238 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 242 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c
index 878d4c99142d..0968ebaa01f5 100644
--- a/arch/arm/mach-exynos/mach-origen.c
+++ b/arch/arm/mach-exynos/mach-origen.c
@@ -584,22 +584,26 @@ static struct platform_device origen_lcd_hv070wsa = {
584}; 584};
585 585
586static struct s3c_fb_pd_win origen_fb_win0 = { 586static struct s3c_fb_pd_win origen_fb_win0 = {
587 .win_mode = { 587 .xres = 1024,
588 .left_margin = 64, 588 .yres = 600,
589 .right_margin = 16,
590 .upper_margin = 64,
591 .lower_margin = 16,
592 .hsync_len = 48,
593 .vsync_len = 3,
594 .xres = 1024,
595 .yres = 600,
596 },
597 .max_bpp = 32, 589 .max_bpp = 32,
598 .default_bpp = 24, 590 .default_bpp = 24,
599}; 591};
600 592
593static struct fb_videomode origen_lcd_timing = {
594 .left_margin = 64,
595 .right_margin = 16,
596 .upper_margin = 64,
597 .lower_margin = 16,
598 .hsync_len = 48,
599 .vsync_len = 3,
600 .xres = 1024,
601 .yres = 600,
602};
603
601static struct s3c_fb_platdata origen_lcd_pdata __initdata = { 604static struct s3c_fb_platdata origen_lcd_pdata __initdata = {
602 .win[0] = &origen_fb_win0, 605 .win[0] = &origen_fb_win0,
606 .vtiming = &origen_lcd_timing,
603 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 607 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
604 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC | 608 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC |
605 VIDCON1_INV_VCLK, 609 VIDCON1_INV_VCLK,
diff --git a/arch/arm/mach-exynos/mach-smdkv310.c b/arch/arm/mach-exynos/mach-smdkv310.c
index 83b91fa777c1..3e482b8c3af8 100644
--- a/arch/arm/mach-exynos/mach-smdkv310.c
+++ b/arch/arm/mach-exynos/mach-smdkv310.c
@@ -161,22 +161,26 @@ static struct platform_device smdkv310_lcd_lte480wv = {
161}; 161};
162 162
163static struct s3c_fb_pd_win smdkv310_fb_win0 = { 163static struct s3c_fb_pd_win smdkv310_fb_win0 = {
164 .win_mode = { 164 .max_bpp = 32,
165 .left_margin = 13, 165 .default_bpp = 24,
166 .right_margin = 8, 166 .xres = 800,
167 .upper_margin = 7, 167 .yres = 480,
168 .lower_margin = 5, 168};
169 .hsync_len = 3, 169
170 .vsync_len = 1, 170static struct fb_videomode smdkv310_lcd_timing = {
171 .xres = 800, 171 .left_margin = 13,
172 .yres = 480, 172 .right_margin = 8,
173 }, 173 .upper_margin = 7,
174 .max_bpp = 32, 174 .lower_margin = 5,
175 .default_bpp = 24, 175 .hsync_len = 3,
176 .vsync_len = 1,
177 .xres = 800,
178 .yres = 480,
176}; 179};
177 180
178static struct s3c_fb_platdata smdkv310_lcd0_pdata __initdata = { 181static struct s3c_fb_platdata smdkv310_lcd0_pdata __initdata = {
179 .win[0] = &smdkv310_fb_win0, 182 .win[0] = &smdkv310_fb_win0,
183 .vtiming = &smdkv310_lcd_timing,
180 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 184 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
181 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 185 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
182 .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, 186 .setup_gpio = exynos4_fimd0_gpio_setup_24bpp,
diff --git a/arch/arm/mach-exynos/mach-universal_c210.c b/arch/arm/mach-exynos/mach-universal_c210.c
index 6bb9dbdd73fd..879c539923cf 100644
--- a/arch/arm/mach-exynos/mach-universal_c210.c
+++ b/arch/arm/mach-exynos/mach-universal_c210.c
@@ -812,25 +812,29 @@ static struct i2c_board_info i2c1_devs[] __initdata = {
812 812
813/* Frame Buffer */ 813/* Frame Buffer */
814static struct s3c_fb_pd_win universal_fb_win0 = { 814static struct s3c_fb_pd_win universal_fb_win0 = {
815 .win_mode = {
816 .left_margin = 16,
817 .right_margin = 16,
818 .upper_margin = 2,
819 .lower_margin = 28,
820 .hsync_len = 2,
821 .vsync_len = 1,
822 .xres = 480,
823 .yres = 800,
824 .refresh = 55,
825 },
826 .max_bpp = 32, 815 .max_bpp = 32,
827 .default_bpp = 16, 816 .default_bpp = 16,
817 .xres = 480,
818 .yres = 800,
828 .virtual_x = 480, 819 .virtual_x = 480,
829 .virtual_y = 2 * 800, 820 .virtual_y = 2 * 800,
830}; 821};
831 822
823static struct fb_videomode universal_lcd_timing = {
824 .left_margin = 16,
825 .right_margin = 16,
826 .upper_margin = 2,
827 .lower_margin = 28,
828 .hsync_len = 2,
829 .vsync_len = 1,
830 .xres = 480,
831 .yres = 800,
832 .refresh = 55,
833};
834
832static struct s3c_fb_platdata universal_lcd_pdata __initdata = { 835static struct s3c_fb_platdata universal_lcd_pdata __initdata = {
833 .win[0] = &universal_fb_win0, 836 .win[0] = &universal_fb_win0,
837 .vtiming = &universal_lcd_timing,
834 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB | 838 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB |
835 VIDCON0_CLKSEL_LCD, 839 VIDCON0_CLKSEL_LCD,
836 .vidcon1 = VIDCON1_INV_VCLK | VIDCON1_INV_VDEN 840 .vidcon1 = VIDCON1_INV_VCLK | VIDCON1_INV_VDEN
diff --git a/arch/arm/mach-s3c24xx/mach-smdk2416.c b/arch/arm/mach-s3c24xx/mach-smdk2416.c
index 30a44f806e01..c3100a044fbe 100644
--- a/arch/arm/mach-s3c24xx/mach-smdk2416.c
+++ b/arch/arm/mach-s3c24xx/mach-smdk2416.c
@@ -148,23 +148,25 @@ static struct s3c24xx_hsudc_platdata smdk2416_hsudc_platdata = {
148 148
149static struct s3c_fb_pd_win smdk2416_fb_win[] = { 149static struct s3c_fb_pd_win smdk2416_fb_win[] = {
150 [0] = { 150 [0] = {
151 /* think this is the same as the smdk6410 */
152 .win_mode = {
153 .pixclock = 41094,
154 .left_margin = 8,
155 .right_margin = 13,
156 .upper_margin = 7,
157 .lower_margin = 5,
158 .hsync_len = 3,
159 .vsync_len = 1,
160 .xres = 800,
161 .yres = 480,
162 },
163 .default_bpp = 16, 151 .default_bpp = 16,
164 .max_bpp = 32, 152 .max_bpp = 32,
153 .xres = 800,
154 .yres = 480,
165 }, 155 },
166}; 156};
167 157
158static struct fb_videomode smdk2416_lcd_timing = {
159 .pixclock = 41094,
160 .left_margin = 8,
161 .right_margin = 13,
162 .upper_margin = 7,
163 .lower_margin = 5,
164 .hsync_len = 3,
165 .vsync_len = 1,
166 .xres = 800,
167 .yres = 480,
168};
169
168static void s3c2416_fb_gpio_setup_24bpp(void) 170static void s3c2416_fb_gpio_setup_24bpp(void)
169{ 171{
170 unsigned int gpio; 172 unsigned int gpio;
@@ -187,6 +189,7 @@ static void s3c2416_fb_gpio_setup_24bpp(void)
187 189
188static struct s3c_fb_platdata smdk2416_fb_platdata = { 190static struct s3c_fb_platdata smdk2416_fb_platdata = {
189 .win[0] = &smdk2416_fb_win[0], 191 .win[0] = &smdk2416_fb_win[0],
192 .vtiming = &smdk2416_lcd_timing,
190 .setup_gpio = s3c2416_fb_gpio_setup_24bpp, 193 .setup_gpio = s3c2416_fb_gpio_setup_24bpp,
191 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 194 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
192 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 195 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
diff --git a/arch/arm/mach-s3c64xx/mach-anw6410.c b/arch/arm/mach-s3c64xx/mach-anw6410.c
index b86f2779e4e6..58fd0e3ad2b4 100644
--- a/arch/arm/mach-s3c64xx/mach-anw6410.c
+++ b/arch/arm/mach-s3c64xx/mach-anw6410.c
@@ -134,24 +134,27 @@ static struct platform_device anw6410_lcd_powerdev = {
134}; 134};
135 135
136static struct s3c_fb_pd_win anw6410_fb_win0 = { 136static struct s3c_fb_pd_win anw6410_fb_win0 = {
137 /* this is to ensure we use win0 */
138 .win_mode = {
139 .left_margin = 8,
140 .right_margin = 13,
141 .upper_margin = 7,
142 .lower_margin = 5,
143 .hsync_len = 3,
144 .vsync_len = 1,
145 .xres = 800,
146 .yres = 480,
147 },
148 .max_bpp = 32, 137 .max_bpp = 32,
149 .default_bpp = 16, 138 .default_bpp = 16,
139 .xres = 800,
140 .yres = 480,
141};
142
143static struct fb_videomode anw6410_lcd_timing = {
144 .left_margin = 8,
145 .right_margin = 13,
146 .upper_margin = 7,
147 .lower_margin = 5,
148 .hsync_len = 3,
149 .vsync_len = 1,
150 .xres = 800,
151 .yres = 480,
150}; 152};
151 153
152/* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */ 154/* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */
153static struct s3c_fb_platdata anw6410_lcd_pdata __initdata = { 155static struct s3c_fb_platdata anw6410_lcd_pdata __initdata = {
154 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp, 156 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp,
157 .vtiming = &anw6410_lcd_timing,
155 .win[0] = &anw6410_fb_win0, 158 .win[0] = &anw6410_fb_win0,
156 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 159 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
157 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 160 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c
index e20bf5835365..c1ef57edd42d 100644
--- a/arch/arm/mach-s3c64xx/mach-crag6410.c
+++ b/arch/arm/mach-s3c64xx/mach-crag6410.c
@@ -151,26 +151,29 @@ static struct platform_device crag6410_lcd_powerdev = {
151 151
152/* 640x480 URT */ 152/* 640x480 URT */
153static struct s3c_fb_pd_win crag6410_fb_win0 = { 153static struct s3c_fb_pd_win crag6410_fb_win0 = {
154 /* this is to ensure we use win0 */
155 .win_mode = {
156 .left_margin = 150,
157 .right_margin = 80,
158 .upper_margin = 40,
159 .lower_margin = 5,
160 .hsync_len = 40,
161 .vsync_len = 5,
162 .xres = 640,
163 .yres = 480,
164 },
165 .max_bpp = 32, 154 .max_bpp = 32,
166 .default_bpp = 16, 155 .default_bpp = 16,
156 .xres = 640,
157 .yres = 480,
167 .virtual_y = 480 * 2, 158 .virtual_y = 480 * 2,
168 .virtual_x = 640, 159 .virtual_x = 640,
169}; 160};
170 161
162static struct fb_videomode crag6410_lcd_timing = {
163 .left_margin = 150,
164 .right_margin = 80,
165 .upper_margin = 40,
166 .lower_margin = 5,
167 .hsync_len = 40,
168 .vsync_len = 5,
169 .xres = 640,
170 .yres = 480,
171};
172
171/* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */ 173/* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */
172static struct s3c_fb_platdata crag6410_lcd_pdata __initdata = { 174static struct s3c_fb_platdata crag6410_lcd_pdata __initdata = {
173 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp, 175 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp,
176 .vtiming = &crag6410_lcd_timing,
174 .win[0] = &crag6410_fb_win0, 177 .win[0] = &crag6410_fb_win0,
175 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 178 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
176 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 179 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
diff --git a/arch/arm/mach-s3c64xx/mach-hmt.c b/arch/arm/mach-s3c64xx/mach-hmt.c
index 521e07b8501b..4e9b1acefb07 100644
--- a/arch/arm/mach-s3c64xx/mach-hmt.c
+++ b/arch/arm/mach-s3c64xx/mach-hmt.c
@@ -129,23 +129,27 @@ static struct platform_device hmt_backlight_device = {
129}; 129};
130 130
131static struct s3c_fb_pd_win hmt_fb_win0 = { 131static struct s3c_fb_pd_win hmt_fb_win0 = {
132 .win_mode = {
133 .left_margin = 8,
134 .right_margin = 13,
135 .upper_margin = 7,
136 .lower_margin = 5,
137 .hsync_len = 3,
138 .vsync_len = 1,
139 .xres = 800,
140 .yres = 480,
141 },
142 .max_bpp = 32, 132 .max_bpp = 32,
143 .default_bpp = 16, 133 .default_bpp = 16,
134 .xres = 800,
135 .yres = 480,
136};
137
138static struct fb_videomode hmt_lcd_timing = {
139 .left_margin = 8,
140 .right_margin = 13,
141 .upper_margin = 7,
142 .lower_margin = 5,
143 .hsync_len = 3,
144 .vsync_len = 1,
145 .xres = 800,
146 .yres = 480,
144}; 147};
145 148
146/* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */ 149/* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */
147static struct s3c_fb_platdata hmt_lcd_pdata __initdata = { 150static struct s3c_fb_platdata hmt_lcd_pdata __initdata = {
148 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp, 151 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp,
152 .vtiming = &hmt_lcd_timing,
149 .win[0] = &hmt_fb_win0, 153 .win[0] = &hmt_fb_win0,
150 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 154 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
151 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 155 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
diff --git a/arch/arm/mach-s3c64xx/mach-mini6410.c b/arch/arm/mach-s3c64xx/mach-mini6410.c
index 34f51950b46e..2f425d5d8af5 100644
--- a/arch/arm/mach-s3c64xx/mach-mini6410.c
+++ b/arch/arm/mach-s3c64xx/mach-mini6410.c
@@ -152,43 +152,53 @@ static struct s3c2410_platform_nand mini6410_nand_info = {
152}; 152};
153 153
154static struct s3c_fb_pd_win mini6410_lcd_type0_fb_win = { 154static struct s3c_fb_pd_win mini6410_lcd_type0_fb_win = {
155 .win_mode = { /* 4.3" 480x272 */
156 .left_margin = 3,
157 .right_margin = 2,
158 .upper_margin = 1,
159 .lower_margin = 1,
160 .hsync_len = 40,
161 .vsync_len = 1,
162 .xres = 480,
163 .yres = 272,
164 },
165 .max_bpp = 32, 155 .max_bpp = 32,
166 .default_bpp = 16, 156 .default_bpp = 16,
157 .xres = 480,
158 .yres = 272,
159};
160
161static struct fb_videomode mini6410_lcd_type0_timing = {
162 /* 4.3" 480x272 */
163 .left_margin = 3,
164 .right_margin = 2,
165 .upper_margin = 1,
166 .lower_margin = 1,
167 .hsync_len = 40,
168 .vsync_len = 1,
169 .xres = 480,
170 .yres = 272,
167}; 171};
168 172
169static struct s3c_fb_pd_win mini6410_lcd_type1_fb_win = { 173static struct s3c_fb_pd_win mini6410_lcd_type1_fb_win = {
170 .win_mode = { /* 7.0" 800x480 */
171 .left_margin = 8,
172 .right_margin = 13,
173 .upper_margin = 7,
174 .lower_margin = 5,
175 .hsync_len = 3,
176 .vsync_len = 1,
177 .xres = 800,
178 .yres = 480,
179 },
180 .max_bpp = 32, 174 .max_bpp = 32,
181 .default_bpp = 16, 175 .default_bpp = 16,
176 .xres = 800,
177 .yres = 480,
178};
179
180static struct fb_videomode mini6410_lcd_type1_timing = {
181 /* 7.0" 800x480 */
182 .left_margin = 8,
183 .right_margin = 13,
184 .upper_margin = 7,
185 .lower_margin = 5,
186 .hsync_len = 3,
187 .vsync_len = 1,
188 .xres = 800,
189 .yres = 480,
182}; 190};
183 191
184static struct s3c_fb_platdata mini6410_lcd_pdata[] __initdata = { 192static struct s3c_fb_platdata mini6410_lcd_pdata[] __initdata = {
185 { 193 {
186 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp, 194 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp,
195 .vtiming = &mini6410_lcd_type0_timing,
187 .win[0] = &mini6410_lcd_type0_fb_win, 196 .win[0] = &mini6410_lcd_type0_fb_win,
188 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 197 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
189 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 198 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
190 }, { 199 }, {
191 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp, 200 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp,
201 .vtiming = &mini6410_lcd_type1_timing,
192 .win[0] = &mini6410_lcd_type1_fb_win, 202 .win[0] = &mini6410_lcd_type1_fb_win,
193 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 203 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
194 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 204 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
@@ -316,8 +326,8 @@ static void __init mini6410_machine_init(void)
316 mini6410_parse_features(&features, mini6410_features_str); 326 mini6410_parse_features(&features, mini6410_features_str);
317 327
318 printk(KERN_INFO "MINI6410: selected LCD display is %dx%d\n", 328 printk(KERN_INFO "MINI6410: selected LCD display is %dx%d\n",
319 mini6410_lcd_pdata[features.lcd_index].win[0]->win_mode.xres, 329 mini6410_lcd_pdata[features.lcd_index].win[0]->xres,
320 mini6410_lcd_pdata[features.lcd_index].win[0]->win_mode.yres); 330 mini6410_lcd_pdata[features.lcd_index].win[0]->yres);
321 331
322 s3c_nand_set_platdata(&mini6410_nand_info); 332 s3c_nand_set_platdata(&mini6410_nand_info);
323 s3c_fb_set_platdata(&mini6410_lcd_pdata[features.lcd_index]); 333 s3c_fb_set_platdata(&mini6410_lcd_pdata[features.lcd_index]);
diff --git a/arch/arm/mach-s3c64xx/mach-real6410.c b/arch/arm/mach-s3c64xx/mach-real6410.c
index 21f91e5b093d..0fbd32c74ee5 100644
--- a/arch/arm/mach-s3c64xx/mach-real6410.c
+++ b/arch/arm/mach-s3c64xx/mach-real6410.c
@@ -118,43 +118,51 @@ static struct platform_device real6410_device_eth = {
118}; 118};
119 119
120static struct s3c_fb_pd_win real6410_lcd_type0_fb_win = { 120static struct s3c_fb_pd_win real6410_lcd_type0_fb_win = {
121 .win_mode = { /* 4.3" 480x272 */
122 .left_margin = 3,
123 .right_margin = 2,
124 .upper_margin = 1,
125 .lower_margin = 1,
126 .hsync_len = 40,
127 .vsync_len = 1,
128 .xres = 480,
129 .yres = 272,
130 },
131 .max_bpp = 32, 121 .max_bpp = 32,
132 .default_bpp = 16, 122 .default_bpp = 16,
123 .xres = 480,
124 .yres = 272,
125};
126
127static struct fb_videomode real6410_lcd_type0_timing = {
128 /* 4.3" 480x272 */
129 .left_margin = 3,
130 .right_margin = 2,
131 .upper_margin = 1,
132 .lower_margin = 1,
133 .hsync_len = 40,
134 .vsync_len = 1,
133}; 135};
134 136
135static struct s3c_fb_pd_win real6410_lcd_type1_fb_win = { 137static struct s3c_fb_pd_win real6410_lcd_type1_fb_win = {
136 .win_mode = { /* 7.0" 800x480 */
137 .left_margin = 8,
138 .right_margin = 13,
139 .upper_margin = 7,
140 .lower_margin = 5,
141 .hsync_len = 3,
142 .vsync_len = 1,
143 .xres = 800,
144 .yres = 480,
145 },
146 .max_bpp = 32, 138 .max_bpp = 32,
147 .default_bpp = 16, 139 .default_bpp = 16,
140 .xres = 800,
141 .yres = 480,
142};
143
144static struct fb_videomode real6410_lcd_type1_timing = {
145 /* 7.0" 800x480 */
146 .left_margin = 8,
147 .right_margin = 13,
148 .upper_margin = 7,
149 .lower_margin = 5,
150 .hsync_len = 3,
151 .vsync_len = 1,
152 .xres = 800,
153 .yres = 480,
148}; 154};
149 155
150static struct s3c_fb_platdata real6410_lcd_pdata[] __initdata = { 156static struct s3c_fb_platdata real6410_lcd_pdata[] __initdata = {
151 { 157 {
152 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp, 158 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp,
159 .vtiming = &real6410_lcd_type0_timing,
153 .win[0] = &real6410_lcd_type0_fb_win, 160 .win[0] = &real6410_lcd_type0_fb_win,
154 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 161 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
155 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 162 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
156 }, { 163 }, {
157 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp, 164 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp,
165 .vtiming = &real6410_lcd_type1_timing,
158 .win[0] = &real6410_lcd_type1_fb_win, 166 .win[0] = &real6410_lcd_type1_fb_win,
159 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 167 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
160 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 168 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
@@ -297,8 +305,8 @@ static void __init real6410_machine_init(void)
297 real6410_parse_features(&features, real6410_features_str); 305 real6410_parse_features(&features, real6410_features_str);
298 306
299 printk(KERN_INFO "REAL6410: selected LCD display is %dx%d\n", 307 printk(KERN_INFO "REAL6410: selected LCD display is %dx%d\n",
300 real6410_lcd_pdata[features.lcd_index].win[0]->win_mode.xres, 308 real6410_lcd_pdata[features.lcd_index].win[0]->xres,
301 real6410_lcd_pdata[features.lcd_index].win[0]->win_mode.yres); 309 real6410_lcd_pdata[features.lcd_index].win[0]->yres);
302 310
303 s3c_fb_set_platdata(&real6410_lcd_pdata[features.lcd_index]); 311 s3c_fb_set_platdata(&real6410_lcd_pdata[features.lcd_index]);
304 s3c_nand_set_platdata(&real6410_nand_info); 312 s3c_nand_set_platdata(&real6410_nand_info);
diff --git a/arch/arm/mach-s3c64xx/mach-smartq5.c b/arch/arm/mach-s3c64xx/mach-smartq5.c
index 3f42431d4dda..03a2f88aabe1 100644
--- a/arch/arm/mach-s3c64xx/mach-smartq5.c
+++ b/arch/arm/mach-s3c64xx/mach-smartq5.c
@@ -108,23 +108,27 @@ static struct platform_device smartq5_buttons_device = {
108}; 108};
109 109
110static struct s3c_fb_pd_win smartq5_fb_win0 = { 110static struct s3c_fb_pd_win smartq5_fb_win0 = {
111 .win_mode = {
112 .left_margin = 216,
113 .right_margin = 40,
114 .upper_margin = 35,
115 .lower_margin = 10,
116 .hsync_len = 1,
117 .vsync_len = 1,
118 .xres = 800,
119 .yres = 480,
120 .refresh = 80,
121 },
122 .max_bpp = 32, 111 .max_bpp = 32,
123 .default_bpp = 16, 112 .default_bpp = 16,
113 .xres = 800,
114 .yres = 480,
115};
116
117static struct fb_videomode smartq5_lcd_timing = {
118 .left_margin = 216,
119 .right_margin = 40,
120 .upper_margin = 35,
121 .lower_margin = 10,
122 .hsync_len = 1,
123 .vsync_len = 1,
124 .xres = 800,
125 .yres = 480,
126 .refresh = 80,
124}; 127};
125 128
126static struct s3c_fb_platdata smartq5_lcd_pdata __initdata = { 129static struct s3c_fb_platdata smartq5_lcd_pdata __initdata = {
127 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp, 130 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp,
131 .vtiming = &smartq5_lcd_timing,
128 .win[0] = &smartq5_fb_win0, 132 .win[0] = &smartq5_fb_win0,
129 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 133 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
130 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC | 134 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC |
diff --git a/arch/arm/mach-s3c64xx/mach-smartq7.c b/arch/arm/mach-s3c64xx/mach-smartq7.c
index e5c09b6db967..4e3b0385e868 100644
--- a/arch/arm/mach-s3c64xx/mach-smartq7.c
+++ b/arch/arm/mach-s3c64xx/mach-smartq7.c
@@ -124,23 +124,27 @@ static struct platform_device smartq7_buttons_device = {
124}; 124};
125 125
126static struct s3c_fb_pd_win smartq7_fb_win0 = { 126static struct s3c_fb_pd_win smartq7_fb_win0 = {
127 .win_mode = {
128 .left_margin = 3,
129 .right_margin = 5,
130 .upper_margin = 1,
131 .lower_margin = 20,
132 .hsync_len = 10,
133 .vsync_len = 3,
134 .xres = 800,
135 .yres = 480,
136 .refresh = 80,
137 },
138 .max_bpp = 32, 127 .max_bpp = 32,
139 .default_bpp = 16, 128 .default_bpp = 16,
129 .xres = 800,
130 .yres = 480,
131};
132
133static struct fb_videomode smartq7_lcd_timing = {
134 .left_margin = 3,
135 .right_margin = 5,
136 .upper_margin = 1,
137 .lower_margin = 20,
138 .hsync_len = 10,
139 .vsync_len = 3,
140 .xres = 800,
141 .yres = 480,
142 .refresh = 80,
140}; 143};
141 144
142static struct s3c_fb_platdata smartq7_lcd_pdata __initdata = { 145static struct s3c_fb_platdata smartq7_lcd_pdata __initdata = {
143 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp, 146 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp,
147 .vtiming = &smartq7_lcd_timing,
144 .win[0] = &smartq7_fb_win0, 148 .win[0] = &smartq7_fb_win0,
145 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 149 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
146 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC | 150 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC |
diff --git a/arch/arm/mach-s3c64xx/mach-smdk6410.c b/arch/arm/mach-s3c64xx/mach-smdk6410.c
index d55bc96d9582..3cfc90f7ed31 100644
--- a/arch/arm/mach-s3c64xx/mach-smdk6410.c
+++ b/arch/arm/mach-s3c64xx/mach-smdk6410.c
@@ -146,26 +146,29 @@ static struct platform_device smdk6410_lcd_powerdev = {
146}; 146};
147 147
148static struct s3c_fb_pd_win smdk6410_fb_win0 = { 148static struct s3c_fb_pd_win smdk6410_fb_win0 = {
149 /* this is to ensure we use win0 */
150 .win_mode = {
151 .left_margin = 8,
152 .right_margin = 13,
153 .upper_margin = 7,
154 .lower_margin = 5,
155 .hsync_len = 3,
156 .vsync_len = 1,
157 .xres = 800,
158 .yres = 480,
159 },
160 .max_bpp = 32, 149 .max_bpp = 32,
161 .default_bpp = 16, 150 .default_bpp = 16,
151 .xres = 800,
152 .yres = 480,
162 .virtual_y = 480 * 2, 153 .virtual_y = 480 * 2,
163 .virtual_x = 800, 154 .virtual_x = 800,
164}; 155};
165 156
157static struct fb_videomode smdk6410_lcd_timing = {
158 .left_margin = 8,
159 .right_margin = 13,
160 .upper_margin = 7,
161 .lower_margin = 5,
162 .hsync_len = 3,
163 .vsync_len = 1,
164 .xres = 800,
165 .yres = 480,
166};
167
166/* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */ 168/* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */
167static struct s3c_fb_platdata smdk6410_lcd_pdata __initdata = { 169static struct s3c_fb_platdata smdk6410_lcd_pdata __initdata = {
168 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp, 170 .setup_gpio = s3c64xx_fb_gpio_setup_24bpp,
171 .vtiming = &smdk6410_lcd_timing,
169 .win[0] = &smdk6410_fb_win0, 172 .win[0] = &smdk6410_fb_win0,
170 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 173 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
171 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 174 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
diff --git a/arch/arm/mach-s5p64x0/mach-smdk6440.c b/arch/arm/mach-s5p64x0/mach-smdk6440.c
index a40e325d62c8..92fefad505cc 100644
--- a/arch/arm/mach-s5p64x0/mach-smdk6440.c
+++ b/arch/arm/mach-s5p64x0/mach-smdk6440.c
@@ -103,22 +103,26 @@ static struct s3c2410_uartcfg smdk6440_uartcfgs[] __initdata = {
103 103
104/* Frame Buffer */ 104/* Frame Buffer */
105static struct s3c_fb_pd_win smdk6440_fb_win0 = { 105static struct s3c_fb_pd_win smdk6440_fb_win0 = {
106 .win_mode = {
107 .left_margin = 8,
108 .right_margin = 13,
109 .upper_margin = 7,
110 .lower_margin = 5,
111 .hsync_len = 3,
112 .vsync_len = 1,
113 .xres = 800,
114 .yres = 480,
115 },
116 .max_bpp = 32, 106 .max_bpp = 32,
117 .default_bpp = 24, 107 .default_bpp = 24,
108 .xres = 800,
109 .yres = 480,
110};
111
112static struct fb_videomode smdk6440_lcd_timing = {
113 .left_margin = 8,
114 .right_margin = 13,
115 .upper_margin = 7,
116 .lower_margin = 5,
117 .hsync_len = 3,
118 .vsync_len = 1,
119 .xres = 800,
120 .yres = 480,
118}; 121};
119 122
120static struct s3c_fb_platdata smdk6440_lcd_pdata __initdata = { 123static struct s3c_fb_platdata smdk6440_lcd_pdata __initdata = {
121 .win[0] = &smdk6440_fb_win0, 124 .win[0] = &smdk6440_fb_win0,
125 .vtiming = &smdk6440_lcd_timing,
122 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 126 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
123 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 127 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
124 .setup_gpio = s5p64x0_fb_gpio_setup_24bpp, 128 .setup_gpio = s5p64x0_fb_gpio_setup_24bpp,
diff --git a/arch/arm/mach-s5p64x0/mach-smdk6450.c b/arch/arm/mach-s5p64x0/mach-smdk6450.c
index efb69e2f2afe..e2335ecf6eae 100644
--- a/arch/arm/mach-s5p64x0/mach-smdk6450.c
+++ b/arch/arm/mach-s5p64x0/mach-smdk6450.c
@@ -121,22 +121,26 @@ static struct s3c2410_uartcfg smdk6450_uartcfgs[] __initdata = {
121 121
122/* Frame Buffer */ 122/* Frame Buffer */
123static struct s3c_fb_pd_win smdk6450_fb_win0 = { 123static struct s3c_fb_pd_win smdk6450_fb_win0 = {
124 .win_mode = {
125 .left_margin = 8,
126 .right_margin = 13,
127 .upper_margin = 7,
128 .lower_margin = 5,
129 .hsync_len = 3,
130 .vsync_len = 1,
131 .xres = 800,
132 .yres = 480,
133 },
134 .max_bpp = 32, 124 .max_bpp = 32,
135 .default_bpp = 24, 125 .default_bpp = 24,
126 .xres = 800,
127 .yres = 480,
128};
129
130static struct fb_videomode smdk6450_lcd_timing = {
131 .left_margin = 8,
132 .right_margin = 13,
133 .upper_margin = 7,
134 .lower_margin = 5,
135 .hsync_len = 3,
136 .vsync_len = 1,
137 .xres = 800,
138 .yres = 480,
136}; 139};
137 140
138static struct s3c_fb_platdata smdk6450_lcd_pdata __initdata = { 141static struct s3c_fb_platdata smdk6450_lcd_pdata __initdata = {
139 .win[0] = &smdk6450_fb_win0, 142 .win[0] = &smdk6450_fb_win0,
143 .vtiming = &smdk6450_lcd_timing,
140 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 144 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
141 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 145 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
142 .setup_gpio = s5p64x0_fb_gpio_setup_24bpp, 146 .setup_gpio = s5p64x0_fb_gpio_setup_24bpp,
diff --git a/arch/arm/mach-s5pc100/mach-smdkc100.c b/arch/arm/mach-s5pc100/mach-smdkc100.c
index 674d22992f3c..0c3ae38d27ca 100644
--- a/arch/arm/mach-s5pc100/mach-smdkc100.c
+++ b/arch/arm/mach-s5pc100/mach-smdkc100.c
@@ -136,24 +136,27 @@ static struct platform_device smdkc100_lcd_powerdev = {
136 136
137/* Frame Buffer */ 137/* Frame Buffer */
138static struct s3c_fb_pd_win smdkc100_fb_win0 = { 138static struct s3c_fb_pd_win smdkc100_fb_win0 = {
139 /* this is to ensure we use win0 */
140 .win_mode = {
141 .left_margin = 8,
142 .right_margin = 13,
143 .upper_margin = 7,
144 .lower_margin = 5,
145 .hsync_len = 3,
146 .vsync_len = 1,
147 .xres = 800,
148 .yres = 480,
149 .refresh = 80,
150 },
151 .max_bpp = 32, 139 .max_bpp = 32,
152 .default_bpp = 16, 140 .default_bpp = 16,
141 .xres = 800,
142 .yres = 480,
143};
144
145static struct fb_videomode smdkc100_lcd_timing = {
146 .left_margin = 8,
147 .right_margin = 13,
148 .upper_margin = 7,
149 .lower_margin = 5,
150 .hsync_len = 3,
151 .vsync_len = 1,
152 .xres = 800,
153 .yres = 480,
154 .refresh = 80,
153}; 155};
154 156
155static struct s3c_fb_platdata smdkc100_lcd_pdata __initdata = { 157static struct s3c_fb_platdata smdkc100_lcd_pdata __initdata = {
156 .win[0] = &smdkc100_fb_win0, 158 .win[0] = &smdkc100_fb_win0,
159 .vtiming = &smdkc100_lcd_timing,
157 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 160 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
158 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 161 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
159 .setup_gpio = s5pc100_fb_gpio_setup_24bpp, 162 .setup_gpio = s5pc100_fb_gpio_setup_24bpp,
diff --git a/arch/arm/mach-s5pv210/mach-aquila.c b/arch/arm/mach-s5pv210/mach-aquila.c
index a9ea64e0da0d..7b91bbf887fe 100644
--- a/arch/arm/mach-s5pv210/mach-aquila.c
+++ b/arch/arm/mach-s5pv210/mach-aquila.c
@@ -96,38 +96,34 @@ static struct s3c2410_uartcfg aquila_uartcfgs[] __initdata = {
96 96
97/* Frame Buffer */ 97/* Frame Buffer */
98static struct s3c_fb_pd_win aquila_fb_win0 = { 98static struct s3c_fb_pd_win aquila_fb_win0 = {
99 .win_mode = {
100 .left_margin = 16,
101 .right_margin = 16,
102 .upper_margin = 3,
103 .lower_margin = 28,
104 .hsync_len = 2,
105 .vsync_len = 2,
106 .xres = 480,
107 .yres = 800,
108 },
109 .max_bpp = 32, 99 .max_bpp = 32,
110 .default_bpp = 16, 100 .default_bpp = 16,
101 .xres = 480,
102 .yres = 800,
111}; 103};
112 104
113static struct s3c_fb_pd_win aquila_fb_win1 = { 105static struct s3c_fb_pd_win aquila_fb_win1 = {
114 .win_mode = {
115 .left_margin = 16,
116 .right_margin = 16,
117 .upper_margin = 3,
118 .lower_margin = 28,
119 .hsync_len = 2,
120 .vsync_len = 2,
121 .xres = 480,
122 .yres = 800,
123 },
124 .max_bpp = 32, 106 .max_bpp = 32,
125 .default_bpp = 16, 107 .default_bpp = 16,
108 .xres = 480,
109 .yres = 800,
110};
111
112static struct fb_videomode aquila_lcd_timing = {
113 .left_margin = 16,
114 .right_margin = 16,
115 .upper_margin = 3,
116 .lower_margin = 28,
117 .hsync_len = 2,
118 .vsync_len = 2,
119 .xres = 480,
120 .yres = 800,
126}; 121};
127 122
128static struct s3c_fb_platdata aquila_lcd_pdata __initdata = { 123static struct s3c_fb_platdata aquila_lcd_pdata __initdata = {
129 .win[0] = &aquila_fb_win0, 124 .win[0] = &aquila_fb_win0,
130 .win[1] = &aquila_fb_win1, 125 .win[1] = &aquila_fb_win1,
126 .vtiming = &aquila_lcd_timing,
131 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 127 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
132 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC | 128 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC |
133 VIDCON1_INV_VCLK | VIDCON1_INV_VDEN, 129 VIDCON1_INV_VCLK | VIDCON1_INV_VDEN,
diff --git a/arch/arm/mach-s5pv210/mach-goni.c b/arch/arm/mach-s5pv210/mach-goni.c
index 2cf5ed75f390..07a840de9a38 100644
--- a/arch/arm/mach-s5pv210/mach-goni.c
+++ b/arch/arm/mach-s5pv210/mach-goni.c
@@ -105,25 +105,29 @@ static struct s3c2410_uartcfg goni_uartcfgs[] __initdata = {
105 105
106/* Frame Buffer */ 106/* Frame Buffer */
107static struct s3c_fb_pd_win goni_fb_win0 = { 107static struct s3c_fb_pd_win goni_fb_win0 = {
108 .win_mode = {
109 .left_margin = 16,
110 .right_margin = 16,
111 .upper_margin = 2,
112 .lower_margin = 28,
113 .hsync_len = 2,
114 .vsync_len = 1,
115 .xres = 480,
116 .yres = 800,
117 .refresh = 55,
118 },
119 .max_bpp = 32, 108 .max_bpp = 32,
120 .default_bpp = 16, 109 .default_bpp = 16,
110 .xres = 480,
111 .yres = 800,
121 .virtual_x = 480, 112 .virtual_x = 480,
122 .virtual_y = 2 * 800, 113 .virtual_y = 2 * 800,
123}; 114};
124 115
116static struct fb_videomode goni_lcd_timing = {
117 .left_margin = 16,
118 .right_margin = 16,
119 .upper_margin = 2,
120 .lower_margin = 28,
121 .hsync_len = 2,
122 .vsync_len = 1,
123 .xres = 480,
124 .yres = 800,
125 .refresh = 55,
126};
127
125static struct s3c_fb_platdata goni_lcd_pdata __initdata = { 128static struct s3c_fb_platdata goni_lcd_pdata __initdata = {
126 .win[0] = &goni_fb_win0, 129 .win[0] = &goni_fb_win0,
130 .vtiming = &goni_lcd_timing,
127 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB | 131 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB |
128 VIDCON0_CLKSEL_LCD, 132 VIDCON0_CLKSEL_LCD,
129 .vidcon1 = VIDCON1_INV_VCLK | VIDCON1_INV_VDEN 133 .vidcon1 = VIDCON1_INV_VCLK | VIDCON1_INV_VDEN
diff --git a/arch/arm/mach-s5pv210/mach-smdkv210.c b/arch/arm/mach-s5pv210/mach-smdkv210.c
index 91d4ad8bcc73..5e0c9559d4b3 100644
--- a/arch/arm/mach-s5pv210/mach-smdkv210.c
+++ b/arch/arm/mach-s5pv210/mach-smdkv210.c
@@ -189,22 +189,26 @@ static struct platform_device smdkv210_lcd_lte480wv = {
189}; 189};
190 190
191static struct s3c_fb_pd_win smdkv210_fb_win0 = { 191static struct s3c_fb_pd_win smdkv210_fb_win0 = {
192 .win_mode = {
193 .left_margin = 13,
194 .right_margin = 8,
195 .upper_margin = 7,
196 .lower_margin = 5,
197 .hsync_len = 3,
198 .vsync_len = 1,
199 .xres = 800,
200 .yres = 480,
201 },
202 .max_bpp = 32, 192 .max_bpp = 32,
203 .default_bpp = 24, 193 .default_bpp = 24,
194 .xres = 800,
195 .yres = 480,
196};
197
198static struct fb_videomode smdkv210_lcd_timing = {
199 .left_margin = 13,
200 .right_margin = 8,
201 .upper_margin = 7,
202 .lower_margin = 5,
203 .hsync_len = 3,
204 .vsync_len = 1,
205 .xres = 800,
206 .yres = 480,
204}; 207};
205 208
206static struct s3c_fb_platdata smdkv210_lcd0_pdata __initdata = { 209static struct s3c_fb_platdata smdkv210_lcd0_pdata __initdata = {
207 .win[0] = &smdkv210_fb_win0, 210 .win[0] = &smdkv210_fb_win0,
211 .vtiming = &smdkv210_lcd_timing,
208 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, 212 .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
209 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 213 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
210 .setup_gpio = s5pv210_fb_gpio_setup_24bpp, 214 .setup_gpio = s5pv210_fb_gpio_setup_24bpp,