ARM: S3C24XX: integrate s3c2440 irqs into common init
authorHeiko Stuebner <heiko@sntech.de>
Tue, 12 Feb 2013 17:59:27 +0000 (09:59 -0800)
committerKukjin Kim <kgene.kim@samsung.com>
Tue, 5 Mar 2013 11:20:43 +0000 (20:20 +0900)
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>
arch/arm/mach-s3c24xx/irq.c

index 1804e23..025c898 100644 (file)
@@ -838,44 +838,12 @@ static struct irq_chip s3c_irq_wdtac97 = {
        .irq_ack        = s3c_irq_wdtac97_ack,
 };
 
-static int s3c2440_irq_add(struct device *dev, struct subsys_interface *sif)
+void __init s3c2440_init_irq(void)
 {
        unsigned int irqno;
 
        printk("S3C2440: IRQ Support\n");
 
-       /* add new chained handler for wdt, ac7 */
-
-       irq_set_chip_and_handler(IRQ_WDT, &s3c_irq_level_chip,
-                                handle_level_irq);
-       irq_set_chained_handler(IRQ_WDT, s3c_irq_demux_wdtac97);
-
-       for (irqno = IRQ_S3C2440_WDT; irqno <= IRQ_S3C2440_AC97; irqno++) {
-               irq_set_chip_and_handler(irqno, &s3c_irq_wdtac97,
-                                        handle_level_irq);
-               set_irq_flags(irqno, IRQF_VALID);
-       }
-
-       return 0;
-}
-
-static struct subsys_interface s3c2440_irq_interface = {
-       .name           = "s3c2440_irq",
-       .subsys         = &s3c2440_subsys,
-       .add_dev        = s3c2440_irq_add,
-};
-
-static int s3c2440_irq_init(void)
-{
-       return subsys_interface_register(&s3c2440_irq_interface);
-}
-
-arch_initcall(s3c2440_irq_init);
-
-void __init s3c2440_init_irq(void)
-{
-       unsigned int irqno;
-
        s3c24xx_init_irq();
 
        irq_set_chip_and_handler(IRQ_NFCON, &s3c_irq_level_chip,
@@ -893,6 +861,18 @@ void __init s3c2440_init_irq(void)
                                         handle_level_irq);
                set_irq_flags(irqno, IRQF_VALID);
        }
+
+       /* add new chained handler for wdt, ac7 */
+
+       irq_set_chip_and_handler(IRQ_WDT, &s3c_irq_level_chip,
+                                handle_level_irq);
+       irq_set_chained_handler(IRQ_WDT, s3c_irq_demux_wdtac97);
+
+       for (irqno = IRQ_S3C2440_WDT; irqno <= IRQ_S3C2440_AC97; irqno++) {
+               irq_set_chip_and_handler(irqno, &s3c_irq_wdtac97,
+                                        handle_level_irq);
+               set_irq_flags(irqno, IRQF_VALID);
+       }
 }
 #endif