2008-08-19 12:14:21 +01:00
/*
* Hardware definitions for the Toshiba eseries PDAs
*
* Copyright ( c ) 2003 Ian Molton < spyro @ f2s . com >
*
* This file is licensed under
* the terms of the GNU General Public License version 2. This program
* is licensed " as is " without any warranty of any kind , whether express
* or implied .
*
*/
# include <linux/kernel.h>
# include <linux/init.h>
2008-09-26 13:38:59 +01:00
# include <linux/clk.h>
# include <linux/platform_device.h>
# include <linux/mfd/t7l66xb.h>
# include <linux/mtd/nand.h>
# include <linux/mtd/partitions.h>
2008-08-19 12:14:21 +01:00
# include <asm/setup.h>
# include <asm/mach/arch.h>
# include <asm/mach-types.h>
2009-01-02 23:17:22 +08:00
# include <mach/pxa25x.h>
2008-09-26 13:38:59 +01:00
# include <mach/eseries-gpio.h>
2008-08-19 13:01:28 +01:00
# include <mach/pxafb.h>
2008-08-19 13:34:56 +01:00
# include <mach/udc.h>
[ARM] fix AT91, davinci, h720x, ks8695, msm, mx2, mx3, netx, omap1, omap2, pxa, s3c
arch/arm/mach-at91/at91cap9.c:337: error: 'NR_AIC_IRQS' undeclared here (not in a function)
arch/arm/mach-at91/at91rm9200.c:301: error: 'NR_AIC_IRQS' undeclared here (not in a function)
arch/arm/mach-at91/at91sam9260.c:351: error: 'NR_AIC_IRQS' undeclared here (not in a function)
arch/arm/mach-at91/at91sam9261.c:287: error: 'NR_AIC_IRQS' undeclared here (not in a function)
arch/arm/mach-at91/at91sam9263.c:312: error: 'NR_AIC_IRQS' undeclared here (not in a function)
arch/arm/mach-at91/at91sam9rl.c:304: error: 'NR_AIC_IRQS' undeclared here (not in a function)
arch/arm/mach-h720x/h7202-eval.c:38: error: implicit declaration of function 'IRQ_CHAINED_GPIOB'
arch/arm/mach-ks8695/devices.c:46: error: 'KS8695_IRQ_WAN_RX_STATUS' undeclared here (not in a function)
arch/arm/mach-msm/devices.c:28: error: 'INT_UART1' undeclared here (not in a function)
arch/arm/mach-mx2/devices.c:233: error: 'MXC_GPIO_IRQ_START' undeclared here (not in a function)
arch/arm/mach-mx3/devices.c:128: error: 'MXC_GPIO_IRQ_START' undeclared here (not in a function)
arch/arm/mach-omap1/mcbsp.c:140: error: 'INT_730_McBSP1RX' undeclared here (not in a function)
arch/arm/mach-omap1/mcbsp.c:165: error: 'INT_McBSP1RX' undeclared here (not in a function)
arch/arm/mach-omap1/mcbsp.c:200: error: 'INT_McBSP1RX' undeclared here (not in a function)
arch/arm/mach-omap2/board-apollon.c:286: error: implicit declaration of function 'omap_set_gpio_direction'
arch/arm/mach-omap2/mcbsp.c:154: error: 'INT_24XX_MCBSP1_IRQ_RX' undeclared here (not in a function)
arch/arm/mach-omap2/mcbsp.c:181: error: 'INT_24XX_MCBSP1_IRQ_RX' undeclared here (not in a function)
arch/arm/mach-pxa/e350.c:36: error: 'IRQ_BOARD_START' undeclared here (not in a function)
arch/arm/plat-s3c/dev-i2c0.c:32: error: 'IRQ_IIC' undeclared here (not in a function)
...
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-01-08 10:01:47 +00:00
# include <mach/irqs.h>
2008-08-19 13:01:28 +01:00
2008-08-19 12:14:21 +01:00
# include "generic.h"
# include "eseries.h"
2008-09-26 13:38:59 +01:00
# include "clock.h"
2008-08-19 12:14:21 +01:00
2008-08-19 13:01:28 +01:00
/* ------------------------ E400 LCD definitions ------------------------ */
static struct pxafb_mode_info e400_pxafb_mode_info = {
. pixclock = 140703 ,
. xres = 240 ,
. yres = 320 ,
. bpp = 16 ,
. hsync_len = 4 ,
. left_margin = 28 ,
. right_margin = 8 ,
. vsync_len = 3 ,
. upper_margin = 5 ,
. lower_margin = 6 ,
. sync = 0 ,
} ;
static struct pxafb_mach_info e400_pxafb_mach_info = {
. modes = & e400_pxafb_mode_info ,
. num_modes = 1 ,
2008-12-07 17:49:01 +08:00
. lcd_conn = LCD_COLOR_TFT_16BPP ,
2008-08-19 13:01:28 +01:00
. lccr3 = 0 ,
. pxafb_backlight_power = NULL ,
} ;
/* ------------------------ E400 MFP config ----------------------------- */
2008-08-19 12:14:21 +01:00
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 ,
2008-09-26 13:38:59 +01:00
/* TMIO controller */
GPIO19_GPIO , /* t7l66xb #PCLR */
GPIO45_GPIO , /* t7l66xb #SUSPEND (NOT BTUART!) */
2008-08-19 12:14:21 +01:00
/* wakeup */
GPIO0_GPIO | WAKEUP_ON_EDGE_RISE ,
} ;
2008-08-19 13:01:28 +01:00
/* ---------------------------------------------------------------------- */
2008-09-26 13:38:59 +01:00
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 ,
} ;
2008-08-19 12:14:21 +01:00
static void __init e400_init ( void )
{
pxa2xx_mfp_config ( ARRAY_AND_SIZE ( e400_pin_config ) ) ;
2008-09-26 13:38:59 +01:00
/* Fixme - e400 may have a switched clock */
eseries_register_clks ( ) ;
eseries_get_tmio_gpios ( ) ;
2008-08-19 13:01:28 +01:00
set_pxa_fb_info ( & e400_pxafb_mach_info ) ;
2008-09-26 13:38:59 +01:00
platform_add_devices ( devices , ARRAY_SIZE ( devices ) ) ;
2008-08-19 13:34:56 +01:00
pxa_set_udc_info ( & e7xx_udc_mach_info ) ;
2008-08-19 12:14:21 +01:00
}
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 ,
. init_machine = e400_init ,
. timer = & pxa_timer ,
MACHINE_END