Message ID | 20210804132912.30685-1-kishon@ti.com |
---|---|
Headers | show |
Series | PCI: Add legacy interrupt support in pci-j721e | expand |
On Wed, 04 Aug 2021 14:29:10 +0100, Kishon Vijay Abraham I <kishon@ti.com> wrote: > > Add bindings to specify interrupt controller for legacy interrupts. > > Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> > --- > .../bindings/pci/ti,j721e-pci-host.yaml | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/Documentation/devicetree/bindings/pci/ti,j721e-pci-host.yaml b/Documentation/devicetree/bindings/pci/ti,j721e-pci-host.yaml > index cc900202df29..f461d7b4c0cc 100644 > --- a/Documentation/devicetree/bindings/pci/ti,j721e-pci-host.yaml > +++ b/Documentation/devicetree/bindings/pci/ti,j721e-pci-host.yaml > @@ -74,6 +74,11 @@ properties: > > msi-map: true > > +patternProperties: > + "interrupt-controller": > + type: object > + description: interrupt controller to handle legacy interrupts. > + > required: > - compatible > - reg > @@ -97,6 +102,8 @@ unevaluatedProperties: false > > examples: > - | > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + #include <dt-bindings/interrupt-controller/irq.h> > #include <dt-bindings/soc/ti,sci_pm_domain.h> > #include <dt-bindings/gpio/gpio.h> > > @@ -131,5 +138,13 @@ examples: > ranges = <0x01000000 0x0 0x10001000 0x00 0x10001000 0x0 0x0010000>, > <0x02000000 0x0 0x10011000 0x00 0x10011000 0x0 0x7fef000>; > dma-ranges = <0x02000000 0x0 0x0 0x0 0x0 0x10000 0x0>; > + > + > + pcie0_intc: interrupt-controller { > + interrupt-controller; > + #interrupt-cells = <1>; > + interrupt-parent = <&gic500>; > + interrupts = <GIC_SPI 312 IRQ_TYPE_EDGE_RISING>; Are you sure about the edge signalling? How is the interrupt retriggered when the input is still high, which could well be the case for shared INTx? Thanks, M.
Hi Marc, On 04/08/21 8:35 pm, Marc Zyngier wrote: > On Wed, 04 Aug 2021 14:29:10 +0100, > Kishon Vijay Abraham I <kishon@ti.com> wrote: >> >> Add bindings to specify interrupt controller for legacy interrupts. >> >> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> >> --- >> .../bindings/pci/ti,j721e-pci-host.yaml | 15 +++++++++++++++ >> 1 file changed, 15 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/pci/ti,j721e-pci-host.yaml b/Documentation/devicetree/bindings/pci/ti,j721e-pci-host.yaml >> index cc900202df29..f461d7b4c0cc 100644 >> --- a/Documentation/devicetree/bindings/pci/ti,j721e-pci-host.yaml >> +++ b/Documentation/devicetree/bindings/pci/ti,j721e-pci-host.yaml >> @@ -74,6 +74,11 @@ properties: >> >> msi-map: true >> >> +patternProperties: >> + "interrupt-controller": >> + type: object >> + description: interrupt controller to handle legacy interrupts. >> + >> required: >> - compatible >> - reg >> @@ -97,6 +102,8 @@ unevaluatedProperties: false >> >> examples: >> - | >> + #include <dt-bindings/interrupt-controller/arm-gic.h> >> + #include <dt-bindings/interrupt-controller/irq.h> >> #include <dt-bindings/soc/ti,sci_pm_domain.h> >> #include <dt-bindings/gpio/gpio.h> >> >> @@ -131,5 +138,13 @@ examples: >> ranges = <0x01000000 0x0 0x10001000 0x00 0x10001000 0x0 0x0010000>, >> <0x02000000 0x0 0x10011000 0x00 0x10011000 0x0 0x7fef000>; >> dma-ranges = <0x02000000 0x0 0x0 0x0 0x0 0x10000 0x0>; >> + >> + >> + pcie0_intc: interrupt-controller { >> + interrupt-controller; >> + #interrupt-cells = <1>; >> + interrupt-parent = <&gic500>; >> + interrupts = <GIC_SPI 312 IRQ_TYPE_EDGE_RISING>; > > Are you sure about the edge signalling? How is the interrupt > retriggered when the input is still high, which could well be the case > for shared INTx? There is a EOI register which is used for re-triggering the interrupt. That functionality is broken in J721E but is fixed in J7200 (the following two patches in the series deals with that). Thanks, Kishon