diff options
Diffstat (limited to 'include/asm-powerpc')
-rw-r--r-- | include/asm-powerpc/mpic.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/include/asm-powerpc/mpic.h b/include/asm-powerpc/mpic.h index ae84dde3bc7f..943c5a3fac8a 100644 --- a/include/asm-powerpc/mpic.h +++ b/include/asm-powerpc/mpic.h | |||
@@ -22,7 +22,9 @@ | |||
22 | #define MPIC_GREG_GLOBAL_CONF_0 0x00020 | 22 | #define MPIC_GREG_GLOBAL_CONF_0 0x00020 |
23 | #define MPIC_GREG_GCONF_RESET 0x80000000 | 23 | #define MPIC_GREG_GCONF_RESET 0x80000000 |
24 | #define MPIC_GREG_GCONF_8259_PTHROU_DIS 0x20000000 | 24 | #define MPIC_GREG_GCONF_8259_PTHROU_DIS 0x20000000 |
25 | #define MPIC_GREG_GCONF_NO_BIAS 0x10000000 | ||
25 | #define MPIC_GREG_GCONF_BASE_MASK 0x000fffff | 26 | #define MPIC_GREG_GCONF_BASE_MASK 0x000fffff |
27 | #define MPIC_GREG_GCONF_MCK 0x08000000 | ||
26 | #define MPIC_GREG_GLOBAL_CONF_1 0x00030 | 28 | #define MPIC_GREG_GLOBAL_CONF_1 0x00030 |
27 | #define MPIC_GREG_GLOBAL_CONF_1_SIE 0x08000000 | 29 | #define MPIC_GREG_GLOBAL_CONF_1_SIE 0x08000000 |
28 | #define MPIC_GREG_GLOBAL_CONF_1_CLK_RATIO_MASK 0x70000000 | 30 | #define MPIC_GREG_GLOBAL_CONF_1_CLK_RATIO_MASK 0x70000000 |
@@ -78,6 +80,7 @@ | |||
78 | #define MPIC_CPU_WHOAMI_MASK 0x0000001f | 80 | #define MPIC_CPU_WHOAMI_MASK 0x0000001f |
79 | #define MPIC_CPU_INTACK 0x000a0 | 81 | #define MPIC_CPU_INTACK 0x000a0 |
80 | #define MPIC_CPU_EOI 0x000b0 | 82 | #define MPIC_CPU_EOI 0x000b0 |
83 | #define MPIC_CPU_MCACK 0x000c0 | ||
81 | 84 | ||
82 | /* | 85 | /* |
83 | * Per-source registers | 86 | * Per-source registers |
@@ -141,6 +144,7 @@ | |||
141 | #define TSI108_CPU_WHOAMI 0xffffffff | 144 | #define TSI108_CPU_WHOAMI 0xffffffff |
142 | #define TSI108_CPU_INTACK 0x00004 | 145 | #define TSI108_CPU_INTACK 0x00004 |
143 | #define TSI108_CPU_EOI 0x00008 | 146 | #define TSI108_CPU_EOI 0x00008 |
147 | #define TSI108_CPU_MCACK 0x00004 /* Doesn't really exist here */ | ||
144 | 148 | ||
145 | /* | 149 | /* |
146 | * Per-source registers | 150 | * Per-source registers |
@@ -183,6 +187,7 @@ enum { | |||
183 | MPIC_IDX_CPU_WHOAMI, | 187 | MPIC_IDX_CPU_WHOAMI, |
184 | MPIC_IDX_CPU_INTACK, | 188 | MPIC_IDX_CPU_INTACK, |
185 | MPIC_IDX_CPU_EOI, | 189 | MPIC_IDX_CPU_EOI, |
190 | MPIC_IDX_CPU_MCACK, | ||
186 | 191 | ||
187 | MPIC_IDX_IRQ_BASE, | 192 | MPIC_IDX_IRQ_BASE, |
188 | MPIC_IDX_IRQ_STRIDE, | 193 | MPIC_IDX_IRQ_STRIDE, |
@@ -344,6 +349,10 @@ struct mpic | |||
344 | #define MPIC_USES_DCR 0x00000080 | 349 | #define MPIC_USES_DCR 0x00000080 |
345 | /* MPIC has 11-bit vector fields (or larger) */ | 350 | /* MPIC has 11-bit vector fields (or larger) */ |
346 | #define MPIC_LARGE_VECTORS 0x00000100 | 351 | #define MPIC_LARGE_VECTORS 0x00000100 |
352 | /* Enable delivery of prio 15 interrupts as MCK instead of EE */ | ||
353 | #define MPIC_ENABLE_MCK 0x00000200 | ||
354 | /* Disable bias among target selection, spread interrupts evenly */ | ||
355 | #define MPIC_NO_BIAS 0x00000400 | ||
347 | 356 | ||
348 | /* MPIC HW modification ID */ | 357 | /* MPIC HW modification ID */ |
349 | #define MPIC_REGSET_MASK 0xf0000000 | 358 | #define MPIC_REGSET_MASK 0xf0000000 |
@@ -447,10 +456,19 @@ extern void mpic_send_ipi(unsigned int ipi_no, unsigned int cpu_mask); | |||
447 | /* Send a message (IPI) to a given target (cpu number or MSG_*) */ | 456 | /* Send a message (IPI) to a given target (cpu number or MSG_*) */ |
448 | void smp_mpic_message_pass(int target, int msg); | 457 | void smp_mpic_message_pass(int target, int msg); |
449 | 458 | ||
459 | /* Unmask a specific virq */ | ||
460 | extern void mpic_unmask_irq(unsigned int irq); | ||
461 | /* Mask a specific virq */ | ||
462 | extern void mpic_mask_irq(unsigned int irq); | ||
463 | /* EOI a specific virq */ | ||
464 | extern void mpic_end_irq(unsigned int irq); | ||
465 | |||
450 | /* Fetch interrupt from a given mpic */ | 466 | /* Fetch interrupt from a given mpic */ |
451 | extern unsigned int mpic_get_one_irq(struct mpic *mpic); | 467 | extern unsigned int mpic_get_one_irq(struct mpic *mpic); |
452 | /* This one gets to the primary mpic */ | 468 | /* This one gets from the primary mpic */ |
453 | extern unsigned int mpic_get_irq(void); | 469 | extern unsigned int mpic_get_irq(void); |
470 | /* Fetch Machine Check interrupt from primary mpic */ | ||
471 | extern unsigned int mpic_get_mcirq(void); | ||
454 | 472 | ||
455 | /* Set the EPIC clock ratio */ | 473 | /* Set the EPIC clock ratio */ |
456 | void mpic_set_clk_ratio(struct mpic *mpic, u32 clock_ratio); | 474 | void mpic_set_clk_ratio(struct mpic *mpic, u32 clock_ratio); |