diff options
author | Krzysztof Helt <krzysztof.h1@wp.pl> | 2007-10-16 04:28:56 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 12:43:16 -0400 |
commit | 09fe75f6f934597f765748342ca6fb378ee7ecdb (patch) | |
tree | 55a3ab7bf52400be136ec533cd5ebda4336fcd07 /arch/arm/mach-s3c2410/mach-bast.c | |
parent | 110c1fa75463c4f327e9fc491e9a27e938800d96 (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.c | 177 |
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 | ||
470 | static struct s3c2410fb_mach_info __initdata bast_lcd_info = { | 470 | static 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, | 619 | static 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 | ||
553 | static void __init bast_init(void) | 678 | static 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 | ||