blob: d27009992510859a8b05dff6d089c7f9a9ca8e60 [file] [log] [blame]
Ian Molton3abcd192007-11-19 13:16:56 +01001/*
2 * Hardware definitions for the Toshiba eseries PDAs
3 *
4 * Copyright (c) 2003 Ian Molton <spyro@f2s.com>
5 *
6 * This file is licensed under
7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express
9 * or implied.
10 *
11 */
12
Ian Molton28365482008-08-09 21:48:45 +010013#include <linux/kernel.h>
Ian Molton3abcd192007-11-19 13:16:56 +010014#include <linux/init.h>
15
16#include <asm/setup.h>
17#include <asm/mach/arch.h>
Ian Molton3abcd192007-11-19 13:16:56 +010018#include <asm/mach-types.h>
19
Ian Molton28365482008-08-09 21:48:45 +010020#include <mach/mfp-pxa25x.h>
21#include <mach/hardware.h>
22
Ian Molton877e03d2008-06-25 22:22:49 +010023#include "generic.h"
Ian Molton3abcd192007-11-19 13:16:56 +010024
Ian Molton28365482008-08-09 21:48:45 +010025static unsigned long e740_pin_config[] __initdata = {
26 /* Chip selects */
27 GPIO15_nCS_1, /* CS1 - Flash */
28 GPIO79_nCS_3, /* CS3 - IMAGEON */
29 GPIO80_nCS_4, /* CS4 - TMIO */
30
31 /* Clocks */
32 GPIO12_32KHz,
33
34 /* BTUART */
35 GPIO42_BTUART_RXD,
36 GPIO43_BTUART_TXD,
37 GPIO44_BTUART_CTS,
38 GPIO45_GPIO, /* Used by TMIO for #SUSPEND */
39
40 /* PC Card */
41 GPIO8_GPIO, /* CD0 */
42 GPIO44_GPIO, /* CD1 */
43 GPIO11_GPIO, /* IRQ0 */
44 GPIO6_GPIO, /* IRQ1 */
45 GPIO27_GPIO, /* RST0 */
46 GPIO24_GPIO, /* RST1 */
47 GPIO20_GPIO, /* PWR0 */
48 GPIO23_GPIO, /* PWR1 */
49 GPIO48_nPOE,
50 GPIO49_nPWE,
51 GPIO50_nPIOR,
52 GPIO51_nPIOW,
53 GPIO52_nPCE_1,
54 GPIO53_nPCE_2,
55 GPIO54_nPSKTSEL,
56 GPIO55_nPREG,
57 GPIO56_nPWAIT,
58 GPIO57_nIOIS16,
59
60 /* wakeup */
61 GPIO0_GPIO | WAKEUP_ON_EDGE_RISE,
62};
63
Ian Molton3abcd192007-11-19 13:16:56 +010064/* Only e800 has 128MB RAM */
65static void __init eseries_fixup(struct machine_desc *desc,
Ian Molton67a6e802008-07-26 00:51:12 +010066 struct tag *tags, char **cmdline, struct meminfo *mi)
Ian Molton3abcd192007-11-19 13:16:56 +010067{
68 mi->nr_banks=1;
69 mi->bank[0].start = 0xa0000000;
70 mi->bank[0].node = 0;
71 if (machine_is_e800())
72 mi->bank[0].size = (128*1024*1024);
73 else
74 mi->bank[0].size = (64*1024*1024);
75}
76
Ian Molton28365482008-08-09 21:48:45 +010077static void __init e740_init(void)
78{
79 pxa2xx_mfp_config(ARRAY_AND_SIZE(e740_pin_config));
80}
81
Ian Molton3abcd192007-11-19 13:16:56 +010082/* e-series machine definitions */
83
84#ifdef CONFIG_MACH_E330
85MACHINE_START(E330, "Toshiba e330")
Ian Molton67a6e802008-07-26 00:51:12 +010086 /* Maintainer: Ian Molton (spyro@f2s.com) */
87 .phys_io = 0x40000000,
88 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
89 .boot_params = 0xa0000100,
90 .map_io = pxa_map_io,
91 .init_irq = pxa25x_init_irq,
92 .fixup = eseries_fixup,
93 .timer = &pxa_timer,
Ian Molton3abcd192007-11-19 13:16:56 +010094MACHINE_END
95#endif
96
Ian Moltonb3d354b2008-06-25 22:39:31 +010097#ifdef CONFIG_MACH_E350
98MACHINE_START(E350, "Toshiba e350")
99 /* Maintainer: Ian Molton (spyro@f2s.com) */
Ian Molton67a6e802008-07-26 00:51:12 +0100100 .phys_io = 0x40000000,
101 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
102 .boot_params = 0xa0000100,
103 .map_io = pxa_map_io,
104 .init_irq = pxa25x_init_irq,
105 .fixup = eseries_fixup,
106 .timer = &pxa_timer,
Ian Moltonb3d354b2008-06-25 22:39:31 +0100107MACHINE_END
108#endif
109
Ian Molton3abcd192007-11-19 13:16:56 +0100110#ifdef CONFIG_MACH_E740
111MACHINE_START(E740, "Toshiba e740")
Ian Molton67a6e802008-07-26 00:51:12 +0100112 /* Maintainer: Ian Molton (spyro@f2s.com) */
113 .phys_io = 0x40000000,
114 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
115 .boot_params = 0xa0000100,
116 .map_io = pxa_map_io,
117 .init_irq = pxa25x_init_irq,
118 .fixup = eseries_fixup,
Ian Molton28365482008-08-09 21:48:45 +0100119 .init_machine = e740_init,
Ian Molton67a6e802008-07-26 00:51:12 +0100120 .timer = &pxa_timer,
Ian Molton3abcd192007-11-19 13:16:56 +0100121MACHINE_END
122#endif
123
124#ifdef CONFIG_MACH_E750
125MACHINE_START(E750, "Toshiba e750")
Ian Molton67a6e802008-07-26 00:51:12 +0100126 /* 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 = pxa_map_io,
131 .init_irq = pxa25x_init_irq,
132 .fixup = eseries_fixup,
133 .timer = &pxa_timer,
Ian Molton3abcd192007-11-19 13:16:56 +0100134MACHINE_END
135#endif
136
137#ifdef CONFIG_MACH_E400
138MACHINE_START(E400, "Toshiba e400")
Ian Molton67a6e802008-07-26 00:51:12 +0100139 /* Maintainer: Ian Molton (spyro@f2s.com) */
140 .phys_io = 0x40000000,
141 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
142 .boot_params = 0xa0000100,
143 .map_io = pxa_map_io,
144 .init_irq = pxa25x_init_irq,
145 .fixup = eseries_fixup,
146 .timer = &pxa_timer,
Ian Molton3abcd192007-11-19 13:16:56 +0100147MACHINE_END
148#endif
149
150#ifdef CONFIG_MACH_E800
151MACHINE_START(E800, "Toshiba e800")
Ian Molton67a6e802008-07-26 00:51:12 +0100152 /* Maintainer: Ian Molton (spyro@f2s.com) */
153 .phys_io = 0x40000000,
154 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
155 .boot_params = 0xa0000100,
156 .map_io = pxa_map_io,
157 .init_irq = pxa25x_init_irq,
158 .fixup = eseries_fixup,
159 .timer = &pxa_timer,
Ian Molton3abcd192007-11-19 13:16:56 +0100160MACHINE_END
161#endif
162