diff options
author | Kumar Gala <galak@freescale.com> | 2005-06-21 20:15:25 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-21 21:46:24 -0400 |
commit | 65145e060b1c933ebc4215c3b493f586e08a1d5c (patch) | |
tree | 7468cf3075cbd10863886ac1bd3d0f08b25fec2d /arch/ppc/platforms/85xx/mpc85xx_cds_common.c | |
parent | eee4146ab908188e556641f1cd7a10e894d10edb (diff) |
[PATCH] ppc32: Added support for all MPC8548 internal interrupts
The MPC8548 has 48 internal interrupts and 12 external interrupts. The
previous generation PowerQUICC III devices only had 32 internal and 12
external interrupts on the primary interrupt controller.
Expanded the number of internal interrupts to 48 for all PowerQUICC III
processors and moved the interrupt numbers for the external after the 48
internal interrupt lines, rather than putting the 12 new internal
interrupts at the end and ifdef'ng the whole mess. As parted of this
created a macro which represents the internal interrupt senses since they
are the same on all PQ3 processors.
Signed-off-by: Kumar Gala <kumar.gala@freescale.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/ppc/platforms/85xx/mpc85xx_cds_common.c')
-rw-r--r-- | arch/ppc/platforms/85xx/mpc85xx_cds_common.c | 41 |
1 files changed, 6 insertions, 35 deletions
diff --git a/arch/ppc/platforms/85xx/mpc85xx_cds_common.c b/arch/ppc/platforms/85xx/mpc85xx_cds_common.c index 2d04bf599d2..bee6633f460 100644 --- a/arch/ppc/platforms/85xx/mpc85xx_cds_common.c +++ b/arch/ppc/platforms/85xx/mpc85xx_cds_common.c | |||
@@ -73,40 +73,8 @@ static int cds_pci_slot = 2; | |||
73 | static volatile u8 * cadmus; | 73 | static volatile u8 * cadmus; |
74 | 74 | ||
75 | /* Internal interrupts are all Level Sensitive, and Positive Polarity */ | 75 | /* Internal interrupts are all Level Sensitive, and Positive Polarity */ |
76 | |||
77 | static u_char mpc85xx_cds_openpic_initsenses[] __initdata = { | 76 | static u_char mpc85xx_cds_openpic_initsenses[] __initdata = { |
78 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 0: L2 Cache */ | 77 | MPC85XX_INTERNAL_IRQ_SENSES, |
79 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 1: ECM */ | ||
80 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 2: DDR DRAM */ | ||
81 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 3: LBIU */ | ||
82 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 4: DMA 0 */ | ||
83 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 5: DMA 1 */ | ||
84 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 6: DMA 2 */ | ||
85 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 7: DMA 3 */ | ||
86 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 8: PCI/PCI-X */ | ||
87 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 9: RIO Inbound Port Write Error */ | ||
88 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 10: RIO Doorbell Inbound */ | ||
89 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 11: RIO Outbound Message */ | ||
90 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 12: RIO Inbound Message */ | ||
91 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 13: TSEC 0 Transmit */ | ||
92 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 14: TSEC 0 Receive */ | ||
93 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 15: Unused */ | ||
94 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 16: Unused */ | ||
95 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 17: Unused */ | ||
96 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 18: TSEC 0 Receive/Transmit Error */ | ||
97 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 19: TSEC 1 Transmit */ | ||
98 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 20: TSEC 1 Receive */ | ||
99 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 21: Unused */ | ||
100 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 22: Unused */ | ||
101 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 23: Unused */ | ||
102 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 24: TSEC 1 Receive/Transmit Error */ | ||
103 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 25: Fast Ethernet */ | ||
104 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 26: DUART */ | ||
105 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 27: I2C */ | ||
106 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 28: Performance Monitor */ | ||
107 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 29: Unused */ | ||
108 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 30: CPM */ | ||
109 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 31: Unused */ | ||
110 | #if defined(CONFIG_PCI) | 78 | #if defined(CONFIG_PCI) |
111 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* External 0: PCI1 slot */ | 79 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* External 0: PCI1 slot */ |
112 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* External 1: PCI1 slot */ | 80 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* External 1: PCI1 slot */ |
@@ -182,7 +150,6 @@ void __init | |||
182 | mpc85xx_cds_init_IRQ(void) | 150 | mpc85xx_cds_init_IRQ(void) |
183 | { | 151 | { |
184 | bd_t *binfo = (bd_t *) __res; | 152 | bd_t *binfo = (bd_t *) __res; |
185 | int i; | ||
186 | 153 | ||
187 | /* Determine the Physical Address of the OpenPIC regs */ | 154 | /* Determine the Physical Address of the OpenPIC regs */ |
188 | phys_addr_t OpenPIC_PAddr = binfo->bi_immr_base + MPC85xx_OPENPIC_OFFSET; | 155 | phys_addr_t OpenPIC_PAddr = binfo->bi_immr_base + MPC85xx_OPENPIC_OFFSET; |
@@ -191,9 +158,13 @@ mpc85xx_cds_init_IRQ(void) | |||
191 | OpenPIC_NumInitSenses = sizeof (mpc85xx_cds_openpic_initsenses); | 158 | OpenPIC_NumInitSenses = sizeof (mpc85xx_cds_openpic_initsenses); |
192 | 159 | ||
193 | /* Skip reserved space and internal sources */ | 160 | /* Skip reserved space and internal sources */ |
161 | #ifdef CONFIG_MPC8548 | ||
162 | openpic_set_sources(0, 48, OpenPIC_Addr + 0x10200); | ||
163 | #else | ||
194 | openpic_set_sources(0, 32, OpenPIC_Addr + 0x10200); | 164 | openpic_set_sources(0, 32, OpenPIC_Addr + 0x10200); |
165 | #endif | ||
195 | /* Map PIC IRQs 0-11 */ | 166 | /* Map PIC IRQs 0-11 */ |
196 | openpic_set_sources(32, 12, OpenPIC_Addr + 0x10000); | 167 | openpic_set_sources(48, 12, OpenPIC_Addr + 0x10000); |
197 | 168 | ||
198 | /* we let openpic interrupts starting from an offset, to | 169 | /* we let openpic interrupts starting from an offset, to |
199 | * leave space for cascading interrupts underneath. | 170 | * leave space for cascading interrupts underneath. |