2005-04-17 02:20:36 +04:00
/*
2005-07-10 22:58:11 +04:00
* linux / arch / arm / mach - omap1 / board - generic . c
2005-04-17 02:20:36 +04:00
*
* Modified from board - innovator1510 . c
*
* Code for generic OMAP board . Should work on many OMAP systems where
* the device drivers take care of all the necessary hardware initialization .
* Do not put any board specific code to this file ; create a new machine
* type if you need custom low - level initializations .
*
* 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/kernel.h>
# include <linux/init.h>
2005-11-10 17:26:48 +03:00
# include <linux/platform_device.h>
2005-04-17 02:20:36 +04:00
2008-08-05 19:14:15 +04:00
# include <mach/hardware.h>
2005-04-17 02:20:36 +04:00
# include <asm/mach-types.h>
# include <asm/mach/arch.h>
# include <asm/mach/map.h>
2008-08-05 19:14:15 +04:00
# include <mach/gpio.h>
# include <mach/mux.h>
# include <mach/usb.h>
# include <mach/board.h>
# include <mach/common.h>
2005-04-17 02:20:36 +04:00
static void __init omap_generic_init_irq ( void )
{
2006-02-09 01:06:46 +03:00
omap1_init_common_hw ( ) ;
2005-04-17 02:20:36 +04:00
omap_init_irq ( ) ;
}
/* assume no Mini-AB port */
2005-11-10 17:26:48 +03:00
# ifdef CONFIG_ARCH_OMAP15XX
2005-04-17 02:20:36 +04:00
static struct omap_usb_config generic1510_usb_config __initdata = {
. register_host = 1 ,
. register_dev = 1 ,
. hmc_mode = 16 ,
. pins [ 0 ] = 3 ,
} ;
# endif
# if defined(CONFIG_ARCH_OMAP16XX)
static struct omap_usb_config generic1610_usb_config __initdata = {
2005-09-09 02:07:38 +04:00
# ifdef CONFIG_USB_OTG
. otg = 1 ,
# endif
2005-04-17 02:20:36 +04:00
. register_host = 1 ,
. register_dev = 1 ,
. hmc_mode = 16 ,
. pins [ 0 ] = 6 ,
} ;
# endif
2005-11-10 17:26:48 +03:00
static struct omap_uart_config generic_uart_config __initdata = {
. enabled_uarts = ( ( 1 < < 0 ) | ( 1 < < 1 ) | ( 1 < < 2 ) ) ,
} ;
2007-12-19 07:58:32 +03:00
static struct omap_board_config_kernel generic_config [ ] __initdata = {
{ OMAP_TAG_USB , NULL } ,
2005-11-10 17:26:48 +03:00
{ OMAP_TAG_UART , & generic_uart_config } ,
2005-04-17 02:20:36 +04:00
} ;
static void __init omap_generic_init ( void )
{
2005-11-10 17:26:48 +03:00
# ifdef CONFIG_ARCH_OMAP15XX
2006-04-02 20:46:30 +04:00
if ( cpu_is_omap15xx ( ) ) {
2005-04-17 02:20:36 +04:00
generic_config [ 0 ] . data = & generic1510_usb_config ;
}
# endif
# if defined(CONFIG_ARCH_OMAP16XX)
if ( ! cpu_is_omap1510 ( ) ) {
generic_config [ 0 ] . data = & generic1610_usb_config ;
}
# endif
2005-09-09 02:07:38 +04:00
2005-04-17 02:20:36 +04:00
omap_board_config = generic_config ;
omap_board_config_size = ARRAY_SIZE ( generic_config ) ;
2005-11-10 17:26:48 +03:00
omap_serial_init ( ) ;
2007-11-07 07:54:32 +03:00
omap_register_i2c_bus ( 1 , 100 , NULL , 0 ) ;
2005-04-17 02:20:36 +04:00
}
static void __init omap_generic_map_io ( void )
{
2006-02-09 01:06:46 +03:00
omap1_map_common_io ( ) ;
2005-04-17 02:20:36 +04:00
}
MACHINE_START ( OMAP_GENERIC , " Generic OMAP1510/1610/1710 " )
2005-07-03 20:38:58 +04:00
/* Maintainer: Tony Lindgren <tony@atomide.com> */
. phys_io = 0xfff00000 ,
. io_pg_offst = ( ( 0xfef00000 ) > > 18 ) & 0xfffc ,
. boot_params = 0x10000100 ,
. map_io = omap_generic_map_io ,
. init_irq = omap_generic_init_irq ,
. init_machine = omap_generic_init ,
2005-04-17 02:20:36 +04:00
. timer = & omap_timer ,
MACHINE_END