diff options
author | Ben Dooks <ben-linux@fluff.org> | 2008-11-10 05:59:29 -0500 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2008-12-18 09:44:15 -0500 |
commit | 1d19fdba149f4db055902c30b27adfb7d1ead058 (patch) | |
tree | ff716c16871d265691f3fd446a2d69614c8680a7 /arch | |
parent | 4a045cb306a349250cf50fc8ef1dddea0e8f395a (diff) |
[ARM] AT2440EVB: LCD frame buffer support.
Add LCD frame buffer support for AT2440EVB board.
Signed-off-by: Ramax Lo <ramaxlo@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-s3c2440/mach-at2440evb.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c2440/mach-at2440evb.c b/arch/arm/mach-s3c2440/mach-at2440evb.c index 8c6596eef162..4539b1d95877 100644 --- a/arch/arm/mach-s3c2440/mach-at2440evb.c +++ b/arch/arm/mach-s3c2440/mach-at2440evb.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <asm/mach/irq.h> | 28 | #include <asm/mach/irq.h> |
29 | 29 | ||
30 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |
31 | #include <mach/fb.h> | ||
31 | #include <asm/irq.h> | 32 | #include <asm/irq.h> |
32 | #include <asm/mach-types.h> | 33 | #include <asm/mach-types.h> |
33 | 34 | ||
@@ -167,6 +168,39 @@ static struct s3c24xx_mci_pdata at2440evb_mci_pdata = { | |||
167 | .gpio_detect = S3C2410_GPG10, | 168 | .gpio_detect = S3C2410_GPG10, |
168 | }; | 169 | }; |
169 | 170 | ||
171 | /* 7" LCD panel */ | ||
172 | |||
173 | static struct s3c2410fb_display at2440evb_lcd_cfg __initdata = { | ||
174 | |||
175 | .lcdcon5 = S3C2410_LCDCON5_FRM565 | | ||
176 | S3C2410_LCDCON5_INVVLINE | | ||
177 | S3C2410_LCDCON5_INVVFRAME | | ||
178 | S3C2410_LCDCON5_PWREN | | ||
179 | S3C2410_LCDCON5_HWSWP, | ||
180 | |||
181 | .type = S3C2410_LCDCON1_TFT, | ||
182 | |||
183 | .width = 800, | ||
184 | .height = 480, | ||
185 | |||
186 | .pixclock = 33333, /* HCLK 60 MHz, divisor 2 */ | ||
187 | .xres = 800, | ||
188 | .yres = 480, | ||
189 | .bpp = 16, | ||
190 | .left_margin = 88, | ||
191 | .right_margin = 40, | ||
192 | .hsync_len = 128, | ||
193 | .upper_margin = 32, | ||
194 | .lower_margin = 11, | ||
195 | .vsync_len = 2, | ||
196 | }; | ||
197 | |||
198 | static struct s3c2410fb_mach_info at2440evb_fb_info __initdata = { | ||
199 | .displays = &at2440evb_lcd_cfg, | ||
200 | .num_displays = 1, | ||
201 | .default_display = 0, | ||
202 | }; | ||
203 | |||
170 | static struct platform_device *at2440evb_devices[] __initdata = { | 204 | static struct platform_device *at2440evb_devices[] __initdata = { |
171 | &s3c_device_usb, | 205 | &s3c_device_usb, |
172 | &s3c_device_wdt, | 206 | &s3c_device_wdt, |
@@ -175,6 +209,7 @@ static struct platform_device *at2440evb_devices[] __initdata = { | |||
175 | &s3c_device_rtc, | 209 | &s3c_device_rtc, |
176 | &s3c_device_nand, | 210 | &s3c_device_nand, |
177 | &s3c_device_sdi, | 211 | &s3c_device_sdi, |
212 | &s3c_device_lcd, | ||
178 | &at2440evb_device_eth, | 213 | &at2440evb_device_eth, |
179 | }; | 214 | }; |
180 | 215 | ||
@@ -191,6 +226,7 @@ static void __init at2440evb_map_io(void) | |||
191 | 226 | ||
192 | static void __init at2440evb_init(void) | 227 | static void __init at2440evb_init(void) |
193 | { | 228 | { |
229 | s3c24xx_fb_set_platdata(&at2440evb_fb_info); | ||
194 | platform_add_devices(at2440evb_devices, ARRAY_SIZE(at2440evb_devices)); | 230 | platform_add_devices(at2440evb_devices, ARRAY_SIZE(at2440evb_devices)); |
195 | } | 231 | } |
196 | 232 | ||