From f353a0732da03e2d9051347a46c5de325d1b5edc Mon Sep 17 00:00:00 2001 From: Ian Molton Date: Fri, 26 Sep 2008 13:38:59 +0100 Subject: [PATCH] --- yaml --- r: 123719 b: refs/heads/master c: b1ae1b7b274f67c149bee4731e38a7516c723de4 h: refs/heads/master i: 123717: 5d19e3de4a9c9cbcecc9ffa63daf215396c89e79 123715: 7360df99f6bc66d8b57a12e7e1745091a4962a38 123711: a82f9731c741e12650659a7021ad88716710cbc7 v: v3 --- [refs] | 2 +- trunk/arch/arm/mach-pxa/e330.c | 36 ++++++++- trunk/arch/arm/mach-pxa/e350.c | 36 ++++++++- trunk/arch/arm/mach-pxa/e400.c | 65 ++++++++++++++- trunk/arch/arm/mach-pxa/e740.c | 36 ++++++++- trunk/arch/arm/mach-pxa/e750.c | 33 +++++++- trunk/arch/arm/mach-pxa/e800.c | 30 +++++++ trunk/arch/arm/mach-pxa/eseries.c | 81 +++++++++++++++++++ trunk/arch/arm/mach-pxa/eseries.h | 9 +++ .../arm/mach-pxa/include/mach/eseries-gpio.h | 2 + 10 files changed, 321 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index 8738fdd08551..cf21d6438f36 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f4ad9a9624fafec4647e7e45469e0446586f81fb +refs/heads/master: b1ae1b7b274f67c149bee4731e38a7516c723de4 diff --git a/trunk/arch/arm/mach-pxa/e330.c b/trunk/arch/arm/mach-pxa/e330.c index d488eded2058..1bd7f740427c 100644 --- a/trunk/arch/arm/mach-pxa/e330.c +++ b/trunk/arch/arm/mach-pxa/e330.c @@ -1,5 +1,5 @@ /* - * Hardware definitions for the Toshiba eseries PDAs + * Hardware definitions for the Toshiba e330 PDAs * * Copyright (c) 2003 Ian Molton * @@ -12,6 +12,9 @@ #include #include +#include +#include +#include #include #include @@ -19,13 +22,44 @@ #include #include +#include +#include #include #include "generic.h" #include "eseries.h" +#include "clock.h" + +/* -------------------- e330 tc6387xb parameters -------------------- */ + +static struct tc6387xb_platform_data e330_tc6387xb_info = { + .enable = &eseries_tmio_enable, + .disable = &eseries_tmio_disable, + .suspend = &eseries_tmio_suspend, + .resume = &eseries_tmio_resume, +}; + +static struct platform_device e330_tc6387xb_device = { + .name = "tc6387xb", + .id = -1, + .dev = { + .platform_data = &e330_tc6387xb_info, + }, + .num_resources = 2, + .resource = eseries_tmio_resources, +}; + +/* --------------------------------------------------------------- */ + +static struct platform_device *devices[] __initdata = { + &e330_tc6387xb_device, +}; static void __init e330_init(void) { + eseries_register_clks(); + eseries_get_tmio_gpios(); + platform_add_devices(devices, ARRAY_SIZE(devices)); pxa_set_udc_info(&e7xx_udc_mach_info); } diff --git a/trunk/arch/arm/mach-pxa/e350.c b/trunk/arch/arm/mach-pxa/e350.c index 8ecbc5479828..251129391d7d 100644 --- a/trunk/arch/arm/mach-pxa/e350.c +++ b/trunk/arch/arm/mach-pxa/e350.c @@ -1,5 +1,5 @@ /* - * Hardware definitions for the Toshiba eseries PDAs + * Hardware definitions for the Toshiba e350 PDAs * * Copyright (c) 2003 Ian Molton * @@ -12,20 +12,54 @@ #include #include +#include +#include +#include #include #include #include #include +#include #include +#include #include #include "generic.h" #include "eseries.h" +#include "clock.h" + +/* -------------------- e350 t7l66xb parameters -------------------- */ + +static struct t7l66xb_platform_data e350_t7l66xb_info = { + .irq_base = IRQ_BOARD_START, + .enable = &eseries_tmio_enable, + .suspend = &eseries_tmio_suspend, + .resume = &eseries_tmio_resume, +}; + +static struct platform_device e350_t7l66xb_device = { + .name = "t7l66xb", + .id = -1, + .dev = { + .platform_data = &e350_t7l66xb_info, + }, + .num_resources = 2, + .resource = eseries_tmio_resources, +}; + +/* ---------------------------------------------------------- */ + +static struct platform_device *devices[] __initdata = { + &e350_t7l66xb_device, +}; static void __init e350_init(void) { + eseries_register_clks(); + eseries_get_tmio_gpios(); + platform_add_devices(devices, ARRAY_SIZE(devices)); pxa_set_udc_info(&e7xx_udc_mach_info); } diff --git a/trunk/arch/arm/mach-pxa/e400.c b/trunk/arch/arm/mach-pxa/e400.c index 544bbaa20621..7716ad0c3b34 100644 --- a/trunk/arch/arm/mach-pxa/e400.c +++ b/trunk/arch/arm/mach-pxa/e400.c @@ -12,20 +12,26 @@ #include #include +#include +#include +#include +#include +#include #include #include #include -#include #include +#include #include - +#include #include #include #include "generic.h" #include "eseries.h" +#include "clock.h" /* ------------------------ E400 LCD definitions ------------------------ */ @@ -65,7 +71,10 @@ static unsigned long e400_pin_config[] __initdata = { GPIO42_BTUART_RXD, GPIO43_BTUART_TXD, GPIO44_BTUART_CTS, - GPIO45_GPIO, /* Used by TMIO for #SUSPEND */ + + /* TMIO controller */ + GPIO19_GPIO, /* t7l66xb #PCLR */ + GPIO45_GPIO, /* t7l66xb #SUSPEND (NOT BTUART!) */ /* wakeup */ GPIO0_GPIO | WAKEUP_ON_EDGE_RISE, @@ -73,10 +82,60 @@ static unsigned long e400_pin_config[] __initdata = { /* ---------------------------------------------------------------------- */ +static struct mtd_partition partition_a = { + .name = "Internal NAND flash", + .offset = 0, + .size = MTDPART_SIZ_FULL, +}; + +static uint8_t scan_ff_pattern[] = { 0xff, 0xff }; + +static struct nand_bbt_descr e400_t7l66xb_nand_bbt = { + .options = 0, + .offs = 4, + .len = 2, + .pattern = scan_ff_pattern +}; + +static struct tmio_nand_data e400_t7l66xb_nand_config = { + .num_partitions = 1, + .partition = &partition_a, + .badblock_pattern = &e400_t7l66xb_nand_bbt, +}; + +static struct t7l66xb_platform_data e400_t7l66xb_info = { + .irq_base = IRQ_BOARD_START, + .enable = &eseries_tmio_enable, + .suspend = &eseries_tmio_suspend, + .resume = &eseries_tmio_resume, + + .nand_data = &e400_t7l66xb_nand_config, +}; + +static struct platform_device e400_t7l66xb_device = { + .name = "t7l66xb", + .id = -1, + .dev = { + .platform_data = &e400_t7l66xb_info, + }, + .num_resources = 2, + .resource = eseries_tmio_resources, +}; + +/* ---------------------------------------------------------- */ + +static struct platform_device *devices[] __initdata = { + &e400_t7l66xb_device, +}; + static void __init e400_init(void) { pxa2xx_mfp_config(ARRAY_AND_SIZE(e400_pin_config)); + /* Fixme - e400 may have a switched clock */ + eseries_register_clks(); + eseries_get_tmio_gpios(); set_pxa_fb_info(&e400_pxafb_mach_info); + platform_add_devices(devices, ARRAY_SIZE(devices)); pxa_set_udc_info(&e7xx_udc_mach_info); } diff --git a/trunk/arch/arm/mach-pxa/e740.c b/trunk/arch/arm/mach-pxa/e740.c index a9f070b1b80f..b00d670b2ea6 100644 --- a/trunk/arch/arm/mach-pxa/e740.c +++ b/trunk/arch/arm/mach-pxa/e740.c @@ -15,6 +15,8 @@ #include #include #include +#include +#include #include