aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiko Stuebner <heiko@sntech.de>2013-01-29 13:25:23 -0500
committerKukjin Kim <kgene.kim@samsung.com>2013-02-03 18:52:50 -0500
commitb499b7a87117c6ec45f5d4f73ac6a643b1709292 (patch)
tree68616d18f63485ee5184716089b82e73239914b8
parent6b6289171bfdee905608f5d6cbb3eb79b04fdd03 (diff)
ARM: S3C24XX: modify s3c2443 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 s3c2443_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-smdk2443.c2
-rw-r--r--arch/arm/plat-s3c24xx/irq.c22
-rw-r--r--arch/arm/plat-samsung/include/plat/s3c2443.h2
3 files changed, 7 insertions, 19 deletions
diff --git a/arch/arm/mach-s3c24xx/mach-smdk2443.c b/arch/arm/mach-s3c24xx/mach-smdk2443.c
index c6d1a038ca08..8b65a54bae61 100644
--- a/arch/arm/mach-s3c24xx/mach-smdk2443.c
+++ b/arch/arm/mach-s3c24xx/mach-smdk2443.c
@@ -140,7 +140,7 @@ MACHINE_START(SMDK2443, "SMDK2443")
140 /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ 140 /* Maintainer: Ben Dooks <ben-linux@fluff.org> */
141 .atag_offset = 0x100, 141 .atag_offset = 0x100,
142 142
143 .init_irq = s3c24xx_init_irq, 143 .init_irq = s3c2443_init_irq,
144 .map_io = smdk2443_map_io, 144 .map_io = smdk2443_map_io,
145 .init_machine = smdk2443_machine_init, 145 .init_machine = smdk2443_machine_init,
146 .timer = &s3c24xx_timer, 146 .timer = &s3c24xx_timer,
diff --git a/arch/arm/plat-s3c24xx/irq.c b/arch/arm/plat-s3c24xx/irq.c
index 6f24e23944a5..f9ce39cdf618 100644
--- a/arch/arm/plat-s3c24xx/irq.c
+++ b/arch/arm/plat-s3c24xx/irq.c
@@ -935,10 +935,11 @@ static int s3c2443_add_sub(unsigned int base,
935 return 0; 935 return 0;
936} 936}
937 937
938static int s3c2443_irq_add(struct device *dev, 938void __init s3c2443_init_irq(void)
939 struct subsys_interface *sif)
940{ 939{
941 printk("S3C2443: IRQ Support\n"); 940 pr_info("S3C2443: IRQ Support\n");
941
942 s3c24xx_init_irq();
942 943
943 s3c2443_add_sub(IRQ_CAM, s3c2443_irq_demux_cam, &s3c2443_irq_cam, 944 s3c2443_add_sub(IRQ_CAM, s3c2443_irq_demux_cam, &s3c2443_irq_cam,
944 IRQ_S3C2440_CAM_C, IRQ_S3C2440_CAM_P); 945 IRQ_S3C2440_CAM_C, IRQ_S3C2440_CAM_P);
@@ -956,20 +957,5 @@ static int s3c2443_irq_add(struct device *dev,
956 s3c2443_add_sub(IRQ_WDT, s3c2443_irq_demux_wdtac97, 957 s3c2443_add_sub(IRQ_WDT, s3c2443_irq_demux_wdtac97,
957 &s3c2443_irq_wdtac97, 958 &s3c2443_irq_wdtac97,
958 IRQ_S3C2443_WDT, IRQ_S3C2443_AC97); 959 IRQ_S3C2443_WDT, IRQ_S3C2443_AC97);
959
960 return 0;
961} 960}
962
963static struct subsys_interface s3c2443_irq_interface = {
964 .name = "s3c2443_irq",
965 .subsys = &s3c2443_subsys,
966 .add_dev = s3c2443_irq_add,
967};
968
969static int __init s3c2443_irq_init(void)
970{
971 return subsys_interface_register(&s3c2443_irq_interface);
972}
973
974arch_initcall(s3c2443_irq_init);
975#endif 961#endif
diff --git a/arch/arm/plat-samsung/include/plat/s3c2443.h b/arch/arm/plat-samsung/include/plat/s3c2443.h
index a5b794ff838b..71b88ec48956 100644
--- a/arch/arm/plat-samsung/include/plat/s3c2443.h
+++ b/arch/arm/plat-samsung/include/plat/s3c2443.h
@@ -25,6 +25,8 @@ extern void s3c2443_init_clocks(int xtal);
25extern int s3c2443_baseclk_add(void); 25extern int s3c2443_baseclk_add(void);
26 26
27extern void s3c2443_restart(char mode, const char *cmd); 27extern void s3c2443_restart(char mode, const char *cmd);
28
29extern void s3c2443_init_irq(void);
28#else 30#else
29#define s3c2443_init_clocks NULL 31#define s3c2443_init_clocks NULL
30#define s3c2443_init_uarts NULL 32#define s3c2443_init_uarts NULL