sync hh.org
[hh.org.git] / arch / arm / mach-pxa / eseries / eseries.c
blobee65e8ed921793eadd381dd208682bfe65aec7ab
1 /*
2 * Hardware definitions for the Toshiba eseries PDAs
4 * Copyright (c) Ian Molton 2003
6 */
8 #include <linux/kernel.h>
9 #include <linux/init.h>
10 #include <linux/device.h>
12 #include <asm/setup.h>
13 #include <asm/memory.h>
14 #include <asm/mach/arch.h>
15 #include <asm/mach-types.h>
16 #include <asm/arch/hardware.h>
17 #include <asm/mach/map.h>
18 #include <asm/domain.h>
19 #include <asm/arch/pxa-dmabounce.h>
21 #include "../generic.h"
23 #include <asm/arch/eseries-irq.h>
25 #define DEBUG
27 static void __init eseries_init_irq( void )
29 /* Initialize standard IRQs */
30 pxa_init_irq();
31 // if(machine_is_e800())
32 // angelx_init_irq(PXA_CS5_PHYS);
35 #ifdef DEBUG
36 /* A debug mapping giving access to the screen RAM */
37 static struct map_desc eseries_io_desc[] __initdata = {
38 /* virtual physical length domain */
39 { 0xf0000000, 0x0c100000, 0x02000000, DOMAIN_IO}
41 #endif
43 /* for dmabounce */
44 static int eseries_dma_needs_bounce(struct device *dev, dma_addr_t addr, size_t size) {
45 return (addr >= 0x10000000 + 0x10000);
48 static void __init eseries_map_io(void)
50 /* Initialize standard IO maps */
51 pxa_map_io();
53 #ifdef DEBUG
54 iotable_init(eseries_io_desc, ARRAY_SIZE(eseries_io_desc));
55 #endif
57 pxa_set_dma_needs_bounce(eseries_dma_needs_bounce);
60 static void __init eseries_fixup(struct machine_desc *desc,
61 struct tag *tags, char **cmdline, struct meminfo *mi)
63 mi->nr_banks=1;
64 mi->bank[0].start = 0xa0000000;
65 mi->bank[0].node = 0;
66 if (machine_is_e800())
67 mi->bank[0].size = (128*1024*1024);
68 else
69 mi->bank[0].size = (64*1024*1024);
72 #ifdef CONFIG_MACH_E330
73 MACHINE_START(E330, "Toshiba e330")
74 /* Maintainer: Ian Molton (spyro@f2s.com) */
75 .phys_io = 0x40000000,
76 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
77 .boot_params = 0xa0000100,
78 .map_io = eseries_map_io,
79 .init_irq = eseries_init_irq,
80 .fixup = eseries_fixup,
81 .timer = &pxa_timer,
82 MACHINE_END
83 #endif
85 #ifdef CONFIG_MACH_E740
86 MACHINE_START(E740, "Toshiba e740")
87 /* Maintainer: Ian Molton (spyro@f2s.com) */
88 .phys_io = 0x40000000,
89 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
90 .boot_params = 0xa0000100,
91 .map_io = eseries_map_io,
92 .init_irq = eseries_init_irq,
93 .fixup = eseries_fixup,
94 .timer = &pxa_timer,
95 MACHINE_END
96 #endif
98 #ifdef CONFIG_MACH_E750
99 MACHINE_START(E750, "Toshiba e750")
100 /* Maintainer: Ian Molton (spyro@f2s.com) */
101 .phys_io = 0x40000000,
102 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
103 .boot_params = 0xa0000100,
104 .map_io = eseries_map_io,
105 .init_irq = eseries_init_irq,
106 .fixup = eseries_fixup,
107 .timer = &pxa_timer,
108 MACHINE_END
109 #endif
111 #ifdef CONFIG_MACH_E400
112 MACHINE_START(E400, "Toshiba e400")
113 /* Maintainer: Ian Molton (spyro@f2s.com) */
114 .phys_io = 0x40000000,
115 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
116 .boot_params = 0xa0000100,
117 .map_io = eseries_map_io,
118 .init_irq = eseries_init_irq,
119 .fixup = eseries_fixup,
120 .timer = &pxa_timer,
121 MACHINE_END
122 #endif
124 #ifdef CONFIG_MACH_E800
125 MACHINE_START(E800, "Toshiba e800")
126 /* Maintainer: Ian Molton (spyro@f2s.com) */
127 .phys_io = 0x40000000,
128 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
129 .boot_params = 0xa0000100,
130 .map_io = eseries_map_io,
131 .init_irq = eseries_init_irq,
132 .fixup = eseries_fixup,
133 .timer = &pxa_timer,
134 MACHINE_END
135 #endif