diff options
author | Martyn Welch <martyn.welch@gefanuc.com> | 2008-10-01 09:32:39 +0100 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2008-10-13 11:09:57 -0500 |
commit | 3a470247913e6537c453937720b61f4ecc3e39db (patch) | |
tree | 284e09ffda9f3513677464abd05020fb01f51196 /arch/powerpc/platforms/86xx/gef_sbc610.c | |
parent | 92ae954046b1434c8c11468893ed27c7c06f2c21 (diff) |
powerpc: GE Fanuc's FPGA based PIC controller on the SBC610
Support for the SBC610 VPX Single Board Computer from GE Fanuc (PowerPC MPC8641D).
A number of MPC8641D based route interrupts for on-board interrupts through
a FPGA based interrupt controller, which is chained with the
MPC8641D's mpic. This patch provides a basic driver to allow basic routing
of interrupts to the mpic.
Signed-off-by: Martyn Welch <martyn.welch@gefanuc.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/platforms/86xx/gef_sbc610.c')
-rw-r--r-- | arch/powerpc/platforms/86xx/gef_sbc610.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/86xx/gef_sbc610.c b/arch/powerpc/platforms/86xx/gef_sbc610.c index ee215002b1c..3873c2018cc 100644 --- a/arch/powerpc/platforms/86xx/gef_sbc610.c +++ b/arch/powerpc/platforms/86xx/gef_sbc610.c @@ -39,6 +39,7 @@ #include <sysdev/fsl_soc.h> #include "mpc86xx.h" +#include "gef_pic.h" #undef DEBUG @@ -48,6 +49,28 @@ #define DBG (fmt...) do { } while (0) #endif +void __iomem *sbc610_regs; + +static void __init gef_sbc610_init_irq(void) +{ + struct device_node *cascade_node = NULL; + + mpc86xx_init_irq(); + + /* + * There is a simple interrupt handler in the main FPGA, this needs + * to be cascaded into the MPIC + */ + cascade_node = of_find_compatible_node(NULL, NULL, "gef,fpga-pic"); + if (!cascade_node) { + printk(KERN_WARNING "SBC610: No FPGA PIC\n"); + return; + } + + gef_pic_init(cascade_node); + of_node_put(cascade_node); +} + static void __init gef_sbc610_setup_arch(void) { #ifdef CONFIG_PCI @@ -145,7 +168,7 @@ define_machine(gef_sbc610) { .name = "GE Fanuc SBC610", .probe = gef_sbc610_probe, .setup_arch = gef_sbc610_setup_arch, - .init_IRQ = mpc86xx_init_irq, + .init_IRQ = gef_sbc610_init_irq, .show_cpuinfo = gef_sbc610_show_cpuinfo, .get_irq = mpic_get_irq, .restart = fsl_rstcr_restart, |