mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-29 07:04:10 +08:00
ARM: mxs: move icoll driver into drivers/irqchip
Move icoll.c into drivers/irqchip as irq-mxs.c, and along with the renaming, change the driver to use IRQCHIP_DECLARE. Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
This commit is contained in:
parent
cec6bae8ca
commit
6a8e95b071
@ -1,5 +1,5 @@
|
|||||||
# Common support
|
# Common support
|
||||||
obj-y := icoll.o ocotp.o system.o mm.o
|
obj-y := ocotp.o system.o mm.o
|
||||||
|
|
||||||
obj-$(CONFIG_PM) += pm.o
|
obj-$(CONFIG_PM) += pm.o
|
||||||
|
|
||||||
|
@ -22,7 +22,4 @@ extern void mx23_map_io(void);
|
|||||||
extern int mx28_clocks_init(void);
|
extern int mx28_clocks_init(void);
|
||||||
extern void mx28_map_io(void);
|
extern void mx28_map_io(void);
|
||||||
|
|
||||||
extern void icoll_init_irq(void);
|
|
||||||
extern void icoll_handle_irq(struct pt_regs *);
|
|
||||||
|
|
||||||
#endif /* __MACH_MXS_COMMON_H__ */
|
#endif /* __MACH_MXS_COMMON_H__ */
|
||||||
|
@ -18,6 +18,8 @@
|
|||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
#include <linux/gpio.h>
|
#include <linux/gpio.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
#include <linux/irqchip.h>
|
||||||
|
#include <linux/irqchip/mxs.h>
|
||||||
#include <linux/micrel_phy.h>
|
#include <linux/micrel_phy.h>
|
||||||
#include <linux/mxsfb.h>
|
#include <linux/mxsfb.h>
|
||||||
#include <linux/of_platform.h>
|
#include <linux/of_platform.h>
|
||||||
@ -469,7 +471,7 @@ static const char *imx28_dt_compat[] __initdata = {
|
|||||||
|
|
||||||
DT_MACHINE_START(IMX23, "Freescale i.MX23 (Device Tree)")
|
DT_MACHINE_START(IMX23, "Freescale i.MX23 (Device Tree)")
|
||||||
.map_io = mx23_map_io,
|
.map_io = mx23_map_io,
|
||||||
.init_irq = icoll_init_irq,
|
.init_irq = irqchip_init,
|
||||||
.handle_irq = icoll_handle_irq,
|
.handle_irq = icoll_handle_irq,
|
||||||
.init_time = imx23_timer_init,
|
.init_time = imx23_timer_init,
|
||||||
.init_machine = mxs_machine_init,
|
.init_machine = mxs_machine_init,
|
||||||
@ -479,7 +481,7 @@ MACHINE_END
|
|||||||
|
|
||||||
DT_MACHINE_START(IMX28, "Freescale i.MX28 (Device Tree)")
|
DT_MACHINE_START(IMX28, "Freescale i.MX28 (Device Tree)")
|
||||||
.map_io = mx28_map_io,
|
.map_io = mx28_map_io,
|
||||||
.init_irq = icoll_init_irq,
|
.init_irq = irqchip_init,
|
||||||
.handle_irq = icoll_handle_irq,
|
.handle_irq = icoll_handle_irq,
|
||||||
.init_time = imx28_timer_init,
|
.init_time = imx28_timer_init,
|
||||||
.init_machine = mxs_machine_init,
|
.init_machine = mxs_machine_init,
|
||||||
|
@ -2,6 +2,7 @@ obj-$(CONFIG_IRQCHIP) += irqchip.o
|
|||||||
|
|
||||||
obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2835.o
|
obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2835.o
|
||||||
obj-$(CONFIG_ARCH_EXYNOS) += exynos-combiner.o
|
obj-$(CONFIG_ARCH_EXYNOS) += exynos-combiner.o
|
||||||
|
obj-$(CONFIG_ARCH_MXS) += irq-mxs.o
|
||||||
obj-$(CONFIG_METAG) += irq-metag-ext.o
|
obj-$(CONFIG_METAG) += irq-metag-ext.o
|
||||||
obj-$(CONFIG_METAG_PERFCOUNTER_IRQS) += irq-metag.o
|
obj-$(CONFIG_METAG_PERFCOUNTER_IRQS) += irq-metag.o
|
||||||
obj-$(CONFIG_ARCH_SUNXI) += irq-sunxi.o
|
obj-$(CONFIG_ARCH_SUNXI) += irq-sunxi.o
|
||||||
|
@ -27,6 +27,8 @@
|
|||||||
#include <linux/stmp_device.h>
|
#include <linux/stmp_device.h>
|
||||||
#include <asm/exception.h>
|
#include <asm/exception.h>
|
||||||
|
|
||||||
|
#include "irqchip.h"
|
||||||
|
|
||||||
#define HW_ICOLL_VECTOR 0x0000
|
#define HW_ICOLL_VECTOR 0x0000
|
||||||
#define HW_ICOLL_LEVELACK 0x0010
|
#define HW_ICOLL_LEVELACK 0x0010
|
||||||
#define HW_ICOLL_CTRL 0x0020
|
#define HW_ICOLL_CTRL 0x0020
|
||||||
@ -116,13 +118,4 @@ static void __init icoll_of_init(struct device_node *np,
|
|||||||
&icoll_irq_domain_ops, NULL);
|
&icoll_irq_domain_ops, NULL);
|
||||||
WARN_ON(!icoll_domain);
|
WARN_ON(!icoll_domain);
|
||||||
}
|
}
|
||||||
|
IRQCHIP_DECLARE(mxs, "fsl,icoll", icoll_of_init);
|
||||||
static const struct of_device_id icoll_of_match[] __initconst = {
|
|
||||||
{.compatible = "fsl,icoll", .data = icoll_of_init},
|
|
||||||
{ /* sentinel */ }
|
|
||||||
};
|
|
||||||
|
|
||||||
void __init icoll_init_irq(void)
|
|
||||||
{
|
|
||||||
of_irq_init(icoll_of_match);
|
|
||||||
}
|
|
14
include/linux/irqchip/mxs.h
Normal file
14
include/linux/irqchip/mxs.h
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2013 Freescale Semiconductor, Inc.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __LINUX_IRQCHIP_MXS_H
|
||||||
|
#define __LINUX_IRQCHIP_MXS_H
|
||||||
|
|
||||||
|
extern void icoll_handle_irq(struct pt_regs *);
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user