2006-12-18 00:10:48 +03:00
/*
* linux / arch / arm / mach - ep93xx / micro9 . c
*
* Copyright ( C ) 2006 Contec Steuerungstechnik & Automation GmbH
* Manfred Gruber < manfred . gruber @ contec . at >
*
* 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
* published by the Free Software Foundation .
*/
# include <linux/init.h>
# include <linux/interrupt.h>
# include <linux/ioport.h>
# include <linux/kernel.h>
# include <linux/mm.h>
# include <linux/platform_device.h>
# include <linux/sched.h>
2008-09-06 15:10:45 +04:00
# include <linux/io.h>
2008-12-11 01:39:54 +03:00
# include <linux/i2c.h>
2006-12-18 00:10:48 +03:00
# include <linux/mtd/physmap.h>
2008-08-05 19:14:15 +04:00
# include <mach/hardware.h>
2006-12-18 00:10:48 +03:00
# include <asm/mach/arch.h>
# include <asm/mach-types.h>
static struct ep93xx_eth_data micro9_eth_data = {
2008-12-08 19:57:22 +03:00
. phy_id = 0x1f ,
2006-12-18 00:10:48 +03:00
} ;
static void __init micro9_init ( void )
{
2008-10-04 23:01:49 +04:00
ep93xx_register_eth ( & micro9_eth_data , 1 ) ;
2006-12-18 00:10:48 +03:00
}
/*
* Micro9 - H
*/
# ifdef CONFIG_MACH_MICRO9H
static struct physmap_flash_data micro9h_flash_data = {
2008-12-08 19:57:22 +03:00
. width = 4 ,
2006-12-18 00:10:48 +03:00
} ;
static struct resource micro9h_flash_resource = {
2008-12-08 19:57:22 +03:00
. start = EP93XX_CS1_PHYS_BASE ,
. end = EP93XX_CS1_PHYS_BASE + SZ_64M - 1 ,
. flags = IORESOURCE_MEM ,
2006-12-18 00:10:48 +03:00
} ;
static struct platform_device micro9h_flash = {
2008-12-08 19:57:22 +03:00
. name = " physmap-flash " ,
. id = 0 ,
. dev = {
. platform_data = & micro9h_flash_data ,
} ,
. num_resources = 1 ,
. resource = & micro9h_flash_resource ,
2006-12-18 00:10:48 +03:00
} ;
static void __init micro9h_init ( void )
{
2008-12-08 19:57:22 +03:00
platform_device_register ( & micro9h_flash ) ;
2006-12-18 00:10:48 +03:00
}
static void __init micro9h_init_machine ( void )
{
2008-12-08 19:57:22 +03:00
ep93xx_init_devices ( ) ;
micro9_init ( ) ;
micro9h_init ( ) ;
2006-12-18 00:10:48 +03:00
}
MACHINE_START ( MICRO9 , " Contec Hypercontrol Micro9-H " )
2008-12-08 19:57:22 +03:00
/* Maintainer: Manfred Gruber <manfred.gruber@contec.at> */
. phys_io = EP93XX_APB_PHYS_BASE ,
. io_pg_offst = ( ( EP93XX_APB_VIRT_BASE ) > > 18 ) & 0xfffc ,
. boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100 ,
. map_io = ep93xx_map_io ,
. init_irq = ep93xx_init_irq ,
. timer = & ep93xx_timer ,
. init_machine = micro9h_init_machine ,
2006-12-18 00:10:48 +03:00
MACHINE_END
# endif
/*
* Micro9 - M
*/
# ifdef CONFIG_MACH_MICRO9M
static void __init micro9m_init_machine ( void )
{
2008-12-08 19:57:22 +03:00
ep93xx_init_devices ( ) ;
micro9_init ( ) ;
2006-12-18 00:10:48 +03:00
}
MACHINE_START ( MICRO9M , " Contec Hypercontrol Micro9-M " )
2008-12-08 19:57:22 +03:00
/* Maintainer: Manfred Gruber <manfred.gruber@contec.at> */
. phys_io = EP93XX_APB_PHYS_BASE ,
. io_pg_offst = ( ( EP93XX_APB_VIRT_BASE ) > > 18 ) & 0xfffc ,
. boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100 ,
. map_io = ep93xx_map_io ,
. init_irq = ep93xx_init_irq ,
. timer = & ep93xx_timer ,
. init_machine = micro9m_init_machine ,
2006-12-18 00:10:48 +03:00
MACHINE_END
# endif
/*
* Micro9 - L
*/
# ifdef CONFIG_MACH_MICRO9L
static void __init micro9l_init_machine ( void )
{
2008-12-08 19:57:22 +03:00
ep93xx_init_devices ( ) ;
micro9_init ( ) ;
2006-12-18 00:10:48 +03:00
}
MACHINE_START ( MICRO9L , " Contec Hypercontrol Micro9-L " )
2008-12-08 19:57:22 +03:00
/* Maintainer: Manfred Gruber <manfred.gruber@contec.at> */
. phys_io = EP93XX_APB_PHYS_BASE ,
. io_pg_offst = ( ( EP93XX_APB_VIRT_BASE ) > > 18 ) & 0xfffc ,
. boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100 ,
. map_io = ep93xx_map_io ,
. init_irq = ep93xx_init_irq ,
. timer = & ep93xx_timer ,
. init_machine = micro9l_init_machine ,
2006-12-18 00:10:48 +03:00
MACHINE_END
# endif