diff options
Diffstat (limited to 'arch/powerpc/include/asm/mpic.h')
-rw-r--r-- | arch/powerpc/include/asm/mpic.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/mpic.h b/arch/powerpc/include/asm/mpic.h index e14d35d572af..c0f9ef90f0b8 100644 --- a/arch/powerpc/include/asm/mpic.h +++ b/arch/powerpc/include/asm/mpic.h | |||
@@ -118,6 +118,9 @@ | |||
118 | #define MPIC_MAX_CPUS 32 | 118 | #define MPIC_MAX_CPUS 32 |
119 | #define MPIC_MAX_ISU 32 | 119 | #define MPIC_MAX_ISU 32 |
120 | 120 | ||
121 | #define MPIC_MAX_ERR 32 | ||
122 | #define MPIC_FSL_ERR_INT 16 | ||
123 | |||
121 | /* | 124 | /* |
122 | * Tsi108 implementation of MPIC has many differences from the original one | 125 | * Tsi108 implementation of MPIC has many differences from the original one |
123 | */ | 126 | */ |
@@ -270,6 +273,7 @@ struct mpic | |||
270 | struct irq_chip hc_ipi; | 273 | struct irq_chip hc_ipi; |
271 | #endif | 274 | #endif |
272 | struct irq_chip hc_tm; | 275 | struct irq_chip hc_tm; |
276 | struct irq_chip hc_err; | ||
273 | const char *name; | 277 | const char *name; |
274 | /* Flags */ | 278 | /* Flags */ |
275 | unsigned int flags; | 279 | unsigned int flags; |
@@ -283,6 +287,8 @@ struct mpic | |||
283 | /* vector numbers used for internal sources (ipi/timers) */ | 287 | /* vector numbers used for internal sources (ipi/timers) */ |
284 | unsigned int ipi_vecs[4]; | 288 | unsigned int ipi_vecs[4]; |
285 | unsigned int timer_vecs[8]; | 289 | unsigned int timer_vecs[8]; |
290 | /* vector numbers used for FSL MPIC error interrupts */ | ||
291 | unsigned int err_int_vecs[MPIC_MAX_ERR]; | ||
286 | 292 | ||
287 | /* Spurious vector to program into unused sources */ | 293 | /* Spurious vector to program into unused sources */ |
288 | unsigned int spurious_vec; | 294 | unsigned int spurious_vec; |
@@ -306,6 +312,9 @@ struct mpic | |||
306 | struct mpic_reg_bank cpuregs[MPIC_MAX_CPUS]; | 312 | struct mpic_reg_bank cpuregs[MPIC_MAX_CPUS]; |
307 | struct mpic_reg_bank isus[MPIC_MAX_ISU]; | 313 | struct mpic_reg_bank isus[MPIC_MAX_ISU]; |
308 | 314 | ||
315 | /* ioremap'ed base for error interrupt registers */ | ||
316 | u32 __iomem *err_regs; | ||
317 | |||
309 | /* Protected sources */ | 318 | /* Protected sources */ |
310 | unsigned long *protected; | 319 | unsigned long *protected; |
311 | 320 | ||
@@ -370,6 +379,11 @@ struct mpic | |||
370 | #define MPIC_NO_RESET 0x00004000 | 379 | #define MPIC_NO_RESET 0x00004000 |
371 | /* Freescale MPIC (compatible includes "fsl,mpic") */ | 380 | /* Freescale MPIC (compatible includes "fsl,mpic") */ |
372 | #define MPIC_FSL 0x00008000 | 381 | #define MPIC_FSL 0x00008000 |
382 | /* Freescale MPIC supports EIMR (error interrupt mask register). | ||
383 | * This flag is set for MPIC version >= 4.1 (version determined | ||
384 | * from the BRR1 register). | ||
385 | */ | ||
386 | #define MPIC_FSL_HAS_EIMR 0x00010000 | ||
373 | 387 | ||
374 | /* MPIC HW modification ID */ | 388 | /* MPIC HW modification ID */ |
375 | #define MPIC_REGSET_MASK 0xf0000000 | 389 | #define MPIC_REGSET_MASK 0xf0000000 |