Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7cefed5e authored by Heiko Stuebner's avatar Heiko Stuebner Committed by Kukjin Kim
Browse files

ARM: S3C24XX: integrate s3c2440 irqs into common init



Now all the arch_initcalls for s3c244x irqs are gone.

Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
parent 2286cf46
Loading
Loading
Loading
Loading
+13 −33
Original line number Diff line number Diff line
@@ -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