aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s3c24xx/irq.c
diff options
context:
space:
mode:
authorHeiko Stuebner <heiko@sntech.de>2013-03-06 22:38:19 -0500
committerKukjin Kim <kgene.kim@samsung.com>2013-03-06 22:38:19 -0500
commitf182aa1dfa6283a1193308c4917aef4a7a982b8c (patch)
treeea6575bfb49dd0c280374caee204b8697acdcf95 /arch/arm/mach-s3c24xx/irq.c
parent0fe3cb1ea5bf382cec946328ee25b233cab45c4d (diff)
ARM: S3C24XX: move s3c24xx_init_irq to s3c2410_init_irq
The s3c24xx_init_irq function that was the base for all irq inits is now only used to initialize the real s3c2410 irqs. Therefore rename it and also move its declaration from plat/cpu.h to common.h The eint declaration is used by the vast majority of the SoCs and gets therefore placed outside any ifdefs. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/mach-s3c24xx/irq.c')
-rw-r--r--arch/arm/mach-s3c24xx/irq.c69
1 files changed, 33 insertions, 36 deletions
diff --git a/arch/arm/mach-s3c24xx/irq.c b/arch/arm/mach-s3c24xx/irq.c
index a6a7554d946e..ee4765403ab0 100644
--- a/arch/arm/mach-s3c24xx/irq.c
+++ b/arch/arm/mach-s3c24xx/irq.c
@@ -509,12 +509,35 @@ err:
509 return ERR_PTR(ret); 509 return ERR_PTR(ret);
510} 510}
511 511
512/* s3c24xx_init_irq 512static struct s3c_irq_data init_eint[32] = {
513 * 513 { .type = S3C_IRQTYPE_NONE, }, /* reserved */
514 * Initialise S3C2410 IRQ system 514 { .type = S3C_IRQTYPE_NONE, }, /* reserved */
515*/ 515 { .type = S3C_IRQTYPE_NONE, }, /* reserved */
516 { .type = S3C_IRQTYPE_NONE, }, /* reserved */
517 { .type = S3C_IRQTYPE_EINT, .parent_irq = 4 }, /* EINT4 */
518 { .type = S3C_IRQTYPE_EINT, .parent_irq = 4 }, /* EINT5 */
519 { .type = S3C_IRQTYPE_EINT, .parent_irq = 4 }, /* EINT6 */
520 { .type = S3C_IRQTYPE_EINT, .parent_irq = 4 }, /* EINT7 */
521 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT8 */
522 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT9 */
523 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT10 */
524 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT11 */
525 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT12 */
526 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT13 */
527 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT14 */
528 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT15 */
529 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT16 */
530 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT17 */
531 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT18 */
532 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT19 */
533 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT20 */
534 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT21 */
535 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT22 */
536 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT23 */
537};
516 538
517static struct s3c_irq_data init_base[32] = { 539#ifdef CONFIG_CPU_S3C2410
540static struct s3c_irq_data init_s3c2410base[32] = {
518 { .type = S3C_IRQTYPE_EINT, }, /* EINT0 */ 541 { .type = S3C_IRQTYPE_EINT, }, /* EINT0 */
519 { .type = S3C_IRQTYPE_EINT, }, /* EINT1 */ 542 { .type = S3C_IRQTYPE_EINT, }, /* EINT1 */
520 { .type = S3C_IRQTYPE_EINT, }, /* EINT2 */ 543 { .type = S3C_IRQTYPE_EINT, }, /* EINT2 */
@@ -549,34 +572,7 @@ static struct s3c_irq_data init_base[32] = {
549 { .type = S3C_IRQTYPE_LEVEL, }, /* ADCPARENT */ 572 { .type = S3C_IRQTYPE_LEVEL, }, /* ADCPARENT */
550}; 573};
551 574
552static struct s3c_irq_data init_eint[32] = { 575static struct s3c_irq_data init_s3c2410subint[32] = {
553 { .type = S3C_IRQTYPE_NONE, }, /* reserved */
554 { .type = S3C_IRQTYPE_NONE, }, /* reserved */
555 { .type = S3C_IRQTYPE_NONE, }, /* reserved */
556 { .type = S3C_IRQTYPE_NONE, }, /* reserved */
557 { .type = S3C_IRQTYPE_EINT, .parent_irq = 4 }, /* EINT4 */
558 { .type = S3C_IRQTYPE_EINT, .parent_irq = 4 }, /* EINT5 */
559 { .type = S3C_IRQTYPE_EINT, .parent_irq = 4 }, /* EINT6 */
560 { .type = S3C_IRQTYPE_EINT, .parent_irq = 4 }, /* EINT7 */
561 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT8 */
562 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT9 */
563 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT10 */
564 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT11 */
565 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT12 */
566 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT13 */
567 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT14 */
568 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT15 */
569 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT16 */
570 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT17 */
571 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT18 */
572 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT19 */
573 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT20 */
574 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT21 */
575 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT22 */
576 { .type = S3C_IRQTYPE_EINT, .parent_irq = 5 }, /* EINT23 */
577};
578
579static struct s3c_irq_data init_subint[32] = {
580 { .type = S3C_IRQTYPE_LEVEL, .parent_irq = 28 }, /* UART0-RX */ 576 { .type = S3C_IRQTYPE_LEVEL, .parent_irq = 28 }, /* UART0-RX */
581 { .type = S3C_IRQTYPE_LEVEL, .parent_irq = 28 }, /* UART0-TX */ 577 { .type = S3C_IRQTYPE_LEVEL, .parent_irq = 28 }, /* UART0-TX */
582 { .type = S3C_IRQTYPE_LEVEL, .parent_irq = 28 }, /* UART0-ERR */ 578 { .type = S3C_IRQTYPE_LEVEL, .parent_irq = 28 }, /* UART0-ERR */
@@ -590,7 +586,7 @@ static struct s3c_irq_data init_subint[32] = {
590 { .type = S3C_IRQTYPE_EDGE, .parent_irq = 31 }, /* ADC */ 586 { .type = S3C_IRQTYPE_EDGE, .parent_irq = 31 }, /* ADC */
591}; 587};
592 588
593void __init s3c24xx_init_irq(void) 589void __init s3c2410_init_irq(void)
594{ 590{
595 struct s3c_irq_intc *main_intc; 591 struct s3c_irq_intc *main_intc;
596 592
@@ -598,15 +594,16 @@ void __init s3c24xx_init_irq(void)
598 init_FIQ(FIQ_START); 594 init_FIQ(FIQ_START);
599#endif 595#endif
600 596
601 main_intc = s3c24xx_init_intc(NULL, &init_base[0], NULL, 0x4a000000); 597 main_intc = s3c24xx_init_intc(NULL, &init_s3c2410base[0], NULL, 0x4a000000);
602 if (IS_ERR(main_intc)) { 598 if (IS_ERR(main_intc)) {
603 pr_err("irq: could not create main interrupt controller\n"); 599 pr_err("irq: could not create main interrupt controller\n");
604 return; 600 return;
605 } 601 }
606 602
607 s3c24xx_init_intc(NULL, &init_subint[0], main_intc, 0x4a000018); 603 s3c24xx_init_intc(NULL, &init_s3c2410subint[0], main_intc, 0x4a000018);
608 s3c24xx_init_intc(NULL, &init_eint[0], main_intc, 0x560000a4); 604 s3c24xx_init_intc(NULL, &init_eint[0], main_intc, 0x560000a4);
609} 605}
606#endif
610 607
611#ifdef CONFIG_CPU_S3C2412 608#ifdef CONFIG_CPU_S3C2412
612static struct s3c_irq_data init_s3c2412base[32] = { 609static struct s3c_irq_data init_s3c2412base[32] = {