2009-03-20 08:27:30 +03:00
/*
* linux / arch / arm / mach - mmp / tavorevb . c
*
* Support for the Marvell PXA910 - based TavorEVB Development Platform .
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* publishhed by the Free Software Foundation .
*/
# include <linux/init.h>
# include <linux/kernel.h>
# include <linux/platform_device.h>
# include <linux/smc91x.h>
# include <asm/mach-types.h>
# include <asm/mach/arch.h>
# include <mach/addr-map.h>
# include <mach/mfp-pxa910.h>
# include <mach/pxa910.h>
# include <mach/gpio.h>
# include "common.h"
static unsigned long tavorevb_pin_config [ ] __initdata = {
/* UART2 */
GPIO47_UART2_RXD ,
GPIO48_UART2_TXD ,
/* SMC */
SM_nCS0_nCS0 ,
SM_ADV_SM_ADV ,
SM_SCLK_SM_SCLK ,
SM_SCLK_SM_SCLK ,
SM_BE0_SM_BE0 ,
SM_BE1_SM_BE1 ,
/* DFI */
DF_IO0_ND_IO0 ,
DF_IO1_ND_IO1 ,
DF_IO2_ND_IO2 ,
DF_IO3_ND_IO3 ,
DF_IO4_ND_IO4 ,
DF_IO5_ND_IO5 ,
DF_IO6_ND_IO6 ,
DF_IO7_ND_IO7 ,
DF_IO8_ND_IO8 ,
DF_IO9_ND_IO9 ,
DF_IO10_ND_IO10 ,
DF_IO11_ND_IO11 ,
DF_IO12_ND_IO12 ,
DF_IO13_ND_IO13 ,
DF_IO14_ND_IO14 ,
DF_IO15_ND_IO15 ,
DF_nCS0_SM_nCS2_nCS0 ,
DF_ALE_SM_WEn_ND_ALE ,
DF_CLE_SM_OEn_ND_CLE ,
DF_WEn_DF_WEn ,
DF_REn_DF_REn ,
DF_RDY0_DF_RDY0 ,
} ;
static struct smc91x_platdata tavorevb_smc91x_info = {
. flags = SMC91X_USE_16BIT | SMC91X_NOWAIT ,
} ;
static struct resource smc91x_resources [ ] = {
[ 0 ] = {
. start = SMC_CS1_PHYS_BASE + 0x300 ,
. end = SMC_CS1_PHYS_BASE + 0xfffff ,
. flags = IORESOURCE_MEM ,
} ,
[ 1 ] = {
. start = gpio_to_irq ( 80 ) ,
. end = gpio_to_irq ( 80 ) ,
. flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE ,
}
} ;
static struct platform_device smc91x_device = {
. name = " smc91x " ,
. id = 0 ,
. dev = {
. platform_data = & tavorevb_smc91x_info ,
} ,
. num_resources = ARRAY_SIZE ( smc91x_resources ) ,
. resource = smc91x_resources ,
} ;
static void __init tavorevb_init ( void )
{
mfp_config ( ARRAY_AND_SIZE ( tavorevb_pin_config ) ) ;
/* on-chip devices */
pxa910_add_uart ( 1 ) ;
/* off-chip devices */
platform_device_register ( & smc91x_device ) ;
}
MACHINE_START ( TAVOREVB , " PXA910 Evaluation Board (aka TavorEVB) " )
. phys_io = APB_PHYS_BASE ,
. io_pg_offst = ( APB_VIRT_BASE > > 18 ) & 0xfffc ,
2010-07-15 13:50:13 +04:00
. map_io = mmp_map_io ,
2009-03-20 08:27:30 +03:00
. init_irq = pxa910_init_irq ,
. timer = & pxa910_timer ,
. init_machine = tavorevb_init ,
MACHINE_END