linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] Add Mediatek CIRQ interrupt controller
@ 2016-11-01 11:51 Youlin Pei
  2016-11-01 11:52 ` [PATCH v2 1/3] binding: irqchip: mtk-cirq: Add binding document Youlin Pei
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Youlin Pei @ 2016-11-01 11:51 UTC (permalink / raw)
  To: Marc Zyngier, Rob Herring, Matthias Brugger
  Cc: youlin.pei, Thomas Gleixner, Jason Cooper, Mark Rutland,
	Russell King, linux-kernel, devicetree, linux-arm-kernel,
	linux-mediatek, srv_heupstream, hongkun.cao, yong.wu, erin.lo,
	chieh-jay.liu

In Mediatek SOCs, the CIRQ is a low power interrupt controller designed to
works outside MCUSYS which comprises with Cortex-Ax cores,CCI and GIC.

The CIRQ controller is integrated in between MCUSYS and interrupt sources
as the second level interrupt controller. The external interrupts which 
outside MCUSYS will feed through CIRQ then bypass to GIC.

In normal mode(where MCUSYS is active), CIRQ is disabled and interrupts
will directly issue to MCUSYS. When MCUSYS enters sleep mode, where GIC
is power downed. CIRQ will be enabled and monitor all edge trigger
interrupts(only edge trigger interrupts will be lost in this scenario).
When an edge interrupt is triggered, CIRQ will record the status and
generated a pulse signal to GIC when flush command is executed. 

With CIRQ, MCUSYS can be completely turned off to improve the system 
power consumption without losing interrupts.

change in v2:
1. fix coding style issue.
2. change the compatible string.
3. resolve IRQ offset at alloc time.
4. clear irq status in irq_eoi function.
5. rebase on 4.9-rc1.

v1:
http://lists.infradead.org/pipermail/linux-mediatek/2016-October/007213.html

Youlin Pei (3):
  binding: irqchip: mtk-cirq: Add binding document
  irqchip: mtk-cirq: Add mediatek mtk-cirq implement
  ARM: dts: mt2701: Add mtk-cirq node for mt2701

 .../interrupt-controller/mediatek,cirq.txt         |  30 +++
 arch/arm/boot/dts/mt2701.dtsi                      |  11 +-
 drivers/irqchip/Makefile                           |   2 +-
 drivers/irqchip/irq-mtk-cirq.c                     | 262 +++++++++++++++++++++
 4 files changed, 303 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/mediatek,cirq.txt
 create mode 100644 drivers/irqchip/irq-mtk-cirq.c

-- 
1.9.1 

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2016-11-15  3:09 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-01 11:51 [PATCH v2 0/3] Add Mediatek CIRQ interrupt controller Youlin Pei
2016-11-01 11:52 ` [PATCH v2 1/3] binding: irqchip: mtk-cirq: Add binding document Youlin Pei
2016-11-09 18:26   ` Rob Herring
2016-11-15  3:09     ` Youlin Pei
2016-11-01 11:52 ` [PATCH v2 2/3] irqchip: mtk-cirq: Add mediatek mtk-cirq implement Youlin Pei
2016-11-01 20:49   ` Marc Zyngier
2016-11-04  4:42     ` Youlin Pei
2016-11-04 22:21       ` Marc Zyngier
2016-11-08  2:57         ` Youlin Pei
2016-11-10 18:24           ` Marc Zyngier
2016-11-15  2:49             ` Youlin Pei
2016-11-01 11:52 ` [PATCH v2 3/3] ARM: dts: mt2701: Add mtk-cirq node for mt2701 Youlin Pei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).