aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiko Stuebner <heiko@sntech.de>2013-01-29 13:25:22 -0500
committerKukjin Kim <kgene.kim@samsung.com>2013-02-03 18:52:49 -0500
commit4a282dd3b616a1e7a7f170973ed2a12332544dc3 (patch)
tree178728bf1439914c9c35ce5043fb1b2833e598ca
parentef602eb53c84100ab801ffa3a11ea02315fe38a8 (diff)
ARM: S3C24XX: modify s3c2416 irq init to initialize all irqs
Previously the irq init used s3c24xx_init_irq and an additional arch_initcall to add the cpu specific irqs. To be able to simplyfy the irq init later, create a new function s3c416_init_irq, which then calls s3c24xx_init_irq but also adds the cpu specific irqs. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
-rw-r--r--arch/arm/mach-s3c24xx/mach-smdk2416.c2
-rw-r--r--arch/arm/plat-s3c24xx/irq.c22
-rw-r--r--arch/arm/plat-samsung/include/plat/s3c2416.h1
3 files changed, 6 insertions, 19 deletions
diff --git a/arch/arm/mach-s3c24xx/mach-smdk2416.c b/arch/arm/mach-s3c24xx/mach-smdk2416.c
index 7de4120189e8..2abb66fdf928 100644
--- a/arch/arm/mach-s3c24xx/mach-smdk2416.c
+++ b/arch/arm/mach-s3c24xx/mach-smdk2416.c
@@ -250,7 +250,7 @@ MACHINE_START(SMDK2416, "SMDK2416")
250 /* Maintainer: Yauhen Kharuzhy <jekhor@gmail.com> */ 250 /* Maintainer: Yauhen Kharuzhy <jekhor@gmail.com> */
251 .atag_offset = 0x100, 251 .atag_offset = 0x100,
252 252
253 .init_irq = s3c24xx_init_irq, 253 .init_irq = s3c2416_init_irq,
254 .map_io = smdk2416_map_io, 254 .map_io = smdk2416_map_io,
255 .init_machine = smdk2416_machine_init, 255 .init_machine = smdk2416_machine_init,
256 .timer = &s3c24xx_timer, 256 .timer = &s3c24xx_timer,
diff --git a/arch/arm/plat-s3c24xx/irq.c b/arch/arm/plat-s3c24xx/irq.c
index e43214461960..5b325b26f771 100644
--- a/arch/arm/plat-s3c24xx/irq.c
+++ b/arch/arm/plat-s3c24xx/irq.c
@@ -874,10 +874,11 @@ static void s3c2416_irq_add_second(void)
874 } 874 }
875} 875}
876 876
877static int s3c2416_irq_add(struct device *dev, 877void __init s3c2416_init_irq(void)
878 struct subsys_interface *sif)
879{ 878{
880 printk(KERN_INFO "S3C2416: IRQ Support\n"); 879 pr_info("S3C2416: IRQ Support\n");
880
881 s3c24xx_init_irq();
881 882
882 s3c2416_add_sub(IRQ_LCD, s3c2416_irq_demux_lcd, &s3c2416_irq_lcd, 883 s3c2416_add_sub(IRQ_LCD, s3c2416_irq_demux_lcd, &s3c2416_irq_lcd,
883 IRQ_S3C2443_LCD2, IRQ_S3C2443_LCD4); 884 IRQ_S3C2443_LCD2, IRQ_S3C2443_LCD4);
@@ -894,21 +895,6 @@ static int s3c2416_irq_add(struct device *dev,
894 IRQ_S3C2443_WDT, IRQ_S3C2443_AC97); 895 IRQ_S3C2443_WDT, IRQ_S3C2443_AC97);
895 896
896 s3c2416_irq_add_second(); 897 s3c2416_irq_add_second();
897
898 return 0;
899} 898}
900 899
901static struct subsys_interface s3c2416_irq_interface = {
902 .name = "s3c2416_irq",
903 .subsys = &s3c2416_subsys,
904 .add_dev = s3c2416_irq_add,
905};
906
907static int __init s3c2416_irq_init(void)
908{
909 return subsys_interface_register(&s3c2416_irq_interface);
910}
911
912arch_initcall(s3c2416_irq_init);
913
914#endif 900#endif
diff --git a/arch/arm/plat-samsung/include/plat/s3c2416.h b/arch/arm/plat-samsung/include/plat/s3c2416.h
index 7178e338e25e..f27399a3c68d 100644
--- a/arch/arm/plat-samsung/include/plat/s3c2416.h
+++ b/arch/arm/plat-samsung/include/plat/s3c2416.h
@@ -25,6 +25,7 @@ extern int s3c2416_baseclk_add(void);
25 25
26extern void s3c2416_restart(char mode, const char *cmd); 26extern void s3c2416_restart(char mode, const char *cmd);
27 27
28extern void s3c2416_init_irq(void);
28extern struct syscore_ops s3c2416_irq_syscore_ops; 29extern struct syscore_ops s3c2416_irq_syscore_ops;
29 30
30#else 31#else