aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/85xx/ksi8560.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/platforms/85xx/ksi8560.c')
-rw-r--r--arch/powerpc/platforms/85xx/ksi8560.c29
1 files changed, 2 insertions, 27 deletions
diff --git a/arch/powerpc/platforms/85xx/ksi8560.c b/arch/powerpc/platforms/85xx/ksi8560.c
index c46f9359be15..bf9b1e5f10f9 100644
--- a/arch/powerpc/platforms/85xx/ksi8560.c
+++ b/arch/powerpc/platforms/85xx/ksi8560.c
@@ -35,6 +35,7 @@
35#include <asm/cpm2.h> 35#include <asm/cpm2.h>
36#include <sysdev/cpm2_pic.h> 36#include <sysdev/cpm2_pic.h>
37 37
38#include "mpc85xx.h"
38 39
39#define KSI8560_CPLD_HVR 0x04 /* Hardware Version Register */ 40#define KSI8560_CPLD_HVR 0x04 /* Hardware Version Register */
40#define KSI8560_CPLD_PVR 0x08 /* PLD Version Register */ 41#define KSI8560_CPLD_PVR 0x08 /* PLD Version Register */
@@ -54,25 +55,11 @@ static void machine_restart(char *cmd)
54 for (;;); 55 for (;;);
55} 56}
56 57
57static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
58{
59 struct irq_chip *chip = irq_desc_get_chip(desc);
60 int cascade_irq;
61
62 while ((cascade_irq = cpm2_get_irq()) >= 0)
63 generic_handle_irq(cascade_irq);
64
65 chip->irq_eoi(&desc->irq_data);
66}
67
68static void __init ksi8560_pic_init(void) 58static void __init ksi8560_pic_init(void)
69{ 59{
70 struct mpic *mpic; 60 struct mpic *mpic;
71 struct resource r; 61 struct resource r;
72 struct device_node *np; 62 struct device_node *np;
73#ifdef CONFIG_CPM2
74 int irq;
75#endif
76 63
77 np = of_find_node_by_type(NULL, "open-pic"); 64 np = of_find_node_by_type(NULL, "open-pic");
78 65
@@ -95,19 +82,7 @@ static void __init ksi8560_pic_init(void)
95 82
96 mpic_init(mpic); 83 mpic_init(mpic);
97 84
98#ifdef CONFIG_CPM2 85 mpc85xx_cpm2_pic_init();
99 /* Setup CPM2 PIC */
100 np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic");
101 if (np == NULL) {
102 printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n");
103 return;
104 }
105 irq = irq_of_parse_and_map(np, 0);
106
107 cpm2_pic_init(np);
108 of_node_put(np);
109 irq_set_chained_handler(irq, cpm2_cascade);
110#endif
111} 86}
112 87
113#ifdef CONFIG_CPM2 88#ifdef CONFIG_CPM2