blob: 001a252bd514379e677edb0d247b8ac542005b28 [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 Molton908cbc12008-08-09 21:50:28 +010064static unsigned long e400_pin_config[] __initdata = {
65 /* Chip selects */
66 GPIO15_nCS_1, /* CS1 - Flash */
67 GPIO80_nCS_4, /* CS4 - TMIO */
68
69 /* Clocks */
70 GPIO12_32KHz,
71
72 /* BTUART */
73 GPIO42_BTUART_RXD,
74 GPIO43_BTUART_TXD,
75 GPIO44_BTUART_CTS,
76 GPIO45_GPIO, /* Used by TMIO for #SUSPEND */
77
78 /* wakeup */
79 GPIO0_GPIO | WAKEUP_ON_EDGE_RISE,
80};
81
Ian Molton3abcd192007-11-19 13:16:56 +010082/* Only e800 has 128MB RAM */
83static void __init eseries_fixup(struct machine_desc *desc,
Ian Molton67a6e802008-07-26 00:51:12 +010084 struct tag *tags, char **cmdline, struct meminfo *mi)
Ian Molton3abcd192007-11-19 13:16:56 +010085{
86 mi->nr_banks=1;
87 mi->bank[0].start = 0xa0000000;
88 mi->bank[0].node = 0;
89 if (machine_is_e800())
90 mi->bank[0].size = (128*1024*1024);
91 else
92 mi->bank[0].size = (64*1024*1024);
93}
94
Ian Molton28365482008-08-09 21:48:45 +010095static void __init e740_init(void)
96{
97 pxa2xx_mfp_config(ARRAY_AND_SIZE(e740_pin_config));
98}
99
Ian Molton908cbc12008-08-09 21:50:28 +0100100static void __init e400_init(void)
101{
102 pxa2xx_mfp_config(ARRAY_AND_SIZE(e400_pin_config));
103}
104
Ian Molton3abcd192007-11-19 13:16:56 +0100105/* e-series machine definitions */
106
107#ifdef CONFIG_MACH_E330
108MACHINE_START(E330, "Toshiba e330")
Ian Molton67a6e802008-07-26 00:51:12 +0100109 /* Maintainer: Ian Molton (spyro@f2s.com) */
110 .phys_io = 0x40000000,
111 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
112 .boot_params = 0xa0000100,
113 .map_io = pxa_map_io,
114 .init_irq = pxa25x_init_irq,
115 .fixup = eseries_fixup,
116 .timer = &pxa_timer,
Ian Molton3abcd192007-11-19 13:16:56 +0100117MACHINE_END
118#endif
119
Ian Moltonb3d354b2008-06-25 22:39:31 +0100120#ifdef CONFIG_MACH_E350
121MACHINE_START(E350, "Toshiba e350")
122 /* Maintainer: Ian Molton (spyro@f2s.com) */
Ian Molton67a6e802008-07-26 00:51:12 +0100123 .phys_io = 0x40000000,
124 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
125 .boot_params = 0xa0000100,
126 .map_io = pxa_map_io,
127 .init_irq = pxa25x_init_irq,
128 .fixup = eseries_fixup,
129 .timer = &pxa_timer,
Ian Moltonb3d354b2008-06-25 22:39:31 +0100130MACHINE_END
131#endif
132
Ian Molton3abcd192007-11-19 13:16:56 +0100133#ifdef CONFIG_MACH_E740
134MACHINE_START(E740, "Toshiba e740")
Ian Molton67a6e802008-07-26 00:51:12 +0100135 /* Maintainer: Ian Molton (spyro@f2s.com) */
136 .phys_io = 0x40000000,
137 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
138 .boot_params = 0xa0000100,
139 .map_io = pxa_map_io,
140 .init_irq = pxa25x_init_irq,
141 .fixup = eseries_fixup,
Ian Molton28365482008-08-09 21:48:45 +0100142 .init_machine = e740_init,
Ian Molton67a6e802008-07-26 00:51:12 +0100143 .timer = &pxa_timer,
Ian Molton3abcd192007-11-19 13:16:56 +0100144MACHINE_END
145#endif
146
147#ifdef CONFIG_MACH_E750
148MACHINE_START(E750, "Toshiba e750")
Ian Molton67a6e802008-07-26 00:51:12 +0100149 /* Maintainer: Ian Molton (spyro@f2s.com) */
150 .phys_io = 0x40000000,
151 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
152 .boot_params = 0xa0000100,
153 .map_io = pxa_map_io,
154 .init_irq = pxa25x_init_irq,
155 .fixup = eseries_fixup,
156 .timer = &pxa_timer,
Ian Molton3abcd192007-11-19 13:16:56 +0100157MACHINE_END
158#endif
159
160#ifdef CONFIG_MACH_E400
161MACHINE_START(E400, "Toshiba e400")
Ian Molton67a6e802008-07-26 00:51:12 +0100162 /* Maintainer: Ian Molton (spyro@f2s.com) */
163 .phys_io = 0x40000000,
164 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
165 .boot_params = 0xa0000100,
166 .map_io = pxa_map_io,
167 .init_irq = pxa25x_init_irq,
168 .fixup = eseries_fixup,
Ian Molton908cbc12008-08-09 21:50:28 +0100169 .init_machine = e400_init,
Ian Molton67a6e802008-07-26 00:51:12 +0100170 .timer = &pxa_timer,
Ian Molton3abcd192007-11-19 13:16:56 +0100171MACHINE_END
172#endif
173
174#ifdef CONFIG_MACH_E800
175MACHINE_START(E800, "Toshiba e800")
Ian Molton67a6e802008-07-26 00:51:12 +0100176 /* Maintainer: Ian Molton (spyro@f2s.com) */
177 .phys_io = 0x40000000,
178 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
179 .boot_params = 0xa0000100,
180 .map_io = pxa_map_io,
181 .init_irq = pxa25x_init_irq,
182 .fixup = eseries_fixup,
183 .timer = &pxa_timer,
Ian Molton3abcd192007-11-19 13:16:56 +0100184MACHINE_END
185#endif
186