aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s3c2410/mach-bast.c
diff options
context:
space:
mode:
authorKrzysztof Helt <krzysztof.h1@wp.pl>2007-10-16 04:28:56 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-16 12:43:16 -0400
commit09fe75f6f934597f765748342ca6fb378ee7ecdb (patch)
tree55a3ab7bf52400be136ec533cd5ebda4336fcd07 /arch/arm/mach-s3c2410/mach-bast.c
parent110c1fa75463c4f327e9fc491e9a27e938800d96 (diff)
s3c2410fb: multi-display support
This patch adds a new structure to describe and handle more than one panel (display mode) for the s3c2410 framebuffer. This structure is added after the pxafb driver. Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/arm/mach-s3c2410/mach-bast.c')
-rw-r--r--arch/arm/mach-s3c2410/mach-bast.c177
1 files changed, 151 insertions, 26 deletions
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c
index bc926992b4e4..be50201809a1 100644
--- a/arch/arm/mach-s3c2410/mach-bast.c
+++ b/arch/arm/mach-s3c2410/mach-bast.c
@@ -467,35 +467,160 @@ static struct platform_device bast_device_axpp = {
467 467
468/* LCD/VGA controller */ 468/* LCD/VGA controller */
469 469
470static struct s3c2410fb_mach_info __initdata bast_lcd_info = { 470static struct s3c2410fb_display __initdata bast_lcd_info[] = {
471 .width = 640, 471 {
472 .height = 480, 472 .width = 640,
473 473 .height = 480,
474 .xres = { 474 .xres = 320,
475 .min = 320, 475 .yres = 240,
476 .max = 1024, 476
477 .defval = 640, 477 .bpp = 4,
478
479 .regs = {
480 .lcdcon1 = 0x00000176,
481 .lcdcon2 = 0x1d77c7c2,
482 .lcdcon3 = 0x013a7f13,
483 .lcdcon4 = 0x00000057,
484 .lcdcon5 = 0x00014b02,
485 }
478 }, 486 },
479 487 {
480 .yres = { 488 .width = 640,
481 .min = 240, 489 .height = 480,
482 .max = 600, 490
483 .defval = 480, 491 .xres = 640,
492 .yres = 480,
493 .bpp = 4,
494
495 .regs = {
496 .lcdcon1 = 0x00000176,
497 .lcdcon2 = 0x1d77c7c2,
498 .lcdcon3 = 0x013a7f13,
499 .lcdcon4 = 0x00000057,
500 .lcdcon5 = 0x00014b02,
501 }
484 }, 502 },
485 503 {
486 .bpp = { 504 .width = 640,
487 .min = 4, 505 .height = 480,
488 .max = 16, 506
489 .defval = 8, 507 .xres = 800,
508 .yres = 600,
509 .bpp = 4,
510
511 .regs = {
512 .lcdcon1 = 0x00000176,
513 .lcdcon2 = 0x1d77c7c2,
514 .lcdcon3 = 0x013a7f13,
515 .lcdcon4 = 0x00000057,
516 .lcdcon5 = 0x00014b02,
517 }
518 },
519 {
520 .width = 640,
521 .height = 480,
522
523 .xres = 320,
524 .yres = 240,
525 .bpp = 8,
526
527 .regs = {
528 .lcdcon1 = 0x00000176,
529 .lcdcon2 = 0x1d77c7c2,
530 .lcdcon3 = 0x013a7f13,
531 .lcdcon4 = 0x00000057,
532 .lcdcon5 = 0x00014b02,
533 }
534 },
535 {
536 .width = 640,
537 .height = 480,
538
539 .xres = 640,
540 .yres = 480,
541 .bpp = 8,
542
543 .regs = {
544 .lcdcon1 = 0x00000176,
545 .lcdcon2 = 0x1d77c7c2,
546 .lcdcon3 = 0x013a7f13,
547 .lcdcon4 = 0x00000057,
548 .lcdcon5 = 0x00014b02,
549 }
550 },
551 {
552 .width = 640,
553 .height = 480,
554
555 .xres = 800,
556 .yres = 600,
557 .bpp = 8,
558
559 .regs = {
560 .lcdcon1 = 0x00000176,
561 .lcdcon2 = 0x1d77c7c2,
562 .lcdcon3 = 0x013a7f13,
563 .lcdcon4 = 0x00000057,
564 .lcdcon5 = 0x00014b02,
565 }
566 },
567 {
568 .width = 640,
569 .height = 480,
570
571 .xres = 320,
572 .yres = 240,
573 .bpp = 16,
574
575 .regs = {
576 .lcdcon1 = 0x00000176,
577 .lcdcon2 = 0x1d77c7c2,
578 .lcdcon3 = 0x013a7f13,
579 .lcdcon4 = 0x00000057,
580 .lcdcon5 = 0x00014b02,
581 }
582 },
583 {
584 .width = 640,
585 .height = 480,
586
587 .xres = 640,
588 .yres = 480,
589 .bpp = 16,
590
591 .regs = {
592 .lcdcon1 = 0x00000176,
593 .lcdcon2 = 0x1d77c7c2,
594 .lcdcon3 = 0x013a7f13,
595 .lcdcon4 = 0x00000057,
596 .lcdcon5 = 0x00014b02,
597 }
490 }, 598 },
599 {
600 .width = 640,
601 .height = 480,
602
603 .xres = 800,
604 .yres = 600,
605 .bpp = 16,
606
607 .regs = {
608 .lcdcon1 = 0x00000176,
609 .lcdcon2 = 0x1d77c7c2,
610 .lcdcon3 = 0x013a7f13,
611 .lcdcon4 = 0x00000057,
612 .lcdcon5 = 0x00014b02,
613 }
614 },
615};
491 616
492 .regs = { 617/* LCD/VGA controller */
493 .lcdcon1 = 0x00000176, 618
494 .lcdcon2 = 0x1d77c7c2, 619static struct s3c2410fb_mach_info __initdata bast_fb_info = {
495 .lcdcon3 = 0x013a7f13, 620
496 .lcdcon4 = 0x00000057, 621 .displays = bast_lcd_info,
497 .lcdcon5 = 0x00014b02, 622 .num_displays = ARRAY_SIZE(bast_lcd_info),
498 } 623 .default_display = 4,
499}; 624};
500 625
501/* Standard BAST devices */ 626/* Standard BAST devices */
@@ -552,7 +677,7 @@ static void __init bast_map_io(void)
552 677
553static void __init bast_init(void) 678static void __init bast_init(void)
554{ 679{
555 s3c24xx_fb_set_platdata(&bast_lcd_info); 680 s3c24xx_fb_set_platdata(&bast_fb_info);
556 platform_add_devices(bast_devices, ARRAY_SIZE(bast_devices)); 681 platform_add_devices(bast_devices, ARRAY_SIZE(bast_devices));
557} 682}
558 683