diff options
Diffstat (limited to 'arch/powerpc/include/asm/mpic.h')
-rw-r--r-- | arch/powerpc/include/asm/mpic.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/mpic.h b/arch/powerpc/include/asm/mpic.h index c9f698a994be..c0f9ef90f0b8 100644 --- a/arch/powerpc/include/asm/mpic.h +++ b/arch/powerpc/include/asm/mpic.h | |||
@@ -63,6 +63,7 @@ | |||
63 | */ | 63 | */ |
64 | #define MPIC_TIMER_BASE 0x01100 | 64 | #define MPIC_TIMER_BASE 0x01100 |
65 | #define MPIC_TIMER_STRIDE 0x40 | 65 | #define MPIC_TIMER_STRIDE 0x40 |
66 | #define MPIC_TIMER_GROUP_STRIDE 0x1000 | ||
66 | 67 | ||
67 | #define MPIC_TIMER_CURRENT_CNT 0x00000 | 68 | #define MPIC_TIMER_CURRENT_CNT 0x00000 |
68 | #define MPIC_TIMER_BASE_CNT 0x00010 | 69 | #define MPIC_TIMER_BASE_CNT 0x00010 |
@@ -110,10 +111,16 @@ | |||
110 | #define MPIC_VECPRI_SENSE_MASK 0x00400000 | 111 | #define MPIC_VECPRI_SENSE_MASK 0x00400000 |
111 | #define MPIC_IRQ_DESTINATION 0x00010 | 112 | #define MPIC_IRQ_DESTINATION 0x00010 |
112 | 113 | ||
114 | #define MPIC_FSL_BRR1 0x00000 | ||
115 | #define MPIC_FSL_BRR1_VER 0x0000ffff | ||
116 | |||
113 | #define MPIC_MAX_IRQ_SOURCES 2048 | 117 | #define MPIC_MAX_IRQ_SOURCES 2048 |
114 | #define MPIC_MAX_CPUS 32 | 118 | #define MPIC_MAX_CPUS 32 |
115 | #define MPIC_MAX_ISU 32 | 119 | #define MPIC_MAX_ISU 32 |
116 | 120 | ||
121 | #define MPIC_MAX_ERR 32 | ||
122 | #define MPIC_FSL_ERR_INT 16 | ||
123 | |||
117 | /* | 124 | /* |
118 | * Tsi108 implementation of MPIC has many differences from the original one | 125 | * Tsi108 implementation of MPIC has many differences from the original one |
119 | */ | 126 | */ |
@@ -266,6 +273,7 @@ struct mpic | |||
266 | struct irq_chip hc_ipi; | 273 | struct irq_chip hc_ipi; |
267 | #endif | 274 | #endif |
268 | struct irq_chip hc_tm; | 275 | struct irq_chip hc_tm; |
276 | struct irq_chip hc_err; | ||
269 | const char *name; | 277 | const char *name; |
270 | /* Flags */ | 278 | /* Flags */ |
271 | unsigned int flags; | 279 | unsigned int flags; |
@@ -279,6 +287,8 @@ struct mpic | |||
279 | /* vector numbers used for internal sources (ipi/timers) */ | 287 | /* vector numbers used for internal sources (ipi/timers) */ |
280 | unsigned int ipi_vecs[4]; | 288 | unsigned int ipi_vecs[4]; |
281 | 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]; | ||
282 | 292 | ||
283 | /* Spurious vector to program into unused sources */ | 293 | /* Spurious vector to program into unused sources */ |
284 | unsigned int spurious_vec; | 294 | unsigned int spurious_vec; |
@@ -296,11 +306,15 @@ struct mpic | |||
296 | phys_addr_t paddr; | 306 | phys_addr_t paddr; |
297 | 307 | ||
298 | /* The various ioremap'ed bases */ | 308 | /* The various ioremap'ed bases */ |
309 | struct mpic_reg_bank thiscpuregs; | ||
299 | struct mpic_reg_bank gregs; | 310 | struct mpic_reg_bank gregs; |
300 | struct mpic_reg_bank tmregs; | 311 | struct mpic_reg_bank tmregs; |
301 | struct mpic_reg_bank cpuregs[MPIC_MAX_CPUS]; | 312 | struct mpic_reg_bank cpuregs[MPIC_MAX_CPUS]; |
302 | struct mpic_reg_bank isus[MPIC_MAX_ISU]; | 313 | struct mpic_reg_bank isus[MPIC_MAX_ISU]; |
303 | 314 | ||
315 | /* ioremap'ed base for error interrupt registers */ | ||
316 | u32 __iomem *err_regs; | ||
317 | |||
304 | /* Protected sources */ | 318 | /* Protected sources */ |
305 | unsigned long *protected; | 319 | unsigned long *protected; |
306 | 320 | ||
@@ -365,6 +379,11 @@ struct mpic | |||
365 | #define MPIC_NO_RESET 0x00004000 | 379 | #define MPIC_NO_RESET 0x00004000 |
366 | /* Freescale MPIC (compatible includes "fsl,mpic") */ | 380 | /* Freescale MPIC (compatible includes "fsl,mpic") */ |
367 | #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 | ||
368 | 387 | ||
369 | /* MPIC HW modification ID */ | 388 | /* MPIC HW modification ID */ |
370 | #define MPIC_REGSET_MASK 0xf0000000 | 389 | #define MPIC_REGSET_MASK 0xf0000000 |