diff options
Diffstat (limited to 'arch/arm/mach-sa1100/shannon.c')
-rw-r--r-- | arch/arm/mach-sa1100/shannon.c | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/arch/arm/mach-sa1100/shannon.c b/arch/arm/mach-sa1100/shannon.c index 318b2b766a0..ca8bf59b904 100644 --- a/arch/arm/mach-sa1100/shannon.c +++ b/arch/arm/mach-sa1100/shannon.c | |||
@@ -9,6 +9,8 @@ | |||
9 | #include <linux/mtd/mtd.h> | 9 | #include <linux/mtd/mtd.h> |
10 | #include <linux/mtd/partitions.h> | 10 | #include <linux/mtd/partitions.h> |
11 | 11 | ||
12 | #include <video/sa1100fb.h> | ||
13 | |||
12 | #include <mach/hardware.h> | 14 | #include <mach/hardware.h> |
13 | #include <asm/mach-types.h> | 15 | #include <asm/mach-types.h> |
14 | #include <asm/setup.h> | 16 | #include <asm/setup.h> |
@@ -19,6 +21,7 @@ | |||
19 | #include <asm/mach/serial_sa1100.h> | 21 | #include <asm/mach/serial_sa1100.h> |
20 | #include <mach/mcp.h> | 22 | #include <mach/mcp.h> |
21 | #include <mach/shannon.h> | 23 | #include <mach/shannon.h> |
24 | #include <mach/irqs.h> | ||
22 | 25 | ||
23 | #include "generic.h" | 26 | #include "generic.h" |
24 | 27 | ||
@@ -46,19 +49,32 @@ static struct flash_platform_data shannon_flash_data = { | |||
46 | .nr_parts = ARRAY_SIZE(shannon_partitions), | 49 | .nr_parts = ARRAY_SIZE(shannon_partitions), |
47 | }; | 50 | }; |
48 | 51 | ||
49 | static struct resource shannon_flash_resource = { | 52 | static struct resource shannon_flash_resource = |
50 | .start = SA1100_CS0_PHYS, | 53 | DEFINE_RES_MEM(SA1100_CS0_PHYS, SZ_4M); |
51 | .end = SA1100_CS0_PHYS + SZ_4M - 1, | ||
52 | .flags = IORESOURCE_MEM, | ||
53 | }; | ||
54 | 54 | ||
55 | static struct mcp_plat_data shannon_mcp_data = { | 55 | static struct mcp_plat_data shannon_mcp_data = { |
56 | .mccr0 = MCCR0_ADM, | 56 | .mccr0 = MCCR0_ADM, |
57 | .sclk_rate = 11981000, | 57 | .sclk_rate = 11981000, |
58 | }; | 58 | }; |
59 | 59 | ||
60 | static struct sa1100fb_mach_info shannon_lcd_info = { | ||
61 | .pixclock = 152500, .bpp = 8, | ||
62 | .xres = 640, .yres = 480, | ||
63 | |||
64 | .hsync_len = 4, .vsync_len = 3, | ||
65 | .left_margin = 2, .upper_margin = 0, | ||
66 | .right_margin = 1, .lower_margin = 0, | ||
67 | |||
68 | .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, | ||
69 | |||
70 | .lccr0 = LCCR0_Color | LCCR0_Dual | LCCR0_Pas, | ||
71 | .lccr3 = LCCR3_ACBsDiv(512), | ||
72 | }; | ||
73 | |||
60 | static void __init shannon_init(void) | 74 | static void __init shannon_init(void) |
61 | { | 75 | { |
76 | sa11x0_ppc_configure_mcp(); | ||
77 | sa11x0_register_lcd(&shannon_lcd_info); | ||
62 | sa11x0_register_mtd(&shannon_flash_data, &shannon_flash_resource, 1); | 78 | sa11x0_register_mtd(&shannon_flash_data, &shannon_flash_resource, 1); |
63 | sa11x0_register_mcp(&shannon_mcp_data); | 79 | sa11x0_register_mcp(&shannon_mcp_data); |
64 | } | 80 | } |
@@ -84,6 +100,7 @@ static void __init shannon_map_io(void) | |||
84 | MACHINE_START(SHANNON, "Shannon (AKA: Tuxscreen)") | 100 | MACHINE_START(SHANNON, "Shannon (AKA: Tuxscreen)") |
85 | .atag_offset = 0x100, | 101 | .atag_offset = 0x100, |
86 | .map_io = shannon_map_io, | 102 | .map_io = shannon_map_io, |
103 | .nr_irqs = SA1100_NR_IRQS, | ||
87 | .init_irq = sa1100_init_irq, | 104 | .init_irq = sa1100_init_irq, |
88 | .timer = &sa1100_timer, | 105 | .timer = &sa1100_timer, |
89 | .init_machine = shannon_init, | 106 | .init_machine = shannon_init, |