2010-04-01 12:30:58 +01:00
/*
* arch / arm / mach - spear3xx / spear300_evb . c
*
* SPEAr300 evaluation board source file
*
* Copyright ( C ) 2009 ST Microelectronics
* Viresh Kumar < viresh . kumar @ st . 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 .
*/
2011-09-27 20:35:14 +01:00
# include <asm/hardware/vic.h>
2010-04-01 12:30:58 +01:00
# include <asm/mach/arch.h>
# include <asm/mach-types.h>
# include <mach/generic.h>
2011-03-07 05:57:02 +01:00
# include <mach/hardware.h>
2010-04-01 12:30:58 +01:00
2010-04-01 12:31:29 +01:00
/* padmux devices to enable */
static struct pmx_dev * pmx_devs [ ] = {
/* spear3xx specific devices */
2011-05-20 08:34:22 +01:00
& spear3xx_pmx_i2c ,
& spear3xx_pmx_ssp_cs ,
& spear3xx_pmx_ssp ,
& spear3xx_pmx_mii ,
& spear3xx_pmx_uart0 ,
2010-04-01 12:31:29 +01:00
/* spear300 specific devices */
2011-05-20 08:34:22 +01:00
& spear300_pmx_fsmc_2_chips ,
& spear300_pmx_clcd ,
& spear300_pmx_telecom_sdhci_4bit ,
& spear300_pmx_gpio1 ,
2010-04-01 12:31:29 +01:00
} ;
2010-04-01 12:30:58 +01:00
static struct amba_device * amba_devs [ ] __initdata = {
/* spear3xx specific devices */
2011-05-20 08:34:23 +01:00
& spear3xx_gpio_device ,
& spear3xx_uart_device ,
2010-04-01 12:30:58 +01:00
/* spear300 specific devices */
2011-05-20 08:34:23 +01:00
& spear300_gpio1_device ,
2010-04-01 12:30:58 +01:00
} ;
static struct platform_device * plat_devs [ ] __initdata = {
/* spear3xx specific devices */
/* spear300 specific devices */
} ;
static void __init spear300_evb_init ( void )
{
unsigned int i ;
2011-02-16 07:40:30 +01:00
/* call spear300 machine init function */
2011-05-20 08:34:22 +01:00
spear300_init ( & spear300_photo_frame_mode , pmx_devs ,
ARRAY_SIZE ( pmx_devs ) ) ;
2010-04-01 12:31:29 +01:00
2010-04-01 12:30:58 +01:00
/* Add Platform Devices */
platform_add_devices ( plat_devs , ARRAY_SIZE ( plat_devs ) ) ;
/* Add Amba Devices */
for ( i = 0 ; i < ARRAY_SIZE ( amba_devs ) ; i + + )
amba_device_register ( amba_devs [ i ] , & iomem_resource ) ;
}
MACHINE_START ( SPEAR300 , " ST-SPEAR300-EVB " )
2011-07-05 22:38:17 -04:00
. atag_offset = 0x100 ,
2010-04-01 12:30:58 +01:00
. map_io = spear3xx_map_io ,
. init_irq = spear3xx_init_irq ,
2011-09-27 20:35:14 +01:00
. handle_irq = vic_handle_irq ,
2011-02-16 07:40:32 +01:00
. timer = & spear3xx_timer ,
2010-04-01 12:30:58 +01:00
. init_machine = spear300_evb_init ,
2011-11-05 21:10:37 +00:00
. restart = spear_restart ,
2010-04-01 12:30:58 +01:00
MACHINE_END