diff options
author | Kim Phillips <kim.phillips@freescale.com> | 2006-08-25 12:59:07 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-08-29 20:34:33 -0400 |
commit | b9f0f1bb2bcaae96dd3267f6bd3ad1ca44a1f5ad (patch) | |
tree | 3b9f29de777df859406ee649cc5a29b703c026ae /arch/powerpc/sysdev/ipic.h | |
parent | bf4152dd7ccb6c060d786200a893dfe30193a07f (diff) |
[POWERPC] Adapt ipic driver to new host_ops interface, add set_irq_type to set IRQ sense
This converts ipic code to Benh's IRQ mods. For the IPIC, IRQ sense values in the device tree equal those in include/linux/irq.h; that's 8 for low assertion (most internal IRQs on mpc83xx), and 2 for high-to-low change.
spinlocks added to [un]mask, ack operations; default handler and type now set in host_map; and redundant condition check eliminated.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/sysdev/ipic.h')
-rw-r--r-- | arch/powerpc/sysdev/ipic.h | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/arch/powerpc/sysdev/ipic.h b/arch/powerpc/sysdev/ipic.h index a60c9d18bb7f..c28e589877eb 100644 --- a/arch/powerpc/sysdev/ipic.h +++ b/arch/powerpc/sysdev/ipic.h | |||
@@ -15,7 +15,18 @@ | |||
15 | 15 | ||
16 | #include <asm/ipic.h> | 16 | #include <asm/ipic.h> |
17 | 17 | ||
18 | #define MPC83xx_IPIC_SIZE (0x00100) | 18 | #define NR_IPIC_INTS 128 |
19 | |||
20 | /* External IRQS */ | ||
21 | #define IPIC_IRQ_EXT0 48 | ||
22 | #define IPIC_IRQ_EXT1 17 | ||
23 | #define IPIC_IRQ_EXT7 23 | ||
24 | |||
25 | /* Default Priority Registers */ | ||
26 | #define IPIC_SIPRR_A_DEFAULT 0x05309770 | ||
27 | #define IPIC_SIPRR_D_DEFAULT 0x05309770 | ||
28 | #define IPIC_SMPRR_A_DEFAULT 0x05309770 | ||
29 | #define IPIC_SMPRR_B_DEFAULT 0x05309770 | ||
19 | 30 | ||
20 | /* System Global Interrupt Configuration Register */ | 31 | /* System Global Interrupt Configuration Register */ |
21 | #define SICFR_IPSA 0x00010000 | 32 | #define SICFR_IPSA 0x00010000 |
@@ -31,7 +42,15 @@ | |||
31 | 42 | ||
32 | struct ipic { | 43 | struct ipic { |
33 | volatile u32 __iomem *regs; | 44 | volatile u32 __iomem *regs; |
34 | unsigned int irq_offset; | 45 | |
46 | /* The remapper for this IPIC */ | ||
47 | struct irq_host *irqhost; | ||
48 | |||
49 | /* The "linux" controller struct */ | ||
50 | struct irq_chip hc_irq; | ||
51 | |||
52 | /* The device node of the interrupt controller */ | ||
53 | struct device_node *of_node; | ||
35 | }; | 54 | }; |
36 | 55 | ||
37 | struct ipic_info { | 56 | struct ipic_info { |