From 1f4115376c488d3bb3490259ae5b2c3b035760a5 Mon Sep 17 00:00:00 2001 From: Krzysztof Helt Date: Tue, 16 Oct 2007 01:28:57 -0700 Subject: s3c2410fb: add margin fields to s3c2410fb_display This patch adds margins fields to the s3c2410fb_display structure. It also sets display type and horizontal margins in all platform files that use the s3c2410fb driver. Signed-off-by: Krzysztof Helt Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- arch/arm/mach-s3c2410/mach-amlm5900.c | 7 ++++--- arch/arm/mach-s3c2410/mach-bast.c | 27 +++++++++++++++++++++++++++ arch/arm/mach-s3c2410/mach-h1940.c | 3 +++ arch/arm/mach-s3c2410/mach-qt2410.c | 9 +++++++++ arch/arm/mach-s3c2440/mach-rx3715.c | 15 +++++++++------ arch/arm/mach-s3c2440/mach-smdk2440.c | 2 ++ include/asm-arm/arch-s3c2410/fb.h | 7 +++++++ 7 files changed, 61 insertions(+), 9 deletions(-) diff --git a/arch/arm/mach-s3c2410/mach-amlm5900.c b/arch/arm/mach-s3c2410/mach-amlm5900.c index 19469340af04..e96b413a114d 100644 --- a/arch/arm/mach-s3c2410/mach-amlm5900.c +++ b/arch/arm/mach-s3c2410/mach-amlm5900.c @@ -172,12 +172,13 @@ static struct s3c2410fb_display __initdata amlm5900_lcd_info = { .width = 160, .height = 160, -/* commented out until stn patch is submitted -* .type = S3C2410_LCDCON1_STN4, -*/ + .type = S3C2410_LCDCON1_STN4, + .xres = 160, .yres = 160, .bpp = 4, + .left_margin = 1 << (4 + 3), + .right_margin = 8 << 3, .regs = { .lcdcon1 = 0x00008225, diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c index be50201809a1..1b4f9f922c8a 100644 --- a/arch/arm/mach-s3c2410/mach-bast.c +++ b/arch/arm/mach-s3c2410/mach-bast.c @@ -469,10 +469,13 @@ static struct platform_device bast_device_axpp = { static struct s3c2410fb_display __initdata bast_lcd_info[] = { { + .type = S3C2410_LCDCON1_TFT, .width = 640, .height = 480, .xres = 320, .yres = 240, + .left_margin = 40, + .right_margin = 20, .bpp = 4, @@ -485,12 +488,15 @@ static struct s3c2410fb_display __initdata bast_lcd_info[] = { } }, { + .type = S3C2410_LCDCON1_TFT, .width = 640, .height = 480, .xres = 640, .yres = 480, .bpp = 4, + .left_margin = 40, + .right_margin = 20, .regs = { .lcdcon1 = 0x00000176, @@ -501,12 +507,15 @@ static struct s3c2410fb_display __initdata bast_lcd_info[] = { } }, { + .type = S3C2410_LCDCON1_TFT, .width = 640, .height = 480, .xres = 800, .yres = 600, .bpp = 4, + .left_margin = 40, + .right_margin = 20, .regs = { .lcdcon1 = 0x00000176, @@ -517,12 +526,15 @@ static struct s3c2410fb_display __initdata bast_lcd_info[] = { } }, { + .type = S3C2410_LCDCON1_TFT, .width = 640, .height = 480, .xres = 320, .yres = 240, .bpp = 8, + .left_margin = 40, + .right_margin = 20, .regs = { .lcdcon1 = 0x00000176, @@ -533,12 +545,15 @@ static struct s3c2410fb_display __initdata bast_lcd_info[] = { } }, { + .type = S3C2410_LCDCON1_TFT, .width = 640, .height = 480, .xres = 640, .yres = 480, .bpp = 8, + .left_margin = 40, + .right_margin = 20, .regs = { .lcdcon1 = 0x00000176, @@ -549,12 +564,15 @@ static struct s3c2410fb_display __initdata bast_lcd_info[] = { } }, { + .type = S3C2410_LCDCON1_TFT, .width = 640, .height = 480, .xres = 800, .yres = 600, .bpp = 8, + .left_margin = 40, + .right_margin = 20, .regs = { .lcdcon1 = 0x00000176, @@ -565,12 +583,15 @@ static struct s3c2410fb_display __initdata bast_lcd_info[] = { } }, { + .type = S3C2410_LCDCON1_TFT, .width = 640, .height = 480, .xres = 320, .yres = 240, .bpp = 16, + .left_margin = 40, + .right_margin = 20, .regs = { .lcdcon1 = 0x00000176, @@ -581,12 +602,15 @@ static struct s3c2410fb_display __initdata bast_lcd_info[] = { } }, { + .type = S3C2410_LCDCON1_TFT, .width = 640, .height = 480, .xres = 640, .yres = 480, .bpp = 16, + .left_margin = 40, + .right_margin = 20, .regs = { .lcdcon1 = 0x00000176, @@ -597,12 +621,15 @@ static struct s3c2410fb_display __initdata bast_lcd_info[] = { } }, { + .type = S3C2410_LCDCON1_TFT, .width = 640, .height = 480, .xres = 800, .yres = 600, .bpp = 16, + .left_margin = 40, + .right_margin = 20, .regs = { .lcdcon1 = 0x00000176, diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c index ab04b2961d6c..372caa289f2b 100644 --- a/arch/arm/mach-s3c2410/mach-h1940.c +++ b/arch/arm/mach-s3c2410/mach-h1940.c @@ -156,11 +156,14 @@ static struct s3c2410fb_display h1940_lcd __initdata = { S3C2410_LCDCON5_HWSWP, }, + .type = S3C2410_LCDCON1_TFT, .width = 240, .height = 320, .xres = 240, .yres = 320, .bpp = 16, + .left_margin = 20, + .right_margin = 8, }; static struct s3c2410fb_mach_info h1940_fb_info __initdata = { diff --git a/arch/arm/mach-s3c2410/mach-qt2410.c b/arch/arm/mach-s3c2410/mach-qt2410.c index 03ea5d7b2a17..0c1ff0a41a99 100644 --- a/arch/arm/mach-s3c2410/mach-qt2410.c +++ b/arch/arm/mach-s3c2410/mach-qt2410.c @@ -123,12 +123,15 @@ static struct s3c2410fb_display qt2410_lcd_cfg[] __initdata = { S3C2410_LCDCON5_HWSWP, }, + .type = S3C2410_LCDCON1_TFT, .width = 640, .height = 480, .xres = 640, .yres = 480, .bpp = 16, + .left_margin = 44, + .right_margin = 116, }, { /* Configuration for 480x640 toppoly TD028TTEC1 */ @@ -157,11 +160,14 @@ static struct s3c2410fb_display qt2410_lcd_cfg[] __initdata = { S3C2410_LCDCON5_HWSWP, }, + .type = S3C2410_LCDCON1_TFT, .width = 480, .height = 640, .xres = 480, .yres = 640, .bpp = 16, + .left_margin = 8, + .right_margin = 24, }, { /* Config for 240x320 LCD */ @@ -190,11 +196,14 @@ static struct s3c2410fb_display qt2410_lcd_cfg[] __initdata = { S3C2410_LCDCON5_HWSWP, }, + .type = S3C2410_LCDCON1_TFT, .width = 240, .height = 320, .xres = 240, .yres = 320, .bpp = 16, + .left_margin = 13, + .right_margin = 8, }, }; diff --git a/arch/arm/mach-s3c2440/mach-rx3715.c b/arch/arm/mach-s3c2440/mach-rx3715.c index c83078878497..dab8e7b474d8 100644 --- a/arch/arm/mach-s3c2440/mach-rx3715.c +++ b/arch/arm/mach-s3c2440/mach-rx3715.c @@ -133,12 +133,15 @@ static struct s3c2410fb_display rx3715_lcdcfg __initdata = { S3C2410_LCDCON5_HWSWP, }, - .width = 240, - .height = 320, - - .xres = 240, - .yres = 320, - .bpp = 16, + .type = S3C2410_LCDCON1_TFT, + .width = 240, + .height = 320, + + .xres = 240, + .yres = 320, + .bpp = 16, + .left_margin = 36, + .right_margin = 36, }; static struct s3c2410fb_mach_info rx3715_fb_info __initdata = { diff --git a/arch/arm/mach-s3c2440/mach-smdk2440.c b/arch/arm/mach-s3c2440/mach-smdk2440.c index f7dac7d54064..5930f1708027 100644 --- a/arch/arm/mach-s3c2440/mach-smdk2440.c +++ b/arch/arm/mach-s3c2440/mach-smdk2440.c @@ -137,6 +137,8 @@ static struct s3c2410fb_display smdk2440_lcd_cfg __initdata = { .xres = 240, .yres = 320, .bpp = 16, + .left_margin = 20, + .right_margin = 8, }; static struct s3c2410fb_mach_info smdk2440_fb_info __initdata = { diff --git a/include/asm-arm/arch-s3c2410/fb.h b/include/asm-arm/arch-s3c2410/fb.h index c0e18b2c2d4a..a76585ae651d 100644 --- a/include/asm-arm/arch-s3c2410/fb.h +++ b/include/asm-arm/arch-s3c2410/fb.h @@ -36,6 +36,13 @@ struct s3c2410fb_display { unsigned short yres; unsigned short bpp; + unsigned short left_margin; /* value in pixels (TFT) or HCLKs (STN) */ + unsigned short right_margin; /* value in pixels (TFT) or HCLKs (STN) */ + unsigned short hsync_len; /* value in pixels (TFT) or HCLKs (STN) */ + unsigned short upper_margin; /* value in lines (TFT) or 0 (STN) */ + unsigned short lower_margin; /* value in lines (TFT) or 0 (STN) */ + unsigned short vsync_len; /* value in lines (TFT) or 0 (STN) */ + /* lcd configuration registers */ struct s3c2410fb_hw regs; }; -- cgit v1.2.3-59-g8ed1b