diff options
author | Hirokazu Takata <takata@linux-m32r.org> | 2005-07-07 20:59:32 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-07 21:24:11 -0400 |
commit | 316240f66a64c95e373d52dc401d882d77a594ee (patch) | |
tree | 1d04cba74cd2455bb6b886ed4b85b7bbb73b8544 /arch/m32r/kernel/setup_opsput.c | |
parent | e34ac862ee6644378bfe6ea65c2e0dda4545513d (diff) |
[PATCH] m32r: framebuffer device support
This patch is for supporting Epson s1d13xxx framebuffer device for m32r. #
Sorry, a little bigger.
The Epson s1d13806 is already supported by 2.6.12 kernel, and its driver is
placed as drivers/video/s1d13xxxfb.c.
For the m32r, a header file include/asm-m32r/s1d13806.h was prepared for
several m32r target platforms. It was originally generated by an Epson
tool S1D13806CFG.EXE, and modified manually for the m32r platforms.
Signed-off-by: Hayato Fujiwara <fujiwara@linux-m32r.org>
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/m32r/kernel/setup_opsput.c')
-rw-r--r-- | arch/m32r/kernel/setup_opsput.c | 53 |
1 files changed, 50 insertions, 3 deletions
diff --git a/arch/m32r/kernel/setup_opsput.c b/arch/m32r/kernel/setup_opsput.c index 86f4cf2a86c3..f0301f58bcce 100644 --- a/arch/m32r/kernel/setup_opsput.c +++ b/arch/m32r/kernel/setup_opsput.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Setup routines for Renesas OPSPUT Board | 4 | * Setup routines for Renesas OPSPUT Board |
5 | * | 5 | * |
6 | * Copyright (c) 2002-2004 | 6 | * Copyright (c) 2002-2005 |
7 | * Hiroyuki Kondo, Hirokazu Takata, | 7 | * Hiroyuki Kondo, Hirokazu Takata, |
8 | * Hitoshi Yamamoto, Takeo Takahashi, Mamoru Sakugawa | 8 | * Hitoshi Yamamoto, Takeo Takahashi, Mamoru Sakugawa |
9 | * | 9 | * |
@@ -439,7 +439,7 @@ void __init init_IRQ(void) | |||
439 | icu_data[M32R_IRQ_INT2].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; | 439 | icu_data[M32R_IRQ_INT2].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; |
440 | enable_opsput_irq(M32R_IRQ_INT2); | 440 | enable_opsput_irq(M32R_IRQ_INT2); |
441 | 441 | ||
442 | //#if defined(CONFIG_VIDEO_M32R_AR) | 442 | #if defined(CONFIG_VIDEO_M32R_AR) |
443 | /* | 443 | /* |
444 | * INT3# is used for AR | 444 | * INT3# is used for AR |
445 | */ | 445 | */ |
@@ -449,9 +449,11 @@ void __init init_IRQ(void) | |||
449 | irq_desc[M32R_IRQ_INT3].depth = 1; | 449 | irq_desc[M32R_IRQ_INT3].depth = 1; |
450 | icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; | 450 | icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; |
451 | disable_opsput_irq(M32R_IRQ_INT3); | 451 | disable_opsput_irq(M32R_IRQ_INT3); |
452 | //#endif /* CONFIG_VIDEO_M32R_AR */ | 452 | #endif /* CONFIG_VIDEO_M32R_AR */ |
453 | } | 453 | } |
454 | 454 | ||
455 | #if defined(CONFIG_SMC91X) | ||
456 | |||
455 | #define LAN_IOSTART 0x300 | 457 | #define LAN_IOSTART 0x300 |
456 | #define LAN_IOEND 0x320 | 458 | #define LAN_IOEND 0x320 |
457 | static struct resource smc91x_resources[] = { | 459 | static struct resource smc91x_resources[] = { |
@@ -473,10 +475,55 @@ static struct platform_device smc91x_device = { | |||
473 | .num_resources = ARRAY_SIZE(smc91x_resources), | 475 | .num_resources = ARRAY_SIZE(smc91x_resources), |
474 | .resource = smc91x_resources, | 476 | .resource = smc91x_resources, |
475 | }; | 477 | }; |
478 | #endif | ||
479 | |||
480 | #if defined(CONFIG_FB_S1D13XXX) | ||
481 | |||
482 | #include <video/s1d13xxxfb.h> | ||
483 | #include <asm/s1d13806.h> | ||
484 | |||
485 | static struct s1d13xxxfb_pdata s1d13xxxfb_data = { | ||
486 | .initregs = s1d13xxxfb_initregs, | ||
487 | .initregssize = ARRAY_SIZE(s1d13xxxfb_initregs), | ||
488 | .platform_init_video = NULL, | ||
489 | #ifdef CONFIG_PM | ||
490 | .platform_suspend_video = NULL, | ||
491 | .platform_resume_video = NULL, | ||
492 | #endif | ||
493 | }; | ||
494 | |||
495 | static struct resource s1d13xxxfb_resources[] = { | ||
496 | [0] = { | ||
497 | .start = 0x10600000UL, | ||
498 | .end = 0x1073FFFFUL, | ||
499 | .flags = IORESOURCE_MEM, | ||
500 | }, | ||
501 | [1] = { | ||
502 | .start = 0x10400000UL, | ||
503 | .end = 0x104001FFUL, | ||
504 | .flags = IORESOURCE_MEM, | ||
505 | } | ||
506 | }; | ||
507 | |||
508 | static struct platform_device s1d13xxxfb_device = { | ||
509 | .name = S1D_DEVICENAME, | ||
510 | .id = 0, | ||
511 | .dev = { | ||
512 | .platform_data = &s1d13xxxfb_data, | ||
513 | }, | ||
514 | .num_resources = ARRAY_SIZE(s1d13xxxfb_resources), | ||
515 | .resource = s1d13xxxfb_resources, | ||
516 | }; | ||
517 | #endif | ||
476 | 518 | ||
477 | static int __init platform_init(void) | 519 | static int __init platform_init(void) |
478 | { | 520 | { |
521 | #if defined(CONFIG_SMC91X) | ||
479 | platform_device_register(&smc91x_device); | 522 | platform_device_register(&smc91x_device); |
523 | #endif | ||
524 | #if defined(CONFIG_FB_S1D13XXX) | ||
525 | platform_device_register(&s1d13xxxfb_device); | ||
526 | #endif | ||
480 | return 0; | 527 | return 0; |
481 | } | 528 | } |
482 | arch_initcall(platform_init); | 529 | arch_initcall(platform_init); |