aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorHirokazu Takata <takata@linux-m32r.org>2005-07-07 20:59:32 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-07-07 21:24:11 -0400
commit316240f66a64c95e373d52dc401d882d77a594ee (patch)
tree1d04cba74cd2455bb6b886ed4b85b7bbb73b8544 /arch
parente34ac862ee6644378bfe6ea65c2e0dda4545513d (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')
-rw-r--r--arch/m32r/kernel/setup_m32700ut.c55
-rw-r--r--arch/m32r/kernel/setup_mappi.c51
-rw-r--r--arch/m32r/kernel/setup_mappi2.c4
-rw-r--r--arch/m32r/kernel/setup_mappi3.c52
-rw-r--r--arch/m32r/kernel/setup_oaks32r.c5
-rw-r--r--arch/m32r/kernel/setup_opsput.c53
6 files changed, 204 insertions, 16 deletions
diff --git a/arch/m32r/kernel/setup_m32700ut.c b/arch/m32r/kernel/setup_m32700ut.c
index b014e2c1e524..a146b24a556b 100644
--- a/arch/m32r/kernel/setup_m32700ut.c
+++ b/arch/m32r/kernel/setup_m32700ut.c
@@ -3,8 +3,8 @@
3 * 3 *
4 * Setup routines for Renesas M32700UT Board 4 * Setup routines for Renesas M32700UT Board
5 * 5 *
6 * Copyright (c) 2002 Hiroyuki Kondo, Hirokazu Takata, 6 * Copyright (c) 2002-2005 Hiroyuki Kondo, Hirokazu Takata,
7 * Hitoshi Yamamoto, Takeo Takahashi 7 * Hitoshi Yamamoto, Takeo Takahashi
8 * 8 *
9 * This file is subject to the terms and conditions of the GNU General 9 * This file is subject to the terms and conditions of the GNU General
10 * Public License. See the file "COPYING" in the main directory of this 10 * Public License. See the file "COPYING" in the main directory of this
@@ -435,7 +435,7 @@ void __init init_IRQ(void)
435 icu_data[M32R_IRQ_INT2].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; 435 icu_data[M32R_IRQ_INT2].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01;
436 enable_m32700ut_irq(M32R_IRQ_INT2); 436 enable_m32700ut_irq(M32R_IRQ_INT2);
437 437
438//#if defined(CONFIG_VIDEO_M32R_AR) 438#if defined(CONFIG_VIDEO_M32R_AR)
439 /* 439 /*
440 * INT3# is used for AR 440 * INT3# is used for AR
441 */ 441 */
@@ -445,9 +445,11 @@ void __init init_IRQ(void)
445 irq_desc[M32R_IRQ_INT3].depth = 1; 445 irq_desc[M32R_IRQ_INT3].depth = 1;
446 icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; 446 icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10;
447 disable_m32700ut_irq(M32R_IRQ_INT3); 447 disable_m32700ut_irq(M32R_IRQ_INT3);
448//#endif /* CONFIG_VIDEO_M32R_AR */ 448#endif /* CONFIG_VIDEO_M32R_AR */
449} 449}
450 450
451#if defined(CONFIG_SMC91X)
452
451#define LAN_IOSTART 0x300 453#define LAN_IOSTART 0x300
452#define LAN_IOEND 0x320 454#define LAN_IOEND 0x320
453static struct resource smc91x_resources[] = { 455static struct resource smc91x_resources[] = {
@@ -469,10 +471,55 @@ static struct platform_device smc91x_device = {
469 .num_resources = ARRAY_SIZE(smc91x_resources), 471 .num_resources = ARRAY_SIZE(smc91x_resources),
470 .resource = smc91x_resources, 472 .resource = smc91x_resources,
471}; 473};
474#endif
475
476#if defined(CONFIG_FB_S1D13XXX)
477
478#include <video/s1d13xxxfb.h>
479#include <asm/s1d13806.h>
480
481static struct s1d13xxxfb_pdata s1d13xxxfb_data = {
482 .initregs = s1d13xxxfb_initregs,
483 .initregssize = ARRAY_SIZE(s1d13xxxfb_initregs),
484 .platform_init_video = NULL,
485#ifdef CONFIG_PM
486 .platform_suspend_video = NULL,
487 .platform_resume_video = NULL,
488#endif
489};
490
491static struct resource s1d13xxxfb_resources[] = {
492 [0] = {
493 .start = 0x10600000UL,
494 .end = 0x1073FFFFUL,
495 .flags = IORESOURCE_MEM,
496 },
497 [1] = {
498 .start = 0x10400000UL,
499 .end = 0x104001FFUL,
500 .flags = IORESOURCE_MEM,
501 }
502};
503
504static struct platform_device s1d13xxxfb_device = {
505 .name = S1D_DEVICENAME,
506 .id = 0,
507 .dev = {
508 .platform_data = &s1d13xxxfb_data,
509 },
510 .num_resources = ARRAY_SIZE(s1d13xxxfb_resources),
511 .resource = s1d13xxxfb_resources,
512};
513#endif
472 514
473static int __init platform_init(void) 515static int __init platform_init(void)
474{ 516{
517#if defined(CONFIG_SMC91X)
475 platform_device_register(&smc91x_device); 518 platform_device_register(&smc91x_device);
519#endif
520#if defined(CONFIG_FB_S1D13XXX)
521 platform_device_register(&s1d13xxxfb_device);
522#endif
476 return 0; 523 return 0;
477} 524}
478arch_initcall(platform_init); 525arch_initcall(platform_init);
diff --git a/arch/m32r/kernel/setup_mappi.c b/arch/m32r/kernel/setup_mappi.c
index aaf8e569b930..4e709809efc5 100644
--- a/arch/m32r/kernel/setup_mappi.c
+++ b/arch/m32r/kernel/setup_mappi.c
@@ -3,14 +3,15 @@
3 * 3 *
4 * Setup routines for Renesas MAPPI Board 4 * Setup routines for Renesas MAPPI Board
5 * 5 *
6 * Copyright (c) 2001, 2002 Hiroyuki Kondo, Hirokazu Takata, 6 * Copyright (c) 2001-2005 Hiroyuki Kondo, Hirokazu Takata,
7 * Hitoshi Yamamoto 7 * Hitoshi Yamamoto
8 */ 8 */
9 9
10#include <linux/config.h> 10#include <linux/config.h>
11#include <linux/irq.h> 11#include <linux/irq.h>
12#include <linux/kernel.h> 12#include <linux/kernel.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/device.h>
14 15
15#include <asm/system.h> 16#include <asm/system.h>
16#include <asm/m32r.h> 17#include <asm/m32r.h>
@@ -158,3 +159,49 @@ void __init init_IRQ(void)
158 disable_mappi_irq(M32R_IRQ_INT2); 159 disable_mappi_irq(M32R_IRQ_INT2);
159#endif /* CONFIG_M32RPCC */ 160#endif /* CONFIG_M32RPCC */
160} 161}
162
163#if defined(CONFIG_FB_S1D13XXX)
164
165#include <video/s1d13xxxfb.h>
166#include <asm/s1d13806.h>
167
168static struct s1d13xxxfb_pdata s1d13xxxfb_data = {
169 .initregs = s1d13xxxfb_initregs,
170 .initregssize = ARRAY_SIZE(s1d13xxxfb_initregs),
171 .platform_init_video = NULL,
172#ifdef CONFIG_PM
173 .platform_suspend_video = NULL,
174 .platform_resume_video = NULL,
175#endif
176};
177
178static struct resource s1d13xxxfb_resources[] = {
179 [0] = {
180 .start = 0x10200000UL,
181 .end = 0x1033FFFFUL,
182 .flags = IORESOURCE_MEM,
183 },
184 [1] = {
185 .start = 0x10000000UL,
186 .end = 0x100001FFUL,
187 .flags = IORESOURCE_MEM,
188 }
189};
190
191static struct platform_device s1d13xxxfb_device = {
192 .name = S1D_DEVICENAME,
193 .id = 0,
194 .dev = {
195 .platform_data = &s1d13xxxfb_data,
196 },
197 .num_resources = ARRAY_SIZE(s1d13xxxfb_resources),
198 .resource = s1d13xxxfb_resources,
199};
200
201static int __init platform_init(void)
202{
203 platform_device_register(&s1d13xxxfb_device);
204 return 0;
205}
206arch_initcall(platform_init);
207#endif
diff --git a/arch/m32r/kernel/setup_mappi2.c b/arch/m32r/kernel/setup_mappi2.c
index 38d5e9a41427..a1d801598aa4 100644
--- a/arch/m32r/kernel/setup_mappi2.c
+++ b/arch/m32r/kernel/setup_mappi2.c
@@ -3,8 +3,8 @@
3 * 3 *
4 * Setup routines for Renesas MAPPI-II(M3A-ZA36) Board 4 * Setup routines for Renesas MAPPI-II(M3A-ZA36) Board
5 * 5 *
6 * Copyright (c) 2001, 2002 Hiroyuki Kondo, Hirokazu Takata, 6 * Copyright (c) 2001-2005 Hiroyuki Kondo, Hirokazu Takata,
7 * Hitoshi Yamamoto, Mamoru Sakugawa 7 * Hitoshi Yamamoto, Mamoru Sakugawa
8 */ 8 */
9 9
10#include <linux/config.h> 10#include <linux/config.h>
diff --git a/arch/m32r/kernel/setup_mappi3.c b/arch/m32r/kernel/setup_mappi3.c
index 3d60a85aaec5..a76412e883e8 100644
--- a/arch/m32r/kernel/setup_mappi3.c
+++ b/arch/m32r/kernel/setup_mappi3.c
@@ -3,8 +3,8 @@
3 * 3 *
4 * Setup routines for Renesas MAPPI-III(M3A-2170) Board 4 * Setup routines for Renesas MAPPI-III(M3A-2170) Board
5 * 5 *
6 * Copyright (c) 2001-2005 Hiroyuki Kondo, Hirokazu Takata, 6 * Copyright (c) 2001-2005 Hiroyuki Kondo, Hirokazu Takata,
7 * Hitoshi Yamamoto, Mamoru Sakugawa 7 * Hitoshi Yamamoto, Mamoru Sakugawa
8 */ 8 */
9 9
10#include <linux/config.h> 10#include <linux/config.h>
@@ -178,6 +178,8 @@ void __init init_IRQ(void)
178#endif /* CONFIG_M32R_CFC */ 178#endif /* CONFIG_M32R_CFC */
179} 179}
180 180
181#if defined(CONFIG_SMC91X)
182
181#define LAN_IOSTART 0x300 183#define LAN_IOSTART 0x300
182#define LAN_IOEND 0x320 184#define LAN_IOEND 0x320
183static struct resource smc91x_resources[] = { 185static struct resource smc91x_resources[] = {
@@ -200,9 +202,55 @@ static struct platform_device smc91x_device = {
200 .resource = smc91x_resources, 202 .resource = smc91x_resources,
201}; 203};
202 204
205#endif
206
207#if defined(CONFIG_FB_S1D13XXX)
208
209#include <video/s1d13xxxfb.h>
210#include <asm/s1d13806.h>
211
212static struct s1d13xxxfb_pdata s1d13xxxfb_data = {
213 .initregs = s1d13xxxfb_initregs,
214 .initregssize = ARRAY_SIZE(s1d13xxxfb_initregs),
215 .platform_init_video = NULL,
216#ifdef CONFIG_PM
217 .platform_suspend_video = NULL,
218 .platform_resume_video = NULL,
219#endif
220};
221
222static struct resource s1d13xxxfb_resources[] = {
223 [0] = {
224 .start = 0x1d600000UL,
225 .end = 0x1d73FFFFUL,
226 .flags = IORESOURCE_MEM,
227 },
228 [1] = {
229 .start = 0x1d400000UL,
230 .end = 0x1d4001FFUL,
231 .flags = IORESOURCE_MEM,
232 }
233};
234
235static struct platform_device s1d13xxxfb_device = {
236 .name = S1D_DEVICENAME,
237 .id = 0,
238 .dev = {
239 .platform_data = &s1d13xxxfb_data,
240 },
241 .num_resources = ARRAY_SIZE(s1d13xxxfb_resources),
242 .resource = s1d13xxxfb_resources,
243};
244#endif
245
203static int __init platform_init(void) 246static int __init platform_init(void)
204{ 247{
248#if defined(CONFIG_SMC91X)
205 platform_device_register(&smc91x_device); 249 platform_device_register(&smc91x_device);
250#endif
251#if defined(CONFIG_FB_S1D13XXX)
252 platform_device_register(&s1d13xxxfb_device);
253#endif
206 return 0; 254 return 0;
207} 255}
208arch_initcall(platform_init); 256arch_initcall(platform_init);
diff --git a/arch/m32r/kernel/setup_oaks32r.c b/arch/m32r/kernel/setup_oaks32r.c
index d656640badc9..45add5b76f19 100644
--- a/arch/m32r/kernel/setup_oaks32r.c
+++ b/arch/m32r/kernel/setup_oaks32r.c
@@ -3,8 +3,8 @@
3 * 3 *
4 * Setup routines for OAKS32R Board 4 * Setup routines for OAKS32R Board
5 * 5 *
6 * Copyright (c) 2002-2004 Hiroyuki Kondo, Hirokazu Takata, 6 * Copyright (c) 2002-2005 Hiroyuki Kondo, Hirokazu Takata,
7 * Hitoshi Yamamoto, Mamoru Sakugawa 7 * Hitoshi Yamamoto, Mamoru Sakugawa
8 */ 8 */
9 9
10#include <linux/config.h> 10#include <linux/config.h>
@@ -139,5 +139,4 @@ void __init init_IRQ(void)
139 icu_data[M32R_IRQ_SIO1_S].icucr = 0; 139 icu_data[M32R_IRQ_SIO1_S].icucr = 0;
140 disable_oaks32r_irq(M32R_IRQ_SIO1_S); 140 disable_oaks32r_irq(M32R_IRQ_SIO1_S);
141#endif /* CONFIG_SERIAL_M32R_SIO */ 141#endif /* CONFIG_SERIAL_M32R_SIO */
142
143} 142}
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
457static struct resource smc91x_resources[] = { 459static 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
485static 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
495static 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
508static 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
477static int __init platform_init(void) 519static 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}
482arch_initcall(platform_init); 529arch_initcall(platform_init);