Skip to content

Commit

Permalink
[PATCH] s3c2410fb: Platform support for ARM S3C2410 framebuffer driver
Browse files Browse the repository at this point in the history
This patch add the plateform specific stuff needed to configure and use the
driver.

Signed-Off-By: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Antonino Daplas <adaplas@pol.net>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Ben Dooks <ben@trinity.fluff.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Arnaud Patard authored and Linus Torvalds committed Sep 9, 2005
1 parent 20fd576 commit f92273c
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 1 deletion.
11 changes: 10 additions & 1 deletion arch/arm/mach-s3c2410/devs.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/irq.h>

#include <asm/arch/fb.h>
#include <asm/hardware.h>
#include <asm/io.h>
#include <asm/irq.h>
Expand Down Expand Up @@ -103,6 +103,15 @@ struct platform_device s3c_device_lcd = {

EXPORT_SYMBOL(s3c_device_lcd);

static struct s3c2410fb_mach_info s3c2410fb_info;

void __init set_s3c2410fb_info(struct s3c2410fb_mach_info *hard_s3c2410fb_info)
{
memcpy(&s3c2410fb_info,hard_s3c2410fb_info,sizeof(struct s3c2410fb_mach_info));
s3c_device_lcd.dev.platform_data = &s3c2410fb_info;
}
EXPORT_SYMBOL(set_s3c2410fb_info);

/* NAND Controller */

static struct resource s3c_nand_resource[] = {
Expand Down
51 changes: 51 additions & 0 deletions arch/arm/mach-s3c2410/mach-h1940.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@

//#include <asm/debug-ll.h>
#include <asm/arch/regs-serial.h>
#include <asm/arch/regs-lcd.h>

#include <asm/arch/fb.h>

#include <linux/serial_core.h>

Expand Down Expand Up @@ -88,6 +91,48 @@ static struct s3c2410_uartcfg h1940_uartcfgs[] = {



/**
* Set lcd on or off
**/
static struct s3c2410fb_mach_info h1940_lcdcfg __initdata = {
.fixed_syncs= 1,
.regs={
.lcdcon1= S3C2410_LCDCON1_TFT16BPP | \
S3C2410_LCDCON1_TFT | \
S3C2410_LCDCON1_CLKVAL(0x0C),

.lcdcon2= S3C2410_LCDCON2_VBPD(7) | \
S3C2410_LCDCON2_LINEVAL(319) | \
S3C2410_LCDCON2_VFPD(6) | \
S3C2410_LCDCON2_VSPW(0),

.lcdcon3= S3C2410_LCDCON3_HBPD(19) | \
S3C2410_LCDCON3_HOZVAL(239) | \
S3C2410_LCDCON3_HFPD(7),

.lcdcon4= S3C2410_LCDCON4_MVAL(0) | \
S3C2410_LCDCON4_HSPW(3),

.lcdcon5= S3C2410_LCDCON5_FRM565 | \
S3C2410_LCDCON5_INVVLINE | \
S3C2410_LCDCON5_HWSWP,
},
.lpcsel= 0x02,
.gpccon= 0xaa940659,
.gpccon_mask= 0xffffffff,
.gpcup= 0x0000ffff,
.gpcup_mask= 0xffffffff,
.gpdcon= 0xaa84aaa0,
.gpdcon_mask= 0xffffffff,
.gpdup= 0x0000faff,
.gpdup_mask= 0xffffffff,

.width= 240,
.height= 320,
.xres= {240,240,240},
.yres= {320,320,320},
.bpp= {16,16,16},
};

static struct platform_device *h1940_devices[] __initdata = {
&s3c_device_usb,
Expand Down Expand Up @@ -116,6 +161,11 @@ void __init h1940_init_irq(void)

}

void __init h1940_init(void)
{
set_s3c2410fb_info(&h1940_lcdcfg);
}

MACHINE_START(H1940, "IPAQ-H1940")
/* Maintainer: Ben Dooks <ben@fluff.org> */
.phys_ram = S3C2410_SDRAM_PA,
Expand All @@ -124,5 +174,6 @@ MACHINE_START(H1940, "IPAQ-H1940")
.boot_params = S3C2410_SDRAM_PA + 0x100,
.map_io = h1940_map_io,
.init_irq = h1940_init_irq,
.init_machine = h1940_init,
.timer = &s3c24xx_timer,
MACHINE_END

0 comments on commit f92273c

Please sign in to comment.