diff options
author | Heiko Stuebner <heiko@sntech.de> | 2013-03-06 22:38:19 -0500 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2013-03-06 22:38:19 -0500 |
commit | f182aa1dfa6283a1193308c4917aef4a7a982b8c (patch) | |
tree | ea6575bfb49dd0c280374caee204b8697acdcf95 /arch/arm/mach-s3c24xx/irq.c | |
parent | 0fe3cb1ea5bf382cec946328ee25b233cab45c4d (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.c | 69 |
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 | 512 | static 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 | ||
517 | static struct s3c_irq_data init_base[32] = { | 539 | #ifdef CONFIG_CPU_S3C2410 |
540 | static 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 | ||
552 | static struct s3c_irq_data init_eint[32] = { | 575 | static 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 | |||
579 | static 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 | ||
593 | void __init s3c24xx_init_irq(void) | 589 | void __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 |
612 | static struct s3c_irq_data init_s3c2412base[32] = { | 609 | static struct s3c_irq_data init_s3c2412base[32] = { |