linux/arch/arm/mach-imx
Stefan Agner 0494e11aaf irqchip: vf610-mscm-ir: Add support for Vybrid MSCM interrupt router
This adds support for Vybrid's interrupt router. On VF6xx models,
almost all peripherals can be used by either of the two CPU's,
the Cortex-A5 or the Cortex-M4. The interrupt router routes the
peripheral interrupts to the configured CPU.

This IRQ chip driver configures the interrupt router to route
the requested interrupt to the CPU the kernel is running on.
The driver makes use of the irqdomain hierarchy support. The
parent is given by the device tree. This should be one of the
two possible parents either ARM GIC or the ARM NVIC interrupt
controller. The latter is currently not yet supported.

Note that there is no resource control mechnism implemented to
avoid concurrent access of the same peripheral. The user needs
to make sure to use device trees which assign the peripherals
orthogonally. However, this driver warns the user in case the
interrupt is already configured for the other CPU. This provides
a poor man's resource controller.

Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Stefan Agner <stefan@agner.ch>
Link: https://lkml.kernel.org/r/1425249689-32354-2-git-send-email-stefan@agner.ch
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2015-03-08 05:08:15 +00:00
..
devices ARM: SoC platform changes for 3.17 2014-08-08 11:14:29 -07:00
3ds_debugboard.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
3ds_debugboard.h ARM: imx: include board headers in the same folder 2012-10-15 09:18:14 +08:00
anatop.c ARM: imx: add anatop settings for LPDDR2 when enter DSM mode 2014-11-23 14:56:17 +08:00
avic.c ARM: imx: avic: Convert to handle_domain_irq 2014-09-03 13:10:56 +00:00
board-mx31lilly.h ARM: imx: include board headers in the same folder 2012-10-15 09:18:14 +08:00
board-mx31lite.h ARM: imx: include board headers in the same folder 2012-10-15 09:18:14 +08:00
board-mx31moboard.h ARM: imx: include board headers in the same folder 2012-10-15 09:18:14 +08:00
clk-busy.c ARM: arm-soc non-critical fixes for 3.10 2013-05-02 08:56:55 -07:00
clk-cpu.c ARM: imx: add CPU clock type 2014-11-23 14:56:19 +08:00
clk-fixup-div.c ARM: imx: add common clock support for fixup div 2013-08-16 13:11:24 +08:00
clk-fixup-mux.c ARM: imx: initialize clk_init_data.flags for clk-fixup-mux 2013-09-17 10:04:23 +08:00
clk-gate2.c ARM: imx: correct the hardware clock gate setting for shared nodes 2015-01-05 20:53:05 +08:00
clk-gate-exclusive.c ARM: imx: add an exclusive gate clock type 2014-09-16 10:06:48 +08:00
clk-imx1.c ARM: i.MX: Use CLOCKSOURCE_OF_DECLARE() for DT targets 2014-07-18 16:11:39 +08:00
clk-imx6q.c ARM: SoC platform changes 2015-02-17 09:27:54 -08:00
clk-imx6sl.c ARM: imx: fix register offset of pll7_usb_host gate clock 2014-09-16 10:09:40 +08:00
clk-imx6sx.c ARM: imx6sx: Set PLL2 as parent of QSPI clocks 2015-01-05 21:16:31 +08:00
clk-imx21.c ARM: i.MX: Use CLOCKSOURCE_OF_DECLARE() for DT targets 2014-07-18 16:11:39 +08:00
clk-imx25.c ARM: i.MX: Use CLOCKSOURCE_OF_DECLARE() for DT targets 2014-07-18 16:11:39 +08:00
clk-imx27.c ARM: i.MX: Use CLOCKSOURCE_OF_DECLARE() for DT targets 2014-07-18 16:11:39 +08:00
clk-imx31.c ARM: i.MX clk: Move clock check function in common location 2014-07-18 16:10:12 +08:00
clk-imx35.c ARM: i.MX clk: Move clock check function in common location 2014-07-18 16:10:12 +08:00
clk-imx51-imx53.c ARM: imx53: clk: add ARM clock 2014-11-23 14:56:20 +08:00
clk-pfd.c ARM: imx: add necessary interface for pfd 2013-12-31 09:36:45 +08:00
clk-pllv1.c ARM: imx: pllv1: Fix PLL calculation for i.MX27 2013-12-31 09:36:29 +08:00
clk-pllv2.c ARM: mach-imx: clk-pllv2: Staticize clk_pllv2_ops 2013-04-01 16:17:50 +08:00
clk-pllv3.c ARM: imx: pllv3: add shift for frequency multiplier 2015-01-05 20:53:05 +08:00
clk-vf610.c ARM: imx: clk-vf610: Add clock for SNVS 2015-01-13 19:16:26 +08:00
clk.c ARM: i.MX clk: Move clock check function in common location 2014-07-18 16:10:12 +08:00
clk.h ARM: imx: pllv3: add shift for frequency multiplier 2015-01-05 20:53:05 +08:00
common.h ARM: imx: support arm power off in cpuidle for i.mx6sx 2015-01-05 21:34:29 +08:00
cpu-imx5.c ARM: imx5: retrieve iim base from device tree 2014-07-18 16:10:07 +08:00
cpu-imx25.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
cpu-imx27.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
cpu-imx31.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
cpu-imx35.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
cpu.c ARM: i.MX: allow disabling supervisor protect via DT 2014-07-18 16:11:39 +08:00
cpuidle-imx5.c cpuidle: Invert CPUIDLE_FLAG_TIME_VALID logic 2014-11-12 21:17:27 +01:00
cpuidle-imx6q.c cpuidle: Invert CPUIDLE_FLAG_TIME_VALID logic 2014-11-12 21:17:27 +01:00
cpuidle-imx6sl.c cpuidle: Invert CPUIDLE_FLAG_TIME_VALID logic 2014-11-12 21:17:27 +01:00
cpuidle-imx6sx.c ARM: imx: drop CPUIDLE_FLAG_TIME_VALID from cpuidle-imx6sx 2015-01-06 20:14:50 +08:00
cpuidle.h ARM: imx: support arm power off in cpuidle for i.mx6sx 2015-01-05 21:34:29 +08:00
crmregs-imx3.h ARM i.MX3: Make ccm base address a variable 2012-04-25 17:03:45 +02:00
devices-imx1.h ARM: imx: move platform device code into mach-imx 2012-10-15 09:18:15 +08:00
devices-imx21.h ARM: imx: move platform device code into mach-imx 2012-10-15 09:18:15 +08:00
devices-imx25.h ARM i.MX: remove PWM platform support 2014-03-05 10:35:09 +08:00
devices-imx27.h ARM : i.MX27 : split code for allocation of ressources of camera and eMMA 2012-11-16 16:21:48 +01:00
devices-imx31.h ARM: imx: move platform device code into mach-imx 2012-10-15 09:18:15 +08:00
devices-imx35.h ARM: imx: prepare for removal of flexcan_platform_data 2013-06-27 15:15:08 +02:00
ehci-imx25.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
ehci-imx27.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
ehci-imx31.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
ehci-imx35.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
ehci.h ARM: imx5: remove imx51 non-DT support files 2014-07-18 16:10:05 +08:00
epit.c ARM: imx: remove IRQF_DISABLED 2013-10-21 09:11:05 +08:00
eukrea_mbimxsd25-baseboard.c ARM: imx: prepare for removal of flexcan_platform_data 2013-06-27 15:15:08 +02:00
eukrea_mbimxsd35-baseboard.c ARM: imx: prepare for removal of flexcan_platform_data 2013-06-27 15:15:08 +02:00
eukrea-baseboards.h ARM: i.MX: Remove mach-cpuimx27sd board file 2014-09-01 22:00:01 +08:00
gpc.c ARM: imx: support arm power off in cpuidle for i.mx6sx 2015-01-05 21:34:29 +08:00
hardware.h ARM: imx5: remove mx51.h and mx53.h 2014-07-18 16:10:10 +08:00
headsmp.S ARM: imx6: drop .text.head section annotation from headsmp.S 2014-03-05 10:48:26 +08:00
hotplug.c ARM: imx: do not return from imx_cpu_die() call 2013-10-21 09:37:31 +08:00
iim.h ARM: imx: include iim.h rather than mach/iim.h 2012-10-15 10:03:10 +08:00
imx1-dt.c ARM: i.MX1: Add devicetree support 2014-09-16 10:06:44 +08:00
imx25-dt.c ARM: imx: clean up machine mxc_arch_reset_init_dt reset init 2014-11-22 07:39:36 +08:00
imx27-dt.c ARM: imx: clean up machine mxc_arch_reset_init_dt reset init 2014-11-22 07:39:36 +08:00
imx31-dt.c ARM: imx: clean up machine mxc_arch_reset_init_dt reset init 2014-11-22 07:39:36 +08:00
imx35-dt.c ARM: imx: clean up machine mxc_arch_reset_init_dt reset init 2014-11-22 07:39:36 +08:00
iomux-imx31.c ARM: imx: refactor mxc_iomux_mode() 2014-11-22 07:39:36 +08:00
iomux-mx1.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx2x.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx3.h ARM: imx: refactor mxc_iomux_mode() 2014-11-22 07:39:36 +08:00
iomux-mx21.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx25.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx27.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-mx35.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-v1.c ARM: imx: iomux: Do not export symbol without public declaration 2014-09-01 22:00:01 +08:00
iomux-v1.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
iomux-v3.c ARM: imx: iomux: Do not export symbol without public declaration 2014-09-01 22:00:01 +08:00
iomux-v3.h ARM: imx: move iomux drivers and headers into mach-imx 2012-10-15 09:18:14 +08:00
irq-common.c ARM: imx: irq-common: Include header to avoid sparse warning 2013-06-17 15:45:14 +08:00
irq-common.h ARM: imx: drop support for irq priorisation 2013-12-09 13:18:25 +08:00
Kconfig irqchip: vf610-mscm-ir: Add support for Vybrid MSCM interrupt router 2015-03-08 05:08:15 +00:00
mach-apf9328.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
mach-armadillo5x0.c arm: mach-imx: Convert pr_warning to pr_warn 2014-09-16 10:09:41 +08:00
mach-bug.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
mach-cpuimx35.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-eukrea_cpuimx25.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-imx6q.c ARM i.MX6q: unmap memory mapped at imx6q_opp_check_speed_grading() 2015-01-20 14:26:45 +08:00
mach-imx6sl.c ARM: imx: Remove unneeded .map_io initialization 2014-11-22 07:39:36 +08:00
mach-imx6sx.c ARM: imx: support arm power off in cpuidle for i.mx6sx 2015-01-05 21:34:29 +08:00
mach-imx27_visstrim_m10.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-imx50.c ARM: imx: clean up machine mxc_arch_reset_init_dt reset init 2014-11-22 07:39:36 +08:00
mach-imx51.c ARM: imx: clean up machine mxc_arch_reset_init_dt reset init 2014-11-22 07:39:36 +08:00
mach-imx53.c ARM: SoC platform changes for 3.19 2014-12-09 14:38:28 -08:00
mach-kzm_arm11_01.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
mach-ls1021a.c ARM: imx: Add Freescale LS1021A SMP support 2014-11-23 14:56:21 +08:00
mach-mx21ads.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
mach-mx25_3ds.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-mx27_3ds.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-mx27ads.c platform: Remove most references to platform_bus device 2014-07-23 19:09:03 -07:00
mach-mx31_3ds.c arm: mach-imx: Convert pr_warning to pr_warn 2014-09-16 10:09:41 +08:00
mach-mx31ads.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
mach-mx31lilly.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-mx31lite.c arm: mach-imx: Convert pr_warning to pr_warn 2014-09-16 10:09:41 +08:00
mach-mx31moboard.c ARM: imx: use PTR_ERR_OR_ZERO 2014-07-18 16:11:36 +08:00
mach-mx35_3ds.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-pca100.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-pcm037_eet.c ARM: imx: include common.h rather than mach/common.h 2012-10-15 10:03:10 +08:00
mach-pcm037.c arm: mach-imx: Convert pr_warning to pr_warn 2014-09-16 10:09:41 +08:00
mach-pcm043.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
mach-qong.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
mach-scb9328.c ARM: i.MX: Setup IRQ handler from IRQ driver 2014-05-12 22:58:51 +08:00
mach-vf610.c ARM vf610: add compatibilty strings of supported Vybrid SoC's 2015-01-05 20:53:05 +08:00
mach-vpr200.c ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
Makefile ARM: imx: support arm power off in cpuidle for i.mx6sx 2015-01-05 21:34:29 +08:00
mm-imx1.c ARM: imx: move clk_prepare() out from mxc_restart() 2013-06-17 15:45:10 +08:00
mm-imx3.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2013-07-03 09:46:29 -07:00
mm-imx21.c ARM: imx: move clk_prepare() out from mxc_restart() 2013-06-17 15:45:10 +08:00
mm-imx25.c ARM: i.MX: remove sdma script address arrays from platform data 2013-08-26 20:47:16 +05:30
mm-imx27.c ARM: imx: move clk_prepare() out from mxc_restart() 2013-06-17 15:45:10 +08:00
mmdc.c ARM: make of_device_ids const 2015-02-19 09:44:25 +01:00
mx1.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx2x.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx3x.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx21.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx25.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx27.h ARM: i.MX27: Typo fix 2013-07-15 08:28:07 +08:00
mx31.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx31lilly-db.c ARM: imx: remove IRQF_DISABLED 2013-10-21 09:11:05 +08:00
mx31lite-db.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mx31moboard-devboard.c ARM: imx: use PTR_ERR_OR_ZERO 2014-07-18 16:11:36 +08:00
mx31moboard-marxbot.c ARM: imx: use PTR_ERR_OR_ZERO 2014-07-18 16:11:36 +08:00
mx31moboard-smartbot.c ARM: imx: use PTR_ERR_OR_ZERO 2014-07-18 16:11:36 +08:00
mx35.h ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
mxc.h ARM: imx: replace cpu type check with ddr type check 2014-11-23 14:56:17 +08:00
pcm037.h ARM: imx: use machine specific hook for late init 2012-05-08 20:36:16 +08:00
platsmp.c ARM: imx: Add Freescale LS1021A SMP support 2014-11-23 14:56:21 +08:00
pm-imx3.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
pm-imx5.c ARM: imx5: use dynamic mapping for Cortex and GPC block 2014-07-18 16:10:09 +08:00
pm-imx6.c ARM: imx: support arm power off in cpuidle for i.mx6sx 2015-01-05 21:34:29 +08:00
pm-imx27.c ARM: imx: include hardware.h rather than mach/hardware.h 2012-10-15 10:05:43 +08:00
src.c ARM: imx: remove imx_src_prepare_restart() call 2013-11-11 22:58:43 +08:00
ssi-fiq-ksym.c ARM: imx: merge plat-mxc into mach-imx 2012-10-15 10:02:19 +08:00
ssi-fiq.S ARM: imx: merge plat-mxc into mach-imx 2012-10-15 10:02:19 +08:00
suspend-imx6.S ARM: imx: replace cpu type check with ddr type check 2014-11-23 14:56:17 +08:00
system.c ARM: imx: clean up machine mxc_arch_reset_init_dt reset init 2014-11-22 07:39:36 +08:00
time.c ARM: imx: source gpt per clk from OSC for system timer 2014-09-16 10:09:41 +08:00
tzic.c ARM: imx: tzic: Convert to handle_domain_irq 2014-09-03 13:10:57 +00:00
ulpi.h ARM: imx: Remove mxc specific ulpi access ops 2013-06-17 15:45:16 +08:00