|
@@ -13,18 +13,17 @@
|
|
|
#include <linux/irq.h>
|
|
|
#include <linux/io.h>
|
|
|
|
|
|
+#include <mach/common.h>
|
|
|
#include <mach/cp_intc.h>
|
|
|
|
|
|
-static void __iomem *cp_intc_base;
|
|
|
-
|
|
|
static inline unsigned int cp_intc_read(unsigned offset)
|
|
|
{
|
|
|
- return __raw_readl(cp_intc_base + offset);
|
|
|
+ return __raw_readl(davinci_intc_base + offset);
|
|
|
}
|
|
|
|
|
|
static inline void cp_intc_write(unsigned long value, unsigned offset)
|
|
|
{
|
|
|
- __raw_writel(value, cp_intc_base + offset);
|
|
|
+ __raw_writel(value, davinci_intc_base + offset);
|
|
|
}
|
|
|
|
|
|
static void cp_intc_ack_irq(unsigned int irq)
|
|
@@ -100,13 +99,18 @@ static struct irq_chip cp_intc_irq_chip = {
|
|
|
.set_wake = cp_intc_set_wake,
|
|
|
};
|
|
|
|
|
|
-void __init cp_intc_init(void __iomem *base, unsigned short num_irq,
|
|
|
- u8 *irq_prio, u32 *host_map)
|
|
|
+void __init cp_intc_init(void)
|
|
|
{
|
|
|
+ unsigned long num_irq = davinci_soc_info.intc_irq_num;
|
|
|
+ u8 *irq_prio = davinci_soc_info.intc_irq_prios;
|
|
|
+ u32 *host_map = davinci_soc_info.intc_host_map;
|
|
|
unsigned num_reg = BITS_TO_LONGS(num_irq);
|
|
|
int i;
|
|
|
|
|
|
- cp_intc_base = base;
|
|
|
+ davinci_intc_type = DAVINCI_INTC_TYPE_CP_INTC;
|
|
|
+ davinci_intc_base = ioremap(davinci_soc_info.intc_base, SZ_8K);
|
|
|
+ if (WARN_ON(!davinci_intc_base))
|
|
|
+ return;
|
|
|
|
|
|
cp_intc_write(0, CP_INTC_GLOBAL_ENABLE);
|
|
|
|