diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-10-01 12:04:30 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-10-01 12:04:30 -0400 |
commit | f9d885c3e59e50863565bddd2672656b57b15035 (patch) | |
tree | 07c3ac0cb2d56d037693b23ec2d09286bfee539b /arch/sh/kernel/cpu | |
parent | e15f6870a2f2a29abcdb910b80f9629bcf7f5566 (diff) |
sh: Support IRQ balancing for SH-X3 proto cores, too.
This adds in hardware IRQ auto-distribution support for SH-X3 proto CPUs,
following the SH7786 support.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/cpu')
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-shx3.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/arch/sh/kernel/cpu/sh4a/setup-shx3.c b/arch/sh/kernel/cpu/sh4a/setup-shx3.c index 9158bc5ea38b..04a487445aa6 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-shx3.c +++ b/arch/sh/kernel/cpu/sh4a/setup-shx3.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * SH-X3 Prototype Setup | 2 | * SH-X3 Prototype Setup |
3 | * | 3 | * |
4 | * Copyright (C) 2007 - 2009 Paul Mundt | 4 | * Copyright (C) 2007 - 2010 Paul Mundt |
5 | * | 5 | * |
6 | * This file is subject to the terms and conditions of the GNU General Public | 6 | * This file is subject to the terms and conditions of the GNU General Public |
7 | * License. See the file "COPYING" in the main directory of this archive | 7 | * License. See the file "COPYING" in the main directory of this archive |
@@ -354,6 +354,10 @@ static struct intc_group groups[] __initdata = { | |||
354 | DMAC1_DMINT9, DMAC1_DMINT10, DMAC1_DMINT11), | 354 | DMAC1_DMINT9, DMAC1_DMINT10, DMAC1_DMINT11), |
355 | }; | 355 | }; |
356 | 356 | ||
357 | #define INT2DISTCR0 0xfe4108a0 | ||
358 | #define INT2DISTCR1 0xfe4108a4 | ||
359 | #define INT2DISTCR2 0xfe4108a8 | ||
360 | |||
357 | static struct intc_mask_reg mask_registers[] __initdata = { | 361 | static struct intc_mask_reg mask_registers[] __initdata = { |
358 | { 0xfe410030, 0xfe410050, 32, /* CnINTMSK0 / CnINTMSKCLR0 */ | 362 | { 0xfe410030, 0xfe410050, 32, /* CnINTMSK0 / CnINTMSKCLR0 */ |
359 | { IRQ0, IRQ1, IRQ2, IRQ3 } }, | 363 | { IRQ0, IRQ1, IRQ2, IRQ3 } }, |
@@ -363,20 +367,23 @@ static struct intc_mask_reg mask_registers[] __initdata = { | |||
363 | { FE1, FE0, 0, ATAPI, VCORE0, VIN1, VIN0, IIC, | 367 | { FE1, FE0, 0, ATAPI, VCORE0, VIN1, VIN0, IIC, |
364 | DU, GPIO3, GPIO2, GPIO1, GPIO0, PAM, 0, 0, | 368 | DU, GPIO3, GPIO2, GPIO1, GPIO0, PAM, 0, 0, |
365 | 0, 0, 0, 0, 0, 0, 0, 0, /* HUDI bits ignored */ | 369 | 0, 0, 0, 0, 0, 0, 0, 0, /* HUDI bits ignored */ |
366 | 0, TMU5, TMU4, TMU3, TMU2, TMU1, TMU0, 0, } }, | 370 | 0, TMU5, TMU4, TMU3, TMU2, TMU1, TMU0, 0, }, |
371 | INTC_SMP_BALANCING(INT2DISTCR0) }, | ||
367 | { 0xfe410830, 0xfe410860, 32, /* CnINT2MSK1 / CnINT2MSKCLR1 */ | 372 | { 0xfe410830, 0xfe410860, 32, /* CnINT2MSK1 / CnINT2MSKCLR1 */ |
368 | { 0, 0, 0, 0, DTU3, DTU2, DTU1, DTU0, /* IRM bits ignored */ | 373 | { 0, 0, 0, 0, DTU3, DTU2, DTU1, DTU0, /* IRM bits ignored */ |
369 | PCII9, PCII8, PCII7, PCII6, PCII5, PCII4, PCII3, PCII2, | 374 | PCII9, PCII8, PCII7, PCII6, PCII5, PCII4, PCII3, PCII2, |
370 | PCII1, PCII0, DMAC1_DMAE, DMAC1_DMINT11, | 375 | PCII1, PCII0, DMAC1_DMAE, DMAC1_DMINT11, |
371 | DMAC1_DMINT10, DMAC1_DMINT9, DMAC1_DMINT8, DMAC1_DMINT7, | 376 | DMAC1_DMINT10, DMAC1_DMINT9, DMAC1_DMINT8, DMAC1_DMINT7, |
372 | DMAC1_DMINT6, DMAC0_DMAE, DMAC0_DMINT5, DMAC0_DMINT4, | 377 | DMAC1_DMINT6, DMAC0_DMAE, DMAC0_DMINT5, DMAC0_DMINT4, |
373 | DMAC0_DMINT3, DMAC0_DMINT2, DMAC0_DMINT1, DMAC0_DMINT0 } }, | 378 | DMAC0_DMINT3, DMAC0_DMINT2, DMAC0_DMINT1, DMAC0_DMINT0 }, |
379 | INTC_SMP_BALANCING(INT2DISTCR1) }, | ||
374 | { 0xfe410840, 0xfe410870, 32, /* CnINT2MSK2 / CnINT2MSKCLR2 */ | 380 | { 0xfe410840, 0xfe410870, 32, /* CnINT2MSK2 / CnINT2MSKCLR2 */ |
375 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 381 | { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
376 | SCIF3_TXI, SCIF3_BRI, SCIF3_RXI, SCIF3_ERI, | 382 | SCIF3_TXI, SCIF3_BRI, SCIF3_RXI, SCIF3_ERI, |
377 | SCIF2_TXI, SCIF2_BRI, SCIF2_RXI, SCIF2_ERI, | 383 | SCIF2_TXI, SCIF2_BRI, SCIF2_RXI, SCIF2_ERI, |
378 | SCIF1_TXI, SCIF1_BRI, SCIF1_RXI, SCIF1_ERI, | 384 | SCIF1_TXI, SCIF1_BRI, SCIF1_RXI, SCIF1_ERI, |
379 | SCIF0_TXI, SCIF0_BRI, SCIF0_RXI, SCIF0_ERI } }, | 385 | SCIF0_TXI, SCIF0_BRI, SCIF0_RXI, SCIF0_ERI }, |
386 | INTC_SMP_BALANCING(INT2DISTCR2) }, | ||
380 | }; | 387 | }; |
381 | 388 | ||
382 | static struct intc_prio_reg prio_registers[] __initdata = { | 389 | static struct intc_prio_reg prio_registers[] __initdata = { |