aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-davinci/dm355.c
diff options
context:
space:
mode:
authorMark A. Greer <mgreer@mvista.com>2009-04-15 15:40:00 -0400
committerKevin Hilman <khilman@deeprootsystems.com>2009-05-26 11:18:09 -0400
commit673dd36f0d0cf8893d6b46d524ad80e81076b885 (patch)
tree50bd5c954e1b006c171c9effe72ac70e0a8203b4 /arch/arm/mach-davinci/dm355.c
parent0e585952ac6a06b3c77d6b8eadb9c359766a700d (diff)
davinci: Move interrupt ctlr info to SoC infrastructure
Use the SoC infrastructure to hold the interrupt controller information (i.e., base address, default priorities, interrupt controller type, and the number of IRQs). The interrupt controller base, although initially put in the soc_info structure's intc_base field, is eventually put in the global 'davinci_intc_base' so the low-level interrupt code can access it without a dereference. These changes enable the SoC default irq priorities to be put in the SoC-specific files, and the interrupt controller to be at any base address. Signed-off-by: Mark A. Greer <mgreer@mvista.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch/arm/mach-davinci/dm355.c')
-rw-r--r--arch/arm/mach-davinci/dm355.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c
index f735ed9d2d10..e8c01ffe818a 100644
--- a/arch/arm/mach-davinci/dm355.c
+++ b/arch/arm/mach-davinci/dm355.c
@@ -470,6 +470,71 @@ EVT_CFG(DM355, EVT26_MMC0_RX, 2, 1, 0, false)
470#endif 470#endif
471}; 471};
472 472
473static u8 dm355_default_priorities[DAVINCI_N_AINTC_IRQ] = {
474 [IRQ_DM355_CCDC_VDINT0] = 2,
475 [IRQ_DM355_CCDC_VDINT1] = 6,
476 [IRQ_DM355_CCDC_VDINT2] = 6,
477 [IRQ_DM355_IPIPE_HST] = 6,
478 [IRQ_DM355_H3AINT] = 6,
479 [IRQ_DM355_IPIPE_SDR] = 6,
480 [IRQ_DM355_IPIPEIFINT] = 6,
481 [IRQ_DM355_OSDINT] = 7,
482 [IRQ_DM355_VENCINT] = 6,
483 [IRQ_ASQINT] = 6,
484 [IRQ_IMXINT] = 6,
485 [IRQ_USBINT] = 4,
486 [IRQ_DM355_RTOINT] = 4,
487 [IRQ_DM355_UARTINT2] = 7,
488 [IRQ_DM355_TINT6] = 7,
489 [IRQ_CCINT0] = 5, /* dma */
490 [IRQ_CCERRINT] = 5, /* dma */
491 [IRQ_TCERRINT0] = 5, /* dma */
492 [IRQ_TCERRINT] = 5, /* dma */
493 [IRQ_DM355_SPINT2_1] = 7,
494 [IRQ_DM355_TINT7] = 4,
495 [IRQ_DM355_SDIOINT0] = 7,
496 [IRQ_MBXINT] = 7,
497 [IRQ_MBRINT] = 7,
498 [IRQ_MMCINT] = 7,
499 [IRQ_DM355_MMCINT1] = 7,
500 [IRQ_DM355_PWMINT3] = 7,
501 [IRQ_DDRINT] = 7,
502 [IRQ_AEMIFINT] = 7,
503 [IRQ_DM355_SDIOINT1] = 4,
504 [IRQ_TINT0_TINT12] = 2, /* clockevent */
505 [IRQ_TINT0_TINT34] = 2, /* clocksource */
506 [IRQ_TINT1_TINT12] = 7, /* DSP timer */
507 [IRQ_TINT1_TINT34] = 7, /* system tick */
508 [IRQ_PWMINT0] = 7,
509 [IRQ_PWMINT1] = 7,
510 [IRQ_PWMINT2] = 7,
511 [IRQ_I2C] = 3,
512 [IRQ_UARTINT0] = 3,
513 [IRQ_UARTINT1] = 3,
514 [IRQ_DM355_SPINT0_0] = 3,
515 [IRQ_DM355_SPINT0_1] = 3,
516 [IRQ_DM355_GPIO0] = 3,
517 [IRQ_DM355_GPIO1] = 7,
518 [IRQ_DM355_GPIO2] = 4,
519 [IRQ_DM355_GPIO3] = 4,
520 [IRQ_DM355_GPIO4] = 7,
521 [IRQ_DM355_GPIO5] = 7,
522 [IRQ_DM355_GPIO6] = 7,
523 [IRQ_DM355_GPIO7] = 7,
524 [IRQ_DM355_GPIO8] = 7,
525 [IRQ_DM355_GPIO9] = 7,
526 [IRQ_DM355_GPIOBNK0] = 7,
527 [IRQ_DM355_GPIOBNK1] = 7,
528 [IRQ_DM355_GPIOBNK2] = 7,
529 [IRQ_DM355_GPIOBNK3] = 7,
530 [IRQ_DM355_GPIOBNK4] = 7,
531 [IRQ_DM355_GPIOBNK5] = 7,
532 [IRQ_DM355_GPIOBNK6] = 7,
533 [IRQ_COMMTX] = 7,
534 [IRQ_COMMRX] = 7,
535 [IRQ_EMUINT] = 7,
536};
537
473/*----------------------------------------------------------------------*/ 538/*----------------------------------------------------------------------*/
474 539
475static const s8 dma_chan_dm355_no_event[] = { 540static const s8 dma_chan_dm355_no_event[] = {
@@ -563,6 +628,10 @@ static struct davinci_soc_info davinci_soc_info_dm355 = {
563 .pinmux_base = IO_ADDRESS(DAVINCI_SYSTEM_MODULE_BASE), 628 .pinmux_base = IO_ADDRESS(DAVINCI_SYSTEM_MODULE_BASE),
564 .pinmux_pins = dm355_pins, 629 .pinmux_pins = dm355_pins,
565 .pinmux_pins_num = ARRAY_SIZE(dm355_pins), 630 .pinmux_pins_num = ARRAY_SIZE(dm355_pins),
631 .intc_base = IO_ADDRESS(DAVINCI_ARM_INTC_BASE),
632 .intc_type = DAVINCI_INTC_TYPE_AINTC,
633 .intc_irq_prios = dm355_default_priorities,
634 .intc_irq_num = DAVINCI_N_AINTC_IRQ,
566}; 635};
567 636
568void __init dm355_init(void) 637void __init dm355_init(void)