2010-05-03 07:39:02 +01:00
/*
* Copyright ( C ) ST - Ericsson SA 2010
*
* Author : Rabin Vincent < rabin . vincent @ stericsson . com > for ST - Ericsson
* License terms : GNU General Public License ( GPL ) version 2
*/
# include <linux/platform_device.h>
# include <linux/io.h>
# include <linux/clk.h>
2011-05-15 22:53:56 +02:00
# include <linux/mfd/db8500-prcmu.h>
2011-05-03 18:14:48 +02:00
# include <linux/mfd/db5500-prcmu.h>
2011-05-27 10:30:34 +02:00
# include <linux/clksrc-dbx500-prcmu.h>
2010-05-03 07:39:02 +01:00
# include <asm/hardware/gic.h>
# include <asm/mach/map.h>
2010-05-03 08:28:05 +01:00
# include <asm/localtimer.h>
2010-05-03 07:39:02 +01:00
# include <mach/hardware.h>
# include <mach/setup.h>
2010-05-03 07:46:56 +01:00
# include <mach/devices.h>
2010-05-03 07:39:02 +01:00
# include "clock.h"
2011-03-29 16:53:29 +02:00
void __iomem * _PRCMU_BASE ;
2010-05-03 07:39:02 +01:00
void __init ux500_init_irq ( void )
{
2010-12-08 11:07:57 +05:30
void __iomem * dist_base ;
void __iomem * cpu_base ;
if ( cpu_is_u5500 ( ) ) {
dist_base = __io_address ( U5500_GIC_DIST_BASE ) ;
cpu_base = __io_address ( U5500_GIC_CPU_BASE ) ;
} else if ( cpu_is_u8500 ( ) ) {
dist_base = __io_address ( U8500_GIC_DIST_BASE ) ;
cpu_base = __io_address ( U8500_GIC_CPU_BASE ) ;
} else
ux500_unknown_soc ( ) ;
gic_init ( 0 , 29 , dist_base , cpu_base ) ;
2010-05-26 07:38:54 +01:00
/*
* Init clocks here so that they are available for system timer
* initialization .
*/
2011-05-03 18:14:48 +02:00
if ( cpu_is_u5500 ( ) )
db5500_prcmu_early_init ( ) ;
2010-12-05 12:27:05 +01:00
if ( cpu_is_u8500 ( ) )
2011-08-12 10:28:10 +02:00
db8500_prcmu_early_init ( ) ;
2010-05-26 07:38:54 +01:00
clk_init ( ) ;
2010-05-03 07:39:02 +01:00
}