Messages in this thread | | | Subject | Re: [PATCH v4 4/5] irqchip/irq-pruss-intc: Implement irq_{get,set}_irqchip_state ops | From | David Lechner <> | Date | Wed, 29 Jul 2020 14:23:48 -0500 |
| |
On 7/28/20 4:18 AM, Grzegorz Jaszczyk wrote: > From: David Lechner <david@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 <david@lechnology.com> > Signed-off-by: Suman Anna <s-anna@ti.com> > Signed-off-by: Grzegorz Jaszczyk <grzegorz.jaszczyk@linaro.org> > Reviewed-by: Lee Jones <lee.jones@linaro.org> > ---
| |