]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - rpmsg/rpmsg.git/commit
irqchip/irq-pruss-intc: Add a PRUSS irqchip driver for PRUSS interrupts
authorSuman Anna <s-anna@ti.com>
Fri, 15 Feb 2019 23:07:52 +0000 (17:07 -0600)
committerSuman Anna <s-anna@ti.com>
Sat, 23 Feb 2019 17:39:59 +0000 (11:39 -0600)
commit786ff4b31d294b6b873f34aa8dfc5e48be43c267
treea9e4bbed0dafa2ebfb1c0cfa8984640616c478c8
parent9d98b91e4296798c9a77bbca1c7954f4ef46e50c
irqchip/irq-pruss-intc: Add a PRUSS irqchip driver for PRUSS interrupts

The Programmable Real-Time Unit Subsystem (PRUSS) contains an
interrupt controller (INTC) that can handle various system input
events and post interrupts back to the device-level initiators.
The INTC can support upto 64 input events with individual control
configuration and hardware prioritization. These events are mapped
onto 10 interrupt signals through two levels of many-to-one mapping
support. Different interrupt signals are routed to the individual
PRU cores or to the host CPU.

The PRUSS INTC platform driver manages this PRUSS interrupt
controller and implements an irqchip driver to provide a Linux
standard way for the PRU client users to enable/disable/ack/
re-trigger a PRUSS system event. The system events to interrupt
channels and host interrupts relies on the mapping configuration
provided through a firmware resource table for now. This will be
revisited and enhanced in the future for a better interface. The
mappings will currently be programmed during the boot/shutdown
of the PRU.

The PRUSS INTC module is reference counted during the interrupt
setup phase through the irqchip's irq_request_resources() and
irq_release_resources() ops. This restricts the module from being
removed as long as there are active interrupt users.

The driver currently supports the AM335x SoC, and support for other
TI SoCs will be added in subsequent patches.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Roger Quadros <rogerq@ti.com>
drivers/irqchip/Makefile
drivers/irqchip/irq-pruss-intc.c [new file with mode: 0644]
include/linux/pruss_driver.h