On 7/28/20 4:18 AM, Grzegorz Jaszczyk wrote:
From: David Lechner <da...@lechnology.com>

This implements the irq_get_irqchip_state and irq_set_irqchip_state
callbacks for the TI PRUSS INTC driver. The set callback can be used
by drivers to "kick" a PRU by injecting a PRU system event.

Example:

We could improve this example by showing a device tree node of a
firmware-defined device implemented in the PRU:

        /* Software-defined UART in PRU */
        pru_uart: serial@XXXX {
                compatible = "ti,pru-uart";
                ...
                interrupt-parent = <&pruss_intc>;
                /* PRU system event 31, channel 0, host event 0 */
                interrupts = <31 0 0>, ...;
                interrupt-names = "kick", ...;
                ...
        },

Then driver would request the IRQ during probe:

        data->kick_irq = of_irq_get_byname(dev, "kick");
        if (data->kick_irq < 0)
                ...
        

And later the driver would use the IRQ to kick the PRU:

        irq_set_irqchip_state(data->kick_irq, IRQCHIP_STATE_PENDING, true);


      irq_set_irqchip_state(irq, IRQCHIP_STATE_PENDING, true);

Signed-off-by: David Lechner <da...@lechnology.com>
Signed-off-by: Suman Anna <s-a...@ti.com>
Signed-off-by: Grzegorz Jaszczyk <grzegorz.jaszc...@linaro.org>
Reviewed-by: Lee Jones <lee.jo...@linaro.org>
---

Reply via email to