2005-04-16 15:20:36 -07:00
/*
2005-07-10 19:58:11 +01:00
* linux / arch / arm / mach - omap1 / board - generic . c
2005-04-16 15:20:36 -07: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 .
*/
2011-07-26 10:53:52 +01:00
# include <linux/gpio.h>
2005-04-16 15:20:36 -07:00
# include <linux/kernel.h>
# include <linux/init.h>
2005-11-10 14:26:48 +00:00
# include <linux/platform_device.h>
2005-04-16 15:20:36 -07:00
2008-08-05 16:14:15 +01:00
# include <mach/hardware.h>
2005-04-16 15:20:36 -07:00
# include <asm/mach-types.h>
# include <asm/mach/arch.h>
# include <asm/mach/map.h>
2009-10-20 09:40:47 -07:00
# include <plat/mux.h>
# include <plat/board.h>
2012-06-04 00:56:15 -07:00
# include <mach/usb.h>
2011-11-10 22:45:17 +01:00
# include "common.h"
2005-04-16 15:20:36 -07:00
/* assume no Mini-AB port */
2005-11-10 14:26:48 +00:00
# ifdef CONFIG_ARCH_OMAP15XX
2005-04-16 15:20:36 -07: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-08 23:07:38 +01:00
# ifdef CONFIG_USB_OTG
. otg = 1 ,
# endif
2005-04-16 15:20:36 -07:00
. register_host = 1 ,
. register_dev = 1 ,
. hmc_mode = 16 ,
. pins [ 0 ] = 6 ,
} ;
# endif
2007-12-18 20:58:32 -08:00
static struct omap_board_config_kernel generic_config [ ] __initdata = {
2005-04-16 15:20:36 -07:00
} ;
static void __init omap_generic_init ( void )
{
2005-11-10 14:26:48 +00:00
# ifdef CONFIG_ARCH_OMAP15XX
2006-04-02 17:46:30 +01:00
if ( cpu_is_omap15xx ( ) ) {
2009-10-22 14:47:42 -07:00
/* mux pins for uarts */
omap_cfg_reg ( UART1_TX ) ;
omap_cfg_reg ( UART1_RTS ) ;
omap_cfg_reg ( UART2_TX ) ;
omap_cfg_reg ( UART2_RTS ) ;
omap_cfg_reg ( UART3_TX ) ;
omap_cfg_reg ( UART3_RX ) ;
2010-07-05 16:31:30 +03:00
omap1_usb_init ( & generic1510_usb_config ) ;
2005-04-16 15:20:36 -07:00
}
# endif
# if defined(CONFIG_ARCH_OMAP16XX)
if ( ! cpu_is_omap1510 ( ) ) {
2010-07-05 16:31:30 +03:00
omap1_usb_init ( & generic1610_usb_config ) ;
2005-04-16 15:20:36 -07:00
}
# endif
2005-09-08 23:07:38 +01:00
2005-04-16 15:20:36 -07:00
omap_board_config = generic_config ;
omap_board_config_size = ARRAY_SIZE ( generic_config ) ;
2005-11-10 14:26:48 +00:00
omap_serial_init ( ) ;
2007-11-07 06:54:32 +02:00
omap_register_i2c_bus ( 1 , 100 , NULL , 0 ) ;
2005-04-16 15:20:36 -07:00
}
MACHINE_START ( OMAP_GENERIC , " Generic OMAP1510/1610/1710 " )
2005-07-03 17:38:58 +01:00
/* Maintainer: Tony Lindgren <tony@atomide.com> */
2011-07-05 22:38:15 -04:00
. atag_offset = 0x100 ,
2011-10-05 15:14:02 -07:00
. map_io = omap16xx_map_io ,
. init_early = omap1_init_early ,
2010-05-23 10:18:16 +01:00
. reserve = omap_reserve ,
2011-10-05 15:14:02 -07:00
. init_irq = omap1_init_irq ,
2005-07-03 17:38:58 +01:00
. init_machine = omap_generic_init ,
2012-04-26 13:49:29 +08:00
. init_late = omap1_init_late ,
2011-03-29 15:54:48 -07:00
. timer = & omap1_timer ,
2011-11-05 17:06:28 +00:00
. restart = omap1_restart ,
2005-04-16 15:20:36 -07:00
MACHINE_END