|
@@ -10,18 +10,78 @@
|
|
|
*
|
|
|
*/
|
|
|
|
|
|
+#include <linux/kernel.h>
|
|
|
#include <linux/init.h>
|
|
|
|
|
|
#include <asm/setup.h>
|
|
|
#include <asm/mach/arch.h>
|
|
|
-#include <mach/hardware.h>
|
|
|
#include <asm/mach-types.h>
|
|
|
|
|
|
+#include <mach/mfp-pxa25x.h>
|
|
|
+#include <mach/hardware.h>
|
|
|
+
|
|
|
#include "generic.h"
|
|
|
|
|
|
+static unsigned long e740_pin_config[] __initdata = {
|
|
|
+ /* Chip selects */
|
|
|
+ GPIO15_nCS_1, /* CS1 - Flash */
|
|
|
+ GPIO79_nCS_3, /* CS3 - IMAGEON */
|
|
|
+ GPIO80_nCS_4, /* CS4 - TMIO */
|
|
|
+
|
|
|
+ /* Clocks */
|
|
|
+ GPIO12_32KHz,
|
|
|
+
|
|
|
+ /* BTUART */
|
|
|
+ GPIO42_BTUART_RXD,
|
|
|
+ GPIO43_BTUART_TXD,
|
|
|
+ GPIO44_BTUART_CTS,
|
|
|
+ GPIO45_GPIO, /* Used by TMIO for #SUSPEND */
|
|
|
+
|
|
|
+ /* PC Card */
|
|
|
+ GPIO8_GPIO, /* CD0 */
|
|
|
+ GPIO44_GPIO, /* CD1 */
|
|
|
+ GPIO11_GPIO, /* IRQ0 */
|
|
|
+ GPIO6_GPIO, /* IRQ1 */
|
|
|
+ GPIO27_GPIO, /* RST0 */
|
|
|
+ GPIO24_GPIO, /* RST1 */
|
|
|
+ GPIO20_GPIO, /* PWR0 */
|
|
|
+ GPIO23_GPIO, /* PWR1 */
|
|
|
+ GPIO48_nPOE,
|
|
|
+ GPIO49_nPWE,
|
|
|
+ GPIO50_nPIOR,
|
|
|
+ GPIO51_nPIOW,
|
|
|
+ GPIO52_nPCE_1,
|
|
|
+ GPIO53_nPCE_2,
|
|
|
+ GPIO54_nPSKTSEL,
|
|
|
+ GPIO55_nPREG,
|
|
|
+ GPIO56_nPWAIT,
|
|
|
+ GPIO57_nIOIS16,
|
|
|
+
|
|
|
+ /* wakeup */
|
|
|
+ GPIO0_GPIO | WAKEUP_ON_EDGE_RISE,
|
|
|
+};
|
|
|
+
|
|
|
+static unsigned long e400_pin_config[] __initdata = {
|
|
|
+ /* Chip selects */
|
|
|
+ GPIO15_nCS_1, /* CS1 - Flash */
|
|
|
+ GPIO80_nCS_4, /* CS4 - TMIO */
|
|
|
+
|
|
|
+ /* Clocks */
|
|
|
+ GPIO12_32KHz,
|
|
|
+
|
|
|
+ /* BTUART */
|
|
|
+ GPIO42_BTUART_RXD,
|
|
|
+ GPIO43_BTUART_TXD,
|
|
|
+ GPIO44_BTUART_CTS,
|
|
|
+ GPIO45_GPIO, /* Used by TMIO for #SUSPEND */
|
|
|
+
|
|
|
+ /* wakeup */
|
|
|
+ GPIO0_GPIO | WAKEUP_ON_EDGE_RISE,
|
|
|
+};
|
|
|
+
|
|
|
/* Only e800 has 128MB RAM */
|
|
|
static void __init eseries_fixup(struct machine_desc *desc,
|
|
|
- struct tag *tags, char **cmdline, struct meminfo *mi)
|
|
|
+ struct tag *tags, char **cmdline, struct meminfo *mi)
|
|
|
{
|
|
|
mi->nr_banks=1;
|
|
|
mi->bank[0].start = 0xa0000000;
|
|
@@ -32,83 +92,95 @@ static void __init eseries_fixup(struct machine_desc *desc,
|
|
|
mi->bank[0].size = (64*1024*1024);
|
|
|
}
|
|
|
|
|
|
+static void __init e740_init(void)
|
|
|
+{
|
|
|
+ pxa2xx_mfp_config(ARRAY_AND_SIZE(e740_pin_config));
|
|
|
+}
|
|
|
+
|
|
|
+static void __init e400_init(void)
|
|
|
+{
|
|
|
+ pxa2xx_mfp_config(ARRAY_AND_SIZE(e400_pin_config));
|
|
|
+}
|
|
|
+
|
|
|
/* e-series machine definitions */
|
|
|
|
|
|
#ifdef CONFIG_MACH_E330
|
|
|
MACHINE_START(E330, "Toshiba e330")
|
|
|
- /* Maintainer: Ian Molton (spyro@f2s.com) */
|
|
|
- .phys_io = 0x40000000,
|
|
|
- .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
|
|
- .boot_params = 0xa0000100,
|
|
|
- .map_io = pxa_map_io,
|
|
|
- .init_irq = pxa25x_init_irq,
|
|
|
- .fixup = eseries_fixup,
|
|
|
- .timer = &pxa_timer,
|
|
|
+ /* Maintainer: Ian Molton (spyro@f2s.com) */
|
|
|
+ .phys_io = 0x40000000,
|
|
|
+ .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
|
|
+ .boot_params = 0xa0000100,
|
|
|
+ .map_io = pxa_map_io,
|
|
|
+ .init_irq = pxa25x_init_irq,
|
|
|
+ .fixup = eseries_fixup,
|
|
|
+ .timer = &pxa_timer,
|
|
|
MACHINE_END
|
|
|
#endif
|
|
|
|
|
|
#ifdef CONFIG_MACH_E350
|
|
|
MACHINE_START(E350, "Toshiba e350")
|
|
|
/* Maintainer: Ian Molton (spyro@f2s.com) */
|
|
|
- .phys_io = 0x40000000,
|
|
|
- .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
|
|
- .boot_params = 0xa0000100,
|
|
|
- .map_io = pxa_map_io,
|
|
|
- .init_irq = pxa25x_init_irq,
|
|
|
- .fixup = eseries_fixup,
|
|
|
- .timer = &pxa_timer,
|
|
|
+ .phys_io = 0x40000000,
|
|
|
+ .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
|
|
+ .boot_params = 0xa0000100,
|
|
|
+ .map_io = pxa_map_io,
|
|
|
+ .init_irq = pxa25x_init_irq,
|
|
|
+ .fixup = eseries_fixup,
|
|
|
+ .timer = &pxa_timer,
|
|
|
MACHINE_END
|
|
|
#endif
|
|
|
|
|
|
#ifdef CONFIG_MACH_E740
|
|
|
MACHINE_START(E740, "Toshiba e740")
|
|
|
- /* Maintainer: Ian Molton (spyro@f2s.com) */
|
|
|
- .phys_io = 0x40000000,
|
|
|
- .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
|
|
- .boot_params = 0xa0000100,
|
|
|
- .map_io = pxa_map_io,
|
|
|
- .init_irq = pxa25x_init_irq,
|
|
|
- .fixup = eseries_fixup,
|
|
|
- .timer = &pxa_timer,
|
|
|
+ /* Maintainer: Ian Molton (spyro@f2s.com) */
|
|
|
+ .phys_io = 0x40000000,
|
|
|
+ .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
|
|
+ .boot_params = 0xa0000100,
|
|
|
+ .map_io = pxa_map_io,
|
|
|
+ .init_irq = pxa25x_init_irq,
|
|
|
+ .fixup = eseries_fixup,
|
|
|
+ .init_machine = e740_init,
|
|
|
+ .timer = &pxa_timer,
|
|
|
MACHINE_END
|
|
|
#endif
|
|
|
|
|
|
#ifdef CONFIG_MACH_E750
|
|
|
MACHINE_START(E750, "Toshiba e750")
|
|
|
- /* Maintainer: Ian Molton (spyro@f2s.com) */
|
|
|
- .phys_io = 0x40000000,
|
|
|
- .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
|
|
- .boot_params = 0xa0000100,
|
|
|
- .map_io = pxa_map_io,
|
|
|
- .init_irq = pxa25x_init_irq,
|
|
|
- .fixup = eseries_fixup,
|
|
|
- .timer = &pxa_timer,
|
|
|
+ /* Maintainer: Ian Molton (spyro@f2s.com) */
|
|
|
+ .phys_io = 0x40000000,
|
|
|
+ .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
|
|
+ .boot_params = 0xa0000100,
|
|
|
+ .map_io = pxa_map_io,
|
|
|
+ .init_irq = pxa25x_init_irq,
|
|
|
+ .fixup = eseries_fixup,
|
|
|
+ .timer = &pxa_timer,
|
|
|
MACHINE_END
|
|
|
#endif
|
|
|
|
|
|
#ifdef CONFIG_MACH_E400
|
|
|
MACHINE_START(E400, "Toshiba e400")
|
|
|
- /* Maintainer: Ian Molton (spyro@f2s.com) */
|
|
|
- .phys_io = 0x40000000,
|
|
|
- .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
|
|
- .boot_params = 0xa0000100,
|
|
|
- .map_io = pxa_map_io,
|
|
|
- .init_irq = pxa25x_init_irq,
|
|
|
- .fixup = eseries_fixup,
|
|
|
- .timer = &pxa_timer,
|
|
|
+ /* Maintainer: Ian Molton (spyro@f2s.com) */
|
|
|
+ .phys_io = 0x40000000,
|
|
|
+ .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
|
|
+ .boot_params = 0xa0000100,
|
|
|
+ .map_io = pxa_map_io,
|
|
|
+ .init_irq = pxa25x_init_irq,
|
|
|
+ .fixup = eseries_fixup,
|
|
|
+ .init_machine = e400_init,
|
|
|
+ .timer = &pxa_timer,
|
|
|
MACHINE_END
|
|
|
#endif
|
|
|
|
|
|
#ifdef CONFIG_MACH_E800
|
|
|
MACHINE_START(E800, "Toshiba e800")
|
|
|
- /* Maintainer: Ian Molton (spyro@f2s.com) */
|
|
|
- .phys_io = 0x40000000,
|
|
|
- .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
|
|
- .boot_params = 0xa0000100,
|
|
|
- .map_io = pxa_map_io,
|
|
|
- .init_irq = pxa25x_init_irq,
|
|
|
- .fixup = eseries_fixup,
|
|
|
- .timer = &pxa_timer,
|
|
|
+ /* Maintainer: Ian Molton (spyro@f2s.com) */
|
|
|
+ .phys_io = 0x40000000,
|
|
|
+ .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
|
|
|
+ .boot_params = 0xa0000100,
|
|
|
+ .map_io = pxa_map_io,
|
|
|
+ .init_irq = pxa25x_init_irq,
|
|
|
+ .fixup = eseries_fixup,
|
|
|
+ .timer = &pxa_timer,
|
|
|
MACHINE_END
|
|
|
#endif
|
|
|
|