diff options
-rw-r--r-- | arch/arm/mach-s3c24xx/common.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/irq.c | 45 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/mach-anubis.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/mach-at2440evb.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/mach-gta02.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/mach-mini2440.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/mach-nexcoder.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/mach-osiris.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/mach-rx1950.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/mach-rx3715.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-s3c24xx/mach-smdk2440.c | 2 |
11 files changed, 34 insertions, 36 deletions
diff --git a/arch/arm/mach-s3c24xx/common.h b/arch/arm/mach-s3c24xx/common.h index 8a2b4137ddb6..362a8cd32eb0 100644 --- a/arch/arm/mach-s3c24xx/common.h +++ b/arch/arm/mach-s3c24xx/common.h | |||
@@ -73,6 +73,7 @@ extern void s3c244x_restart(char mode, const char *cmd); | |||
73 | #ifdef CONFIG_CPU_S3C2440 | 73 | #ifdef CONFIG_CPU_S3C2440 |
74 | extern int s3c2440_init(void); | 74 | extern int s3c2440_init(void); |
75 | extern void s3c2440_map_io(void); | 75 | extern void s3c2440_map_io(void); |
76 | extern void s3c2440_init_irq(void); | ||
76 | #else | 77 | #else |
77 | #define s3c2440_init NULL | 78 | #define s3c2440_init NULL |
78 | #define s3c2440_map_io NULL | 79 | #define s3c2440_map_io NULL |
@@ -81,6 +82,7 @@ extern void s3c2440_map_io(void); | |||
81 | #ifdef CONFIG_CPU_S3C2442 | 82 | #ifdef CONFIG_CPU_S3C2442 |
82 | extern int s3c2442_init(void); | 83 | extern int s3c2442_init(void); |
83 | extern void s3c2442_map_io(void); | 84 | extern void s3c2442_map_io(void); |
85 | extern void s3c2442_init_irq(void); | ||
84 | #else | 86 | #else |
85 | #define s3c2442_init NULL | 87 | #define s3c2442_init NULL |
86 | #define s3c2442_map_io NULL | 88 | #define s3c2442_map_io NULL |
diff --git a/arch/arm/mach-s3c24xx/irq.c b/arch/arm/mach-s3c24xx/irq.c index 1fea3ddd123d..2c59b2d99a81 100644 --- a/arch/arm/mach-s3c24xx/irq.c +++ b/arch/arm/mach-s3c24xx/irq.c | |||
@@ -783,10 +783,13 @@ static struct irq_chip s3c_irq_cam = { | |||
783 | .irq_ack = s3c_irq_cam_ack, | 783 | .irq_ack = s3c_irq_cam_ack, |
784 | }; | 784 | }; |
785 | 785 | ||
786 | static int s3c244x_irq_add(struct device *dev, struct subsys_interface *sif) | 786 | #ifdef CONFIG_CPU_S3C2440 |
787 | void __init s3c2440_init_irq(void) | ||
787 | { | 788 | { |
788 | unsigned int irqno; | 789 | unsigned int irqno; |
789 | 790 | ||
791 | s3c24xx_init_irq(); | ||
792 | |||
790 | irq_set_chip_and_handler(IRQ_NFCON, &s3c_irq_level_chip, | 793 | irq_set_chip_and_handler(IRQ_NFCON, &s3c_irq_level_chip, |
791 | handle_level_irq); | 794 | handle_level_irq); |
792 | set_irq_flags(IRQ_NFCON, IRQF_VALID); | 795 | set_irq_flags(IRQ_NFCON, IRQF_VALID); |
@@ -802,36 +805,34 @@ static int s3c244x_irq_add(struct device *dev, struct subsys_interface *sif) | |||
802 | handle_level_irq); | 805 | handle_level_irq); |
803 | set_irq_flags(irqno, IRQF_VALID); | 806 | set_irq_flags(irqno, IRQF_VALID); |
804 | } | 807 | } |
805 | |||
806 | return 0; | ||
807 | } | 808 | } |
809 | #endif | ||
808 | 810 | ||
809 | static struct subsys_interface s3c2440_irq_interface = { | 811 | #ifdef CONFIG_CPU_S3C2442 |
810 | .name = "s3c2440_irq", | 812 | void __init s3c2442_init_irq(void) |
811 | .subsys = &s3c2440_subsys, | ||
812 | .add_dev = s3c244x_irq_add, | ||
813 | }; | ||
814 | |||
815 | static int s3c2440_irq_init(void) | ||
816 | { | 813 | { |
817 | return subsys_interface_register(&s3c2440_irq_interface); | 814 | unsigned int irqno; |
818 | } | ||
819 | 815 | ||
820 | arch_initcall(s3c2440_irq_init); | 816 | s3c24xx_init_irq(); |
821 | 817 | ||
822 | static struct subsys_interface s3c2442_irq_interface = { | 818 | irq_set_chip_and_handler(IRQ_NFCON, &s3c_irq_level_chip, |
823 | .name = "s3c2442_irq", | 819 | handle_level_irq); |
824 | .subsys = &s3c2442_subsys, | 820 | set_irq_flags(IRQ_NFCON, IRQF_VALID); |
825 | .add_dev = s3c244x_irq_add, | ||
826 | }; | ||
827 | 821 | ||
822 | /* add chained handler for camera */ | ||
828 | 823 | ||
829 | static int s3c2442_irq_init(void) | 824 | irq_set_chip_and_handler(IRQ_CAM, &s3c_irq_level_chip, |
830 | { | 825 | handle_level_irq); |
831 | return subsys_interface_register(&s3c2442_irq_interface); | 826 | irq_set_chained_handler(IRQ_CAM, s3c_irq_demux_cam); |
827 | |||
828 | for (irqno = IRQ_S3C2440_CAM_C; irqno <= IRQ_S3C2440_CAM_P; irqno++) { | ||
829 | irq_set_chip_and_handler(irqno, &s3c_irq_cam, | ||
830 | handle_level_irq); | ||
831 | set_irq_flags(irqno, IRQF_VALID); | ||
832 | } | ||
832 | } | 833 | } |
834 | #endif | ||
833 | 835 | ||
834 | arch_initcall(s3c2442_irq_init); | ||
835 | #endif | 836 | #endif |
836 | 837 | ||
837 | #ifdef CONFIG_CPU_S3C2443 | 838 | #ifdef CONFIG_CPU_S3C2443 |
diff --git a/arch/arm/mach-s3c24xx/mach-anubis.c b/arch/arm/mach-s3c24xx/mach-anubis.c index 24f1a04ccc88..c1fb6c37867f 100644 --- a/arch/arm/mach-s3c24xx/mach-anubis.c +++ b/arch/arm/mach-s3c24xx/mach-anubis.c | |||
@@ -445,7 +445,7 @@ MACHINE_START(ANUBIS, "Simtec-Anubis") | |||
445 | .atag_offset = 0x100, | 445 | .atag_offset = 0x100, |
446 | .map_io = anubis_map_io, | 446 | .map_io = anubis_map_io, |
447 | .init_machine = anubis_init, | 447 | .init_machine = anubis_init, |
448 | .init_irq = s3c24xx_init_irq, | 448 | .init_irq = s3c2440_init_irq, |
449 | .init_time = samsung_timer_init, | 449 | .init_time = samsung_timer_init, |
450 | .restart = s3c244x_restart, | 450 | .restart = s3c244x_restart, |
451 | MACHINE_END | 451 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-at2440evb.c b/arch/arm/mach-s3c24xx/mach-at2440evb.c index 2bf6c8c24317..6dfeeb7ef469 100644 --- a/arch/arm/mach-s3c24xx/mach-at2440evb.c +++ b/arch/arm/mach-s3c24xx/mach-at2440evb.c | |||
@@ -211,7 +211,7 @@ MACHINE_START(AT2440EVB, "AT2440EVB") | |||
211 | .atag_offset = 0x100, | 211 | .atag_offset = 0x100, |
212 | .map_io = at2440evb_map_io, | 212 | .map_io = at2440evb_map_io, |
213 | .init_machine = at2440evb_init, | 213 | .init_machine = at2440evb_init, |
214 | .init_irq = s3c24xx_init_irq, | 214 | .init_irq = s3c2440_init_irq, |
215 | .init_time = samsung_timer_init, | 215 | .init_time = samsung_timer_init, |
216 | .restart = s3c244x_restart, | 216 | .restart = s3c244x_restart, |
217 | MACHINE_END | 217 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-gta02.c b/arch/arm/mach-s3c24xx/mach-gta02.c index 84a750d46d4b..13d8d073675a 100644 --- a/arch/arm/mach-s3c24xx/mach-gta02.c +++ b/arch/arm/mach-s3c24xx/mach-gta02.c | |||
@@ -589,7 +589,7 @@ MACHINE_START(NEO1973_GTA02, "GTA02") | |||
589 | /* Maintainer: Nelson Castillo <arhuaco@freaks-unidos.net> */ | 589 | /* Maintainer: Nelson Castillo <arhuaco@freaks-unidos.net> */ |
590 | .atag_offset = 0x100, | 590 | .atag_offset = 0x100, |
591 | .map_io = gta02_map_io, | 591 | .map_io = gta02_map_io, |
592 | .init_irq = s3c24xx_init_irq, | 592 | .init_irq = s3c2442_init_irq, |
593 | .init_machine = gta02_machine_init, | 593 | .init_machine = gta02_machine_init, |
594 | .init_time = samsung_timer_init, | 594 | .init_time = samsung_timer_init, |
595 | .restart = s3c244x_restart, | 595 | .restart = s3c244x_restart, |
diff --git a/arch/arm/mach-s3c24xx/mach-mini2440.c b/arch/arm/mach-s3c24xx/mach-mini2440.c index 29f106cb370e..a83db46320bc 100644 --- a/arch/arm/mach-s3c24xx/mach-mini2440.c +++ b/arch/arm/mach-s3c24xx/mach-mini2440.c | |||
@@ -688,7 +688,7 @@ MACHINE_START(MINI2440, "MINI2440") | |||
688 | .atag_offset = 0x100, | 688 | .atag_offset = 0x100, |
689 | .map_io = mini2440_map_io, | 689 | .map_io = mini2440_map_io, |
690 | .init_machine = mini2440_init, | 690 | .init_machine = mini2440_init, |
691 | .init_irq = s3c24xx_init_irq, | 691 | .init_irq = s3c2440_init_irq, |
692 | .init_time = samsung_timer_init, | 692 | .init_time = samsung_timer_init, |
693 | .restart = s3c244x_restart, | 693 | .restart = s3c244x_restart, |
694 | MACHINE_END | 694 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-nexcoder.c b/arch/arm/mach-s3c24xx/mach-nexcoder.c index 5c826d10a66d..01f4354206f9 100644 --- a/arch/arm/mach-s3c24xx/mach-nexcoder.c +++ b/arch/arm/mach-s3c24xx/mach-nexcoder.c | |||
@@ -152,7 +152,7 @@ MACHINE_START(NEXCODER_2440, "NexVision - Nexcoder 2440") | |||
152 | .atag_offset = 0x100, | 152 | .atag_offset = 0x100, |
153 | .map_io = nexcoder_map_io, | 153 | .map_io = nexcoder_map_io, |
154 | .init_machine = nexcoder_init, | 154 | .init_machine = nexcoder_init, |
155 | .init_irq = s3c24xx_init_irq, | 155 | .init_irq = s3c2440_init_irq, |
156 | .init_time = samsung_timer_init, | 156 | .init_time = samsung_timer_init, |
157 | .restart = s3c244x_restart, | 157 | .restart = s3c244x_restart, |
158 | MACHINE_END | 158 | MACHINE_END |
diff --git a/arch/arm/mach-s3c24xx/mach-osiris.c b/arch/arm/mach-s3c24xx/mach-osiris.c index 4c90ffda4e11..58d6fbe5bf1f 100644 --- a/arch/arm/mach-s3c24xx/mach-osiris.c +++ b/arch/arm/mach-s3c24xx/mach-osiris.c | |||
@@ -426,7 +426,7 @@ MACHINE_START(OSIRIS, "Simtec-OSIRIS") | |||
426 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ | 426 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ |
427 | .atag_offset = 0x100, | 427 | .atag_offset = 0x100, |
428 | .map_io = osiris_map_io, | 428 | .map_io = osiris_map_io, |
429 | .init_irq = s3c24xx_init_irq, | 429 | .init_irq = s3c2440_init_irq, |
430 | .init_machine = osiris_init, | 430 | .init_machine = osiris_init, |
431 | .init_time = samsung_timer_init, | 431 | .init_time = samsung_timer_init, |
432 | .restart = s3c244x_restart, | 432 | .restart = s3c244x_restart, |
diff --git a/arch/arm/mach-s3c24xx/mach-rx1950.c b/arch/arm/mach-s3c24xx/mach-rx1950.c index 799af43b4e6a..e4d67a33ebee 100644 --- a/arch/arm/mach-s3c24xx/mach-rx1950.c +++ b/arch/arm/mach-s3c24xx/mach-rx1950.c | |||
@@ -813,7 +813,7 @@ MACHINE_START(RX1950, "HP iPAQ RX1950") | |||
813 | .atag_offset = 0x100, | 813 | .atag_offset = 0x100, |
814 | .map_io = rx1950_map_io, | 814 | .map_io = rx1950_map_io, |
815 | .reserve = rx1950_reserve, | 815 | .reserve = rx1950_reserve, |
816 | .init_irq = s3c24xx_init_irq, | 816 | .init_irq = s3c2442_init_irq, |
817 | .init_machine = rx1950_init_machine, | 817 | .init_machine = rx1950_init_machine, |
818 | .init_time = samsung_timer_init, | 818 | .init_time = samsung_timer_init, |
819 | .restart = s3c244x_restart, | 819 | .restart = s3c244x_restart, |
diff --git a/arch/arm/mach-s3c24xx/mach-rx3715.c b/arch/arm/mach-s3c24xx/mach-rx3715.c index 0a3c96452f0f..3bc6231d0a1f 100644 --- a/arch/arm/mach-s3c24xx/mach-rx3715.c +++ b/arch/arm/mach-s3c24xx/mach-rx3715.c | |||
@@ -190,11 +190,6 @@ static void __init rx3715_reserve(void) | |||
190 | memblock_reserve(0x30081000, 0x1000); | 190 | memblock_reserve(0x30081000, 0x1000); |
191 | } | 191 | } |
192 | 192 | ||
193 | static void __init rx3715_init_irq(void) | ||
194 | { | ||
195 | s3c24xx_init_irq(); | ||
196 | } | ||
197 | |||
198 | static void __init rx3715_init_machine(void) | 193 | static void __init rx3715_init_machine(void) |
199 | { | 194 | { |
200 | #ifdef CONFIG_PM_H1940 | 195 | #ifdef CONFIG_PM_H1940 |
@@ -212,7 +207,7 @@ MACHINE_START(RX3715, "IPAQ-RX3715") | |||
212 | .atag_offset = 0x100, | 207 | .atag_offset = 0x100, |
213 | .map_io = rx3715_map_io, | 208 | .map_io = rx3715_map_io, |
214 | .reserve = rx3715_reserve, | 209 | .reserve = rx3715_reserve, |
215 | .init_irq = rx3715_init_irq, | 210 | .init_irq = s3c2440_init_irq, |
216 | .init_machine = rx3715_init_machine, | 211 | .init_machine = rx3715_init_machine, |
217 | .init_time = samsung_timer_init, | 212 | .init_time = samsung_timer_init, |
218 | .restart = s3c244x_restart, | 213 | .restart = s3c244x_restart, |
diff --git a/arch/arm/mach-s3c24xx/mach-smdk2440.c b/arch/arm/mach-s3c24xx/mach-smdk2440.c index f56cb08e6d1c..de2e5d39a847 100644 --- a/arch/arm/mach-s3c24xx/mach-smdk2440.c +++ b/arch/arm/mach-s3c24xx/mach-smdk2440.c | |||
@@ -177,7 +177,7 @@ MACHINE_START(S3C2440, "SMDK2440") | |||
177 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 177 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
178 | .atag_offset = 0x100, | 178 | .atag_offset = 0x100, |
179 | 179 | ||
180 | .init_irq = s3c24xx_init_irq, | 180 | .init_irq = s3c2440_init_irq, |
181 | .map_io = smdk2440_map_io, | 181 | .map_io = smdk2440_map_io, |
182 | .init_machine = smdk2440_machine_init, | 182 | .init_machine = smdk2440_machine_init, |
183 | .init_time = samsung_timer_init, | 183 | .init_time = samsung_timer_init, |