diff options
author | Heiko Stuebner <heiko@sntech.de> | 2013-02-12 12:59:27 -0500 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2013-03-05 06:20:43 -0500 |
commit | 7cefed5e6b4b61b6bed309e9405eda0a00e9b66c (patch) | |
tree | 2325a8c448afc5ea9b5e4581652216bbd9faa9c3 /arch/arm/mach-s3c24xx | |
parent | 2286cf467e460eabfd0a188c5c5fb46955dcf024 (diff) |
ARM: S3C24XX: integrate s3c2440 irqs into common init
Now all the arch_initcalls for s3c244x irqs are gone.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/mach-s3c24xx')
-rw-r--r-- | arch/arm/mach-s3c24xx/irq.c | 46 |
1 files changed, 13 insertions, 33 deletions
diff --git a/arch/arm/mach-s3c24xx/irq.c b/arch/arm/mach-s3c24xx/irq.c index 1804e23baad3..025c89897f19 100644 --- a/arch/arm/mach-s3c24xx/irq.c +++ b/arch/arm/mach-s3c24xx/irq.c | |||
@@ -838,44 +838,12 @@ static struct irq_chip s3c_irq_wdtac97 = { | |||
838 | .irq_ack = s3c_irq_wdtac97_ack, | 838 | .irq_ack = s3c_irq_wdtac97_ack, |
839 | }; | 839 | }; |
840 | 840 | ||
841 | static int s3c2440_irq_add(struct device *dev, struct subsys_interface *sif) | 841 | void __init s3c2440_init_irq(void) |
842 | { | 842 | { |
843 | unsigned int irqno; | 843 | unsigned int irqno; |
844 | 844 | ||
845 | printk("S3C2440: IRQ Support\n"); | 845 | printk("S3C2440: IRQ Support\n"); |
846 | 846 | ||
847 | /* add new chained handler for wdt, ac7 */ | ||
848 | |||
849 | irq_set_chip_and_handler(IRQ_WDT, &s3c_irq_level_chip, | ||
850 | handle_level_irq); | ||
851 | irq_set_chained_handler(IRQ_WDT, s3c_irq_demux_wdtac97); | ||
852 | |||
853 | for (irqno = IRQ_S3C2440_WDT; irqno <= IRQ_S3C2440_AC97; irqno++) { | ||
854 | irq_set_chip_and_handler(irqno, &s3c_irq_wdtac97, | ||
855 | handle_level_irq); | ||
856 | set_irq_flags(irqno, IRQF_VALID); | ||
857 | } | ||
858 | |||
859 | return 0; | ||
860 | } | ||
861 | |||
862 | static struct subsys_interface s3c2440_irq_interface = { | ||
863 | .name = "s3c2440_irq", | ||
864 | .subsys = &s3c2440_subsys, | ||
865 | .add_dev = s3c2440_irq_add, | ||
866 | }; | ||
867 | |||
868 | static int s3c2440_irq_init(void) | ||
869 | { | ||
870 | return subsys_interface_register(&s3c2440_irq_interface); | ||
871 | } | ||
872 | |||
873 | arch_initcall(s3c2440_irq_init); | ||
874 | |||
875 | void __init s3c2440_init_irq(void) | ||
876 | { | ||
877 | unsigned int irqno; | ||
878 | |||
879 | s3c24xx_init_irq(); | 847 | s3c24xx_init_irq(); |
880 | 848 | ||
881 | irq_set_chip_and_handler(IRQ_NFCON, &s3c_irq_level_chip, | 849 | irq_set_chip_and_handler(IRQ_NFCON, &s3c_irq_level_chip, |
@@ -893,6 +861,18 @@ void __init s3c2440_init_irq(void) | |||
893 | handle_level_irq); | 861 | handle_level_irq); |
894 | set_irq_flags(irqno, IRQF_VALID); | 862 | set_irq_flags(irqno, IRQF_VALID); |
895 | } | 863 | } |
864 | |||
865 | /* add new chained handler for wdt, ac7 */ | ||
866 | |||
867 | irq_set_chip_and_handler(IRQ_WDT, &s3c_irq_level_chip, | ||
868 | handle_level_irq); | ||
869 | irq_set_chained_handler(IRQ_WDT, s3c_irq_demux_wdtac97); | ||
870 | |||
871 | for (irqno = IRQ_S3C2440_WDT; irqno <= IRQ_S3C2440_AC97; irqno++) { | ||
872 | irq_set_chip_and_handler(irqno, &s3c_irq_wdtac97, | ||
873 | handle_level_irq); | ||
874 | set_irq_flags(irqno, IRQF_VALID); | ||
875 | } | ||
896 | } | 876 | } |
897 | #endif | 877 | #endif |
898 | 878 | ||