2005-11-10 17:26:51 +03:00
/*
* Copyright ( C ) 2005 Nokia Corporation
* Author : Paul Mundt < paul . mundt @ nokia . com >
*
2011-09-20 23:24:47 +04:00
* Copyright ( C ) 2011 Texas Instruments Incorporated - http : //www.ti.com/
2005-11-10 17:26:51 +03:00
*
2011-09-20 23:24:47 +04:00
* Modified from the original mach - omap / omap2 / board - generic . c did by Paul
* to support the OMAP2 + device tree boards with an unique board file .
2005-11-10 17:26:51 +03:00
*
* 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-09-20 23:24:47 +04:00
# include <linux/io.h>
2011-09-22 01:30:31 +04:00
# include <linux/of_irq.h>
2011-09-20 23:24:47 +04:00
# include <linux/of_platform.h>
# include <linux/irqdomain.h>
2005-11-10 17:26:51 +03:00
2008-08-05 19:14:15 +04:00
# include <mach/hardware.h>
2011-12-07 23:47:40 +04:00
# include <asm/hardware/gic.h>
2005-11-10 17:26:51 +03:00
# include <asm/mach/arch.h>
2009-10-20 20:40:47 +04:00
# include <plat/board.h>
2011-11-11 01:45:17 +04:00
# include "common.h"
2011-09-22 23:52:02 +04:00
# include "common-board-devices.h"
2011-09-20 23:24:47 +04:00
2012-03-06 01:47:28 +04:00
# if !(defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3))
2012-06-05 15:01:06 +04:00
# define intc_of_init NULL
2012-03-06 01:47:28 +04:00
# endif
# ifndef CONFIG_ARCH_OMAP4
# define gic_of_init NULL
# endif
2011-09-20 23:24:47 +04:00
static struct of_device_id omap_dt_match_table [ ] __initdata = {
{ . compatible = " simple-bus " , } ,
{ . compatible = " ti,omap-infra " , } ,
{ }
2009-09-03 21:14:02 +04:00
} ;
2005-11-10 17:26:51 +03:00
static void __init omap_generic_init ( void )
{
2011-08-23 10:57:23 +04:00
omap_sdrc_init ( NULL , NULL ) ;
2005-11-10 17:26:51 +03:00
2011-09-20 23:24:47 +04:00
of_platform_populate ( NULL , omap_dt_match_table , NULL , NULL ) ;
2005-11-10 17:26:51 +03:00
}
2011-12-01 14:05:17 +04:00
# ifdef CONFIG_SOC_OMAP2420
2011-09-20 23:24:47 +04:00
static const char * omap242x_boards_compat [ ] __initdata = {
" ti,omap2420 " ,
NULL ,
} ;
DT_MACHINE_START ( OMAP242X_DT , " Generic OMAP2420 (Flattened Device Tree) " )
. reserve = omap_reserve ,
. map_io = omap242x_map_io ,
. init_early = omap2420_init_early ,
2012-06-05 15:01:06 +04:00
. init_irq = omap_intc_of_init ,
2011-12-07 23:47:40 +04:00
. handle_irq = omap2_intc_handle_irq ,
2011-09-20 23:24:47 +04:00
. init_machine = omap_generic_init ,
. timer = & omap2_timer ,
. dt_compat = omap242x_boards_compat ,
2011-11-05 21:06:28 +04:00
. restart = omap_prcm_restart ,
2011-09-20 23:24:47 +04:00
MACHINE_END
# endif
2011-12-01 14:05:17 +04:00
# ifdef CONFIG_SOC_OMAP2430
2011-09-20 23:24:47 +04:00
static const char * omap243x_boards_compat [ ] __initdata = {
" ti,omap2430 " ,
NULL ,
} ;
DT_MACHINE_START ( OMAP243X_DT , " Generic OMAP2430 (Flattened Device Tree) " )
2010-05-23 13:18:16 +04:00
. reserve = omap_reserve ,
2011-09-20 23:24:47 +04:00
. map_io = omap243x_map_io ,
. init_early = omap2430_init_early ,
2012-06-05 15:01:06 +04:00
. init_irq = omap_intc_of_init ,
2011-09-06 13:23:45 +04:00
. handle_irq = omap2_intc_handle_irq ,
2005-11-10 17:26:51 +03:00
. init_machine = omap_generic_init ,
2011-06-30 16:58:01 +04:00
. timer = & omap2_timer ,
2011-09-20 23:24:47 +04:00
. dt_compat = omap243x_boards_compat ,
2011-11-05 21:06:28 +04:00
. restart = omap_prcm_restart ,
2011-09-20 23:24:47 +04:00
MACHINE_END
# endif
2011-12-01 14:05:17 +04:00
# ifdef CONFIG_ARCH_OMAP3
2011-09-20 23:24:47 +04:00
static const char * omap3_boards_compat [ ] __initdata = {
" ti,omap3 " ,
NULL ,
} ;
DT_MACHINE_START ( OMAP3_DT , " Generic OMAP3 (Flattened Device Tree) " )
. reserve = omap_reserve ,
. map_io = omap3_map_io ,
. init_early = omap3430_init_early ,
2012-06-05 15:01:06 +04:00
. init_irq = omap_intc_of_init ,
2011-12-07 23:47:40 +04:00
. handle_irq = omap3_intc_handle_irq ,
2011-09-23 15:51:57 +04:00
. init_machine = omap_generic_init ,
2011-09-20 23:24:47 +04:00
. timer = & omap3_timer ,
. dt_compat = omap3_boards_compat ,
2011-11-05 21:06:28 +04:00
. restart = omap_prcm_restart ,
2011-09-20 23:24:47 +04:00
MACHINE_END
# endif
2012-05-10 23:08:49 +04:00
# ifdef CONFIG_SOC_AM33XX
static const char * am33xx_boards_compat [ ] __initdata = {
" ti,am33xx " ,
NULL ,
} ;
DT_MACHINE_START ( AM33XX_DT , " Generic AM33XX (Flattened Device Tree) " )
. reserve = omap_reserve ,
. map_io = am33xx_map_io ,
. init_early = am33xx_init_early ,
2012-06-05 15:01:06 +04:00
. init_irq = omap_intc_of_init ,
2012-05-10 23:08:49 +04:00
. handle_irq = omap3_intc_handle_irq ,
. init_machine = omap_generic_init ,
. timer = & omap3_am33xx_timer ,
. dt_compat = am33xx_boards_compat ,
MACHINE_END
# endif
2011-12-01 14:05:17 +04:00
# ifdef CONFIG_ARCH_OMAP4
2011-09-20 23:24:47 +04:00
static const char * omap4_boards_compat [ ] __initdata = {
" ti,omap4 " ,
NULL ,
} ;
DT_MACHINE_START ( OMAP4_DT , " Generic OMAP4 (Flattened Device Tree) " )
. reserve = omap_reserve ,
. map_io = omap4_map_io ,
. init_early = omap4430_init_early ,
2012-06-05 15:01:06 +04:00
. init_irq = omap_gic_of_init ,
2011-12-07 23:47:40 +04:00
. handle_irq = gic_handle_irq ,
2011-09-23 15:51:57 +04:00
. init_machine = omap_generic_init ,
2012-04-26 12:06:50 +04:00
. init_late = omap4430_init_late ,
2011-09-20 23:24:47 +04:00
. timer = & omap4_timer ,
. dt_compat = omap4_boards_compat ,
2011-11-05 21:06:28 +04:00
. restart = omap_prcm_restart ,
2005-11-10 17:26:51 +03:00
MACHINE_END
2011-09-20 23:24:47 +04:00
# endif
2012-05-09 22:04:56 +04:00
# ifdef CONFIG_SOC_OMAP5
static const char * omap5_boards_compat [ ] __initdata = {
" ti,omap5 " ,
NULL ,
} ;
DT_MACHINE_START ( OMAP5_DT , " Generic OMAP5 (Flattened Device Tree) " )
. reserve = omap_reserve ,
. map_io = omap5_map_io ,
. init_early = omap5_init_early ,
. init_irq = omap_gic_of_init ,
. handle_irq = gic_handle_irq ,
. init_machine = omap_generic_init ,
. timer = & omap5_timer ,
. dt_compat = omap5_boards_compat ,
. restart = omap_prcm_restart ,
MACHINE_END
# endif