mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 02:39:48 +00:00
ARM: S3C24XX: create dedicated irq init functions for s3c2440 and s3c2442
s3c2440 and s3c2442 need separate init functions, as the s3c2440 contains even more differing irqs that will be moved in the following patch. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
This commit is contained in:
parent
6f8d7ea275
commit
ce6c164bf0
11 changed files with 38 additions and 40 deletions
|
@ -73,6 +73,7 @@ extern void s3c244x_restart(char mode, const char *cmd);
|
|||
#ifdef CONFIG_CPU_S3C2440
|
||||
extern int s3c2440_init(void);
|
||||
extern void s3c2440_map_io(void);
|
||||
extern void s3c2440_init_irq(void);
|
||||
#else
|
||||
#define s3c2440_init NULL
|
||||
#define s3c2440_map_io NULL
|
||||
|
@ -81,6 +82,7 @@ extern void s3c2440_map_io(void);
|
|||
#ifdef CONFIG_CPU_S3C2442
|
||||
extern int s3c2442_init(void);
|
||||
extern void s3c2442_map_io(void);
|
||||
extern void s3c2442_init_irq(void);
|
||||
#else
|
||||
#define s3c2442_init NULL
|
||||
#define s3c2442_map_io NULL
|
||||
|
|
|
@ -783,10 +783,13 @@ static struct irq_chip s3c_irq_cam = {
|
|||
.irq_ack = s3c_irq_cam_ack,
|
||||
};
|
||||
|
||||
static int s3c244x_irq_add(struct device *dev, struct subsys_interface *sif)
|
||||
#ifdef CONFIG_CPU_S3C2440
|
||||
void __init s3c2440_init_irq(void)
|
||||
{
|
||||
unsigned int irqno;
|
||||
|
||||
s3c24xx_init_irq();
|
||||
|
||||
irq_set_chip_and_handler(IRQ_NFCON, &s3c_irq_level_chip,
|
||||
handle_level_irq);
|
||||
set_irq_flags(IRQ_NFCON, IRQF_VALID);
|
||||
|
@ -802,36 +805,34 @@ static int s3c244x_irq_add(struct device *dev, struct subsys_interface *sif)
|
|||
handle_level_irq);
|
||||
set_irq_flags(irqno, IRQF_VALID);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static struct subsys_interface s3c2440_irq_interface = {
|
||||
.name = "s3c2440_irq",
|
||||
.subsys = &s3c2440_subsys,
|
||||
.add_dev = s3c244x_irq_add,
|
||||
};
|
||||
|
||||
static int s3c2440_irq_init(void)
|
||||
#ifdef CONFIG_CPU_S3C2442
|
||||
void __init s3c2442_init_irq(void)
|
||||
{
|
||||
return subsys_interface_register(&s3c2440_irq_interface);
|
||||
unsigned int irqno;
|
||||
|
||||
s3c24xx_init_irq();
|
||||
|
||||
irq_set_chip_and_handler(IRQ_NFCON, &s3c_irq_level_chip,
|
||||
handle_level_irq);
|
||||
set_irq_flags(IRQ_NFCON, IRQF_VALID);
|
||||
|
||||
/* add chained handler for camera */
|
||||
|
||||
irq_set_chip_and_handler(IRQ_CAM, &s3c_irq_level_chip,
|
||||
handle_level_irq);
|
||||
irq_set_chained_handler(IRQ_CAM, s3c_irq_demux_cam);
|
||||
|
||||
for (irqno = IRQ_S3C2440_CAM_C; irqno <= IRQ_S3C2440_CAM_P; irqno++) {
|
||||
irq_set_chip_and_handler(irqno, &s3c_irq_cam,
|
||||
handle_level_irq);
|
||||
set_irq_flags(irqno, IRQF_VALID);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
arch_initcall(s3c2440_irq_init);
|
||||
|
||||
static struct subsys_interface s3c2442_irq_interface = {
|
||||
.name = "s3c2442_irq",
|
||||
.subsys = &s3c2442_subsys,
|
||||
.add_dev = s3c244x_irq_add,
|
||||
};
|
||||
|
||||
|
||||
static int s3c2442_irq_init(void)
|
||||
{
|
||||
return subsys_interface_register(&s3c2442_irq_interface);
|
||||
}
|
||||
|
||||
arch_initcall(s3c2442_irq_init);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CPU_S3C2443
|
||||
|
|
|
@ -445,7 +445,7 @@ MACHINE_START(ANUBIS, "Simtec-Anubis")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = anubis_map_io,
|
||||
.init_machine = anubis_init,
|
||||
.init_irq = s3c24xx_init_irq,
|
||||
.init_irq = s3c2440_init_irq,
|
||||
.init_time = samsung_timer_init,
|
||||
.restart = s3c244x_restart,
|
||||
MACHINE_END
|
||||
|
|
|
@ -211,7 +211,7 @@ MACHINE_START(AT2440EVB, "AT2440EVB")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = at2440evb_map_io,
|
||||
.init_machine = at2440evb_init,
|
||||
.init_irq = s3c24xx_init_irq,
|
||||
.init_irq = s3c2440_init_irq,
|
||||
.init_time = samsung_timer_init,
|
||||
.restart = s3c244x_restart,
|
||||
MACHINE_END
|
||||
|
|
|
@ -589,7 +589,7 @@ MACHINE_START(NEO1973_GTA02, "GTA02")
|
|||
/* Maintainer: Nelson Castillo <arhuaco@freaks-unidos.net> */
|
||||
.atag_offset = 0x100,
|
||||
.map_io = gta02_map_io,
|
||||
.init_irq = s3c24xx_init_irq,
|
||||
.init_irq = s3c2442_init_irq,
|
||||
.init_machine = gta02_machine_init,
|
||||
.init_time = samsung_timer_init,
|
||||
.restart = s3c244x_restart,
|
||||
|
|
|
@ -688,7 +688,7 @@ MACHINE_START(MINI2440, "MINI2440")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = mini2440_map_io,
|
||||
.init_machine = mini2440_init,
|
||||
.init_irq = s3c24xx_init_irq,
|
||||
.init_irq = s3c2440_init_irq,
|
||||
.init_time = samsung_timer_init,
|
||||
.restart = s3c244x_restart,
|
||||
MACHINE_END
|
||||
|
|
|
@ -152,7 +152,7 @@ MACHINE_START(NEXCODER_2440, "NexVision - Nexcoder 2440")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = nexcoder_map_io,
|
||||
.init_machine = nexcoder_init,
|
||||
.init_irq = s3c24xx_init_irq,
|
||||
.init_irq = s3c2440_init_irq,
|
||||
.init_time = samsung_timer_init,
|
||||
.restart = s3c244x_restart,
|
||||
MACHINE_END
|
||||
|
|
|
@ -426,7 +426,7 @@ MACHINE_START(OSIRIS, "Simtec-OSIRIS")
|
|||
/* Maintainer: Ben Dooks <ben@simtec.co.uk> */
|
||||
.atag_offset = 0x100,
|
||||
.map_io = osiris_map_io,
|
||||
.init_irq = s3c24xx_init_irq,
|
||||
.init_irq = s3c2440_init_irq,
|
||||
.init_machine = osiris_init,
|
||||
.init_time = samsung_timer_init,
|
||||
.restart = s3c244x_restart,
|
||||
|
|
|
@ -813,7 +813,7 @@ MACHINE_START(RX1950, "HP iPAQ RX1950")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = rx1950_map_io,
|
||||
.reserve = rx1950_reserve,
|
||||
.init_irq = s3c24xx_init_irq,
|
||||
.init_irq = s3c2442_init_irq,
|
||||
.init_machine = rx1950_init_machine,
|
||||
.init_time = samsung_timer_init,
|
||||
.restart = s3c244x_restart,
|
||||
|
|
|
@ -190,11 +190,6 @@ static void __init rx3715_reserve(void)
|
|||
memblock_reserve(0x30081000, 0x1000);
|
||||
}
|
||||
|
||||
static void __init rx3715_init_irq(void)
|
||||
{
|
||||
s3c24xx_init_irq();
|
||||
}
|
||||
|
||||
static void __init rx3715_init_machine(void)
|
||||
{
|
||||
#ifdef CONFIG_PM_H1940
|
||||
|
@ -212,7 +207,7 @@ MACHINE_START(RX3715, "IPAQ-RX3715")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = rx3715_map_io,
|
||||
.reserve = rx3715_reserve,
|
||||
.init_irq = rx3715_init_irq,
|
||||
.init_irq = s3c2440_init_irq,
|
||||
.init_machine = rx3715_init_machine,
|
||||
.init_time = samsung_timer_init,
|
||||
.restart = s3c244x_restart,
|
||||
|
|
|
@ -177,7 +177,7 @@ MACHINE_START(S3C2440, "SMDK2440")
|
|||
/* Maintainer: Ben Dooks <ben-linux@fluff.org> */
|
||||
.atag_offset = 0x100,
|
||||
|
||||
.init_irq = s3c24xx_init_irq,
|
||||
.init_irq = s3c2440_init_irq,
|
||||
.map_io = smdk2440_map_io,
|
||||
.init_machine = smdk2440_machine_init,
|
||||
.init_time = samsung_timer_init,
|
||||
|
|
Loading…
Reference in a new issue