lcd flash sdram
lcd
make menuconfig:
Device Drivers ---> Graphics support ---><*> Support for frame buffer devices ---><*> S3C2410 LCD framebuffer support
device node: /dev/fb0
file: drivers/video/s3c2410fb.c
Another configuration item in the same page is: LCD select (7 inch 800x480 TFT LCD) .then 7 inch lcd will work.
Do not worry about touchscreen ,we just do calibrating when system on and it will work.
( ) 3.5 inch 240X320 Toppoly LCD------ CONFIG_FB_S3C2410_T240320
( ) 3.5 inch 240X320 NEC LCD -----------CONFIG_FB_S3C2410_N240320:
( ) 8 inch 640X480 L80 LCD--------------CONFIG_FB_S3C2410_TFT640480:
(X) 7 inch 800x480 TFT LCD-------------CONFIG_FB_S3C2410_TFT800480:
( ) VGA 1024x768 ----------------------ONFIG_FB_S3C2410_VGA1024768:
search "if defined" and highlight if using firefox
/************************************************************************************************/
trace fbi->dev->platform_data:
s3c2410fb.c
struct s3c2410fb_mach_info *mach_info = fbi->dev->platform_data;
devs.c
http://topic.csdn.net/u/20101025/16/62ab9b17-91e2-4154-9e01-97ffd6ec4e5b.html
http://blog.csdn.net/lanmanck/article/details/4773175
http://blog.csdn.net/eqwewr/article/details/6725655
http://blog.csdn.net/eqwewr/article/details/7079442
/************************************************************************************************/
nand
Device Drivers ---> <*> Memory Technology Device (MTD) support --->[*] MTD partitioning support
<*> Direct char device access to MTD devices
<*> Caching block device access to MTD devices
<*> NAND Device Support ---> <*> NAND Flash support for Samsung S3C SoCs
obj-$(CONFIG_MTD_NAND_S3C2410) += s3c2410.o
/drivers/mtd/nand/s3c2410.c
the file nand_ids.c in the same directory indicates supported chips
make menuconfig:
Device Drivers ---> Graphics support ---><*> Support for frame buffer devices ---><*> S3C2410 LCD framebuffer support
device node: /dev/fb0
file: drivers/video/s3c2410fb.c
Another configuration item in the same page is: LCD select (7 inch 800x480 TFT LCD) .then 7 inch lcd will work.
Do not worry about touchscreen ,we just do calibrating when system on and it will work.
( ) 3.5 inch 240X320 Toppoly LCD------ CONFIG_FB_S3C2410_T240320
( ) 3.5 inch 240X320 NEC LCD -----------CONFIG_FB_S3C2410_N240320:
( ) 8 inch 640X480 L80 LCD--------------CONFIG_FB_S3C2410_TFT640480:
(X) 7 inch 800x480 TFT LCD-------------CONFIG_FB_S3C2410_TFT800480:
( ) VGA 1024x768 ----------------------ONFIG_FB_S3C2410_VGA1024768:
search "if defined" and highlight if using firefox
//mach-mini2440.c /* LCD driver info */ #if defined(CONFIG_FB_S3C2410_N240320) #define LCD_WIDTH 240 #define LCD_HEIGHT 320 #define LCD_PIXCLOCK 100000 #define LCD_RIGHT_MARGIN 36 #define LCD_LEFT_MARGIN 19 #define LCD_HSYNC_LEN 5 #define LCD_UPPER_MARGIN 1 #define LCD_LOWER_MARGIN 5 #define LCD_VSYNC_LEN 1 #elif defined(CONFIG_FB_S3C2410_N480272) #define LCD_WIDTH 480 #define LCD_HEIGHT 272 #define LCD_PIXCLOCK 100000 #define LCD_RIGHT_MARGIN 36 #define LCD_LEFT_MARGIN 19 #define LCD_HSYNC_LEN 5 #define LCD_UPPER_MARGIN 1 #define LCD_LOWER_MARGIN 5 #define LCD_VSYNC_LEN 1 #elif defined(CONFIG_FB_S3C2410_TFT640480) #define LCD_WIDTH 640 #define LCD_HEIGHT 480 #define LCD_PIXCLOCK 40000 #define LCD_RIGHT_MARGIN 67 #define LCD_LEFT_MARGIN 40 #define LCD_HSYNC_LEN 31 #define LCD_UPPER_MARGIN 5 #define LCD_LOWER_MARGIN 25 #define LCD_VSYNC_LEN 1 #elif defined(CONFIG_FB_S3C2410_T240320)/*configuration*/ #define LCD_WIDTH 240 #define LCD_HEIGHT 320 #define LCD_PIXCLOCK 170000 #define LCD_RIGHT_MARGIN 25 #define LCD_LEFT_MARGIN 0 #define LCD_HSYNC_LEN 4 #define LCD_UPPER_MARGIN 1 #define LCD_LOWER_MARGIN 4 #define LCD_VSYNC_LEN 1 #define LCD_CON5 (S3C2410_LCDCON5_FRM565 | S3C2410_LCDCON5_INVVDEN | S3C2410_LCDCON5_INVVFRAME | S3C2410_LCDCON5_INVVLINE | S3C2410_LCDCON5_INVVCLK | S3C2410_LCDCON5_HWSWP ) #elif defined(CONFIG_FB_S3C2410_X240320) #define LCD_WIDTH 240 #define LCD_HEIGHT 320 #define LCD_PIXCLOCK 170000 #define LCD_RIGHT_MARGIN 25 #define LCD_LEFT_MARGIN 0 #define LCD_HSYNC_LEN 4 #define LCD_UPPER_MARGIN 0 #define LCD_LOWER_MARGIN 4 #define LCD_VSYNC_LEN 9 #define LCD_CON5 (S3C2410_LCDCON5_FRM565 | S3C2410_LCDCON5_INVVDEN | S3C2410_LCDCON5_INVVFRAME | S3C2410_LCDCON5_INVVLINE | S3C2410_LCDCON5_INVVCLK | S3C2410_LCDCON5_HWSWP ) #elif defined(CONFIG_FB_S3C2410_TFT800480) #define LCD_WIDTH 800 #define LCD_HEIGHT 480 #define LCD_PIXCLOCK 40000 #define LCD_RIGHT_MARGIN 67 #define LCD_LEFT_MARGIN 40 #define LCD_HSYNC_LEN 31 #define LCD_UPPER_MARGIN 25 #define LCD_LOWER_MARGIN 5 #define LCD_VSYNC_LEN 1 #elif defined(CONFIG_FB_S3C2410_VGA1024768) #define LCD_WIDTH 1024 #define LCD_HEIGHT 768 #define LCD_PIXCLOCK 80000 #define LCD_RIGHT_MARGIN 15 #define LCD_LEFT_MARGIN 199 #define LCD_HSYNC_LEN 15 #define LCD_UPPER_MARGIN 1 #define LCD_LOWER_MARGIN 1 #define LCD_VSYNC_LEN 1 #define LCD_CON5 (S3C2410_LCDCON5_FRM565 | S3C2410_LCDCON5_HWSWP) #endif #if defined (LCD_WIDTH) static struct s3c2410fb_display mini2440_lcd_cfg __initdata = { #if !defined (LCD_CON5) .lcdcon5 = S3C2410_LCDCON5_FRM565 | S3C2410_LCDCON5_INVVLINE | S3C2410_LCDCON5_INVVFRAME | S3C2410_LCDCON5_PWREN | S3C2410_LCDCON5_HWSWP, #else .lcdcon5 = LCD_CON5, #endif .type = S3C2410_LCDCON1_TFT, .width = LCD_WIDTH, .height = LCD_HEIGHT, .pixclock = LCD_PIXCLOCK, .xres = LCD_WIDTH, .yres = LCD_HEIGHT, .bpp = 16, .left_margin = LCD_LEFT_MARGIN + 1, .right_margin = LCD_RIGHT_MARGIN + 1, .hsync_len = LCD_HSYNC_LEN + 1, .upper_margin = LCD_UPPER_MARGIN + 1, .lower_margin = LCD_LOWER_MARGIN + 1, .vsync_len = LCD_VSYNC_LEN + 1, }; static struct s3c2410fb_mach_info mini2440_fb_info __initdata = { .displays = &mini2440_lcd_cfg, .num_displays = 1, .default_display = 0, .gpccon = 0xaa955699, .gpccon_mask = 0xffc003cc, .gpcup = 0x0000ffff, .gpcup_mask = 0xffffffff, .gpdcon = 0xaa95aaa1, .gpdcon_mask = 0xffc0fff0, .gpdup = 0x0000faff, .gpdup_mask = 0xffffffff, .lpcsel = 0xf82, }; #endif
/************************************************************************************************/
trace fbi->dev->platform_data:
s3c2410fb.c
struct s3c2410fb_mach_info *mach_info = fbi->dev->platform_data;
devs.c
void __init s3c24xx_fb_set_platdata(struct s3c2410fb_mach_info *pd) { struct s3c2410fb_mach_info *npd; npd = kmalloc(sizeof(*npd), GFP_KERNEL); if (npd) { memcpy(npd, pd, sizeof(*npd)); s3c_device_lcd.dev.platform_data = npd; } else { printk(KERN_ERR "no memory for LCD platform data\n"); } }mach-mini2440.c
static void __init mini2440_machine_init(void) { #if defined (LCD_WIDTH) s3c24xx_fb_set_platdata(&mini2440_fb_info); #endif ... }/************************************************************************************************/
http://topic.csdn.net/u/20101025/16/62ab9b17-91e2-4154-9e01-97ffd6ec4e5b.html
http://blog.csdn.net/lanmanck/article/details/4773175
http://blog.csdn.net/eqwewr/article/details/6725655
http://blog.csdn.net/eqwewr/article/details/7079442
/************************************************************************************************/
nand
Device Drivers ---> <*> Memory Technology Device (MTD) support --->[*] MTD partitioning support
<*> Direct char device access to MTD devices
<*> Caching block device access to MTD devices
<*> NAND Device Support ---> <*> NAND Flash support for Samsung S3C SoCs
obj-$(CONFIG_MTD_NAND_S3C2410) += s3c2410.o
/drivers/mtd/nand/s3c2410.c
the file nand_ids.c in the same directory indicates supported chips