ARM: plat-versatile: move FPGA irq driver to drivers/irqchip
This moves the Versatile FPGA interrupt controller driver, used in the Integrator/AP, Integrator/CP and some Versatile boards, out of arch/arm/plat-versatile and down to drivers/irqchip where we have consensus that such drivers belong. The header file is consequently moved to <linux/platform_data/irq-versatile-fpga.h>. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
da72a66ba8
commit
2389d50143
|
@ -284,8 +284,8 @@ config ARCH_INTEGRATOR
|
||||||
select MULTI_IRQ_HANDLER
|
select MULTI_IRQ_HANDLER
|
||||||
select NEED_MACH_MEMORY_H
|
select NEED_MACH_MEMORY_H
|
||||||
select PLAT_VERSATILE
|
select PLAT_VERSATILE
|
||||||
select PLAT_VERSATILE_FPGA_IRQ
|
|
||||||
select SPARSE_IRQ
|
select SPARSE_IRQ
|
||||||
|
select VERSATILE_FPGA_IRQ
|
||||||
help
|
help
|
||||||
Support for ARM's Integrator platform.
|
Support for ARM's Integrator platform.
|
||||||
|
|
||||||
|
@ -318,7 +318,7 @@ config ARCH_VERSATILE
|
||||||
select PLAT_VERSATILE
|
select PLAT_VERSATILE
|
||||||
select PLAT_VERSATILE_CLCD
|
select PLAT_VERSATILE_CLCD
|
||||||
select PLAT_VERSATILE_CLOCK
|
select PLAT_VERSATILE_CLOCK
|
||||||
select PLAT_VERSATILE_FPGA_IRQ
|
select VERSATILE_FPGA_IRQ
|
||||||
help
|
help
|
||||||
This enables support for ARM Ltd Versatile board.
|
This enables support for ARM Ltd Versatile board.
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include <linux/clockchips.h>
|
#include <linux/clockchips.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
|
#include <linux/irqchip/versatile-fpga.h>
|
||||||
#include <linux/mtd/physmap.h>
|
#include <linux/mtd/physmap.h>
|
||||||
#include <linux/clk.h>
|
#include <linux/clk.h>
|
||||||
#include <linux/platform_data/clk-integrator.h>
|
#include <linux/platform_data/clk-integrator.h>
|
||||||
|
@ -56,8 +57,6 @@
|
||||||
#include <asm/mach/pci.h>
|
#include <asm/mach/pci.h>
|
||||||
#include <asm/mach/time.h>
|
#include <asm/mach/time.h>
|
||||||
|
|
||||||
#include <plat/fpga-irq.h>
|
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#include <linux/amba/clcd.h>
|
#include <linux/amba/clcd.h>
|
||||||
#include <linux/amba/mmci.h>
|
#include <linux/amba/mmci.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
|
#include <linux/irqchip/versatile-fpga.h>
|
||||||
#include <linux/gfp.h>
|
#include <linux/gfp.h>
|
||||||
#include <linux/mtd/physmap.h>
|
#include <linux/mtd/physmap.h>
|
||||||
#include <linux/platform_data/clk-integrator.h>
|
#include <linux/platform_data/clk-integrator.h>
|
||||||
|
@ -46,7 +47,6 @@
|
||||||
#include <asm/hardware/timer-sp.h>
|
#include <asm/hardware/timer-sp.h>
|
||||||
|
|
||||||
#include <plat/clcd.h>
|
#include <plat/clcd.h>
|
||||||
#include <plat/fpga-irq.h>
|
|
||||||
#include <plat/sched_clock.h>
|
#include <plat/sched_clock.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
#include <linux/amba/mmci.h>
|
#include <linux/amba/mmci.h>
|
||||||
#include <linux/amba/pl022.h>
|
#include <linux/amba/pl022.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
|
#include <linux/irqchip/versatile-fpga.h>
|
||||||
#include <linux/gfp.h>
|
#include <linux/gfp.h>
|
||||||
#include <linux/clkdev.h>
|
#include <linux/clkdev.h>
|
||||||
#include <linux/mtd/physmap.h>
|
#include <linux/mtd/physmap.h>
|
||||||
|
@ -51,7 +52,6 @@
|
||||||
#include <asm/hardware/timer-sp.h>
|
#include <asm/hardware/timer-sp.h>
|
||||||
|
|
||||||
#include <plat/clcd.h>
|
#include <plat/clcd.h>
|
||||||
#include <plat/fpga-irq.h>
|
|
||||||
#include <plat/sched_clock.h>
|
#include <plat/sched_clock.h>
|
||||||
|
|
||||||
#include "core.h"
|
#include "core.h"
|
||||||
|
|
|
@ -6,15 +6,6 @@ config PLAT_VERSATILE_CLOCK
|
||||||
config PLAT_VERSATILE_CLCD
|
config PLAT_VERSATILE_CLCD
|
||||||
bool
|
bool
|
||||||
|
|
||||||
config PLAT_VERSATILE_FPGA_IRQ
|
|
||||||
bool
|
|
||||||
select IRQ_DOMAIN
|
|
||||||
|
|
||||||
config PLAT_VERSATILE_FPGA_IRQ_NR
|
|
||||||
int
|
|
||||||
default 4
|
|
||||||
depends on PLAT_VERSATILE_FPGA_IRQ
|
|
||||||
|
|
||||||
config PLAT_VERSATILE_LEDS
|
config PLAT_VERSATILE_LEDS
|
||||||
def_bool y if NEW_LEDS
|
def_bool y if NEW_LEDS
|
||||||
depends on ARCH_REALVIEW || ARCH_VERSATILE
|
depends on ARCH_REALVIEW || ARCH_VERSATILE
|
||||||
|
|
|
@ -2,7 +2,6 @@ ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include
|
||||||
|
|
||||||
obj-$(CONFIG_PLAT_VERSATILE_CLOCK) += clock.o
|
obj-$(CONFIG_PLAT_VERSATILE_CLOCK) += clock.o
|
||||||
obj-$(CONFIG_PLAT_VERSATILE_CLCD) += clcd.o
|
obj-$(CONFIG_PLAT_VERSATILE_CLCD) += clcd.o
|
||||||
obj-$(CONFIG_PLAT_VERSATILE_FPGA_IRQ) += fpga-irq.o
|
|
||||||
obj-$(CONFIG_PLAT_VERSATILE_LEDS) += leds.o
|
obj-$(CONFIG_PLAT_VERSATILE_LEDS) += leds.o
|
||||||
obj-$(CONFIG_PLAT_VERSATILE_SCHED_CLOCK) += sched-clock.o
|
obj-$(CONFIG_PLAT_VERSATILE_SCHED_CLOCK) += sched-clock.o
|
||||||
obj-$(CONFIG_SMP) += headsmp.o platsmp.o
|
obj-$(CONFIG_SMP) += headsmp.o platsmp.o
|
||||||
|
|
|
@ -1 +1,8 @@
|
||||||
# empty
|
config VERSATILE_FPGA_IRQ
|
||||||
|
bool
|
||||||
|
select IRQ_DOMAIN
|
||||||
|
|
||||||
|
config VERSATILE_FPGA_IRQ_NR
|
||||||
|
int
|
||||||
|
default 4
|
||||||
|
depends on VERSATILE_FPGA_IRQ
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2835.o
|
obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2835.o
|
||||||
|
obj-$(CONFIG_VERSATILE_FPGA_IRQ) += irq-versatile-fpga.o
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include <linux/bitops.h>
|
#include <linux/bitops.h>
|
||||||
#include <linux/irq.h>
|
#include <linux/irq.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
|
#include <linux/irqchip/versatile-fpga.h>
|
||||||
#include <linux/irqdomain.h>
|
#include <linux/irqdomain.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
|
@ -11,7 +12,6 @@
|
||||||
|
|
||||||
#include <asm/exception.h>
|
#include <asm/exception.h>
|
||||||
#include <asm/mach/irq.h>
|
#include <asm/mach/irq.h>
|
||||||
#include <plat/fpga-irq.h>
|
|
||||||
|
|
||||||
#define IRQ_STATUS 0x00
|
#define IRQ_STATUS 0x00
|
||||||
#define IRQ_RAW_STATUS 0x04
|
#define IRQ_RAW_STATUS 0x04
|
||||||
|
@ -42,7 +42,7 @@ struct fpga_irq_data {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* we cannot allocate memory when the controllers are initially registered */
|
/* we cannot allocate memory when the controllers are initially registered */
|
||||||
static struct fpga_irq_data fpga_irq_devices[CONFIG_PLAT_VERSATILE_FPGA_IRQ_NR];
|
static struct fpga_irq_data fpga_irq_devices[CONFIG_VERSATILE_FPGA_IRQ_NR];
|
||||||
static int fpga_irq_id;
|
static int fpga_irq_id;
|
||||||
|
|
||||||
static void fpga_irq_mask(struct irq_data *d)
|
static void fpga_irq_mask(struct irq_data *d)
|
Loading…
Reference in New Issue