Re: [PATCH v4 04/18] dt-bindings: PCI: rcar-gen4: Add optional "aer" interrupt for R-Car Gen4 SoCs
From: Koichiro Den
Date: Sun Oct 18 2026 - 22:31:54 EST
On Sat, Oct 17, 2026 at 02:17:38PM +0200, Marek Vasut wrote:
> On 10/15/26 5:30 AM, Koichiro Den wrote:
> > The intreq_pcim_lperr interrupt carries Root Port AER notifications,
> > separately from the integrated MSI receiver interrupt. Describe it with
> > the "aer" name so the controller driver can use it for Root Port error
> > reporting.
> >
> > Keep the fifth interrupt optional on R-Car Gen4 SoCs so existing device
> > trees remain valid. Extend the example accordingly.
> >
> > Signed-off-by: Koichiro Den <den@xxxxxxxxxxxxx>
> > ---
> > Changes since v3:
> > - Rebase on Marek's Gen5 AER binding fix:
> > https://lore.kernel.org/r/20261003215710.792518-1-marek.vasut+renesas@xxxxxxxxxxx/
> > This requires "aer" for the Gen5 SoC PCIe4 controller from the
> > beginning. Update the subject to clarify that it is optional only
> > on Gen4 SoCs, for compatibility with existing DTs.
> > - Drop R-b tags due to the changes.
> >
> > v3: https://lore.kernel.org/r/20261006084638.3821710-5-den@xxxxxxxxxxxxx/
> >
> > .../devicetree/bindings/pci/rcar-gen4-pci-host.yaml | 13 ++++++++++---
> > 1 file changed, 10 insertions(+), 3 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/pci/rcar-gen4-pci-host.yaml b/Documentation/devicetree/bindings/pci/rcar-gen4-pci-host.yaml
> > index 083b77d4de8f..a86c06701fa9 100644
> > --- a/Documentation/devicetree/bindings/pci/rcar-gen4-pci-host.yaml
> > +++ b/Documentation/devicetree/bindings/pci/rcar-gen4-pci-host.yaml
> > @@ -26,7 +26,8 @@ properties:
> > - const: renesas,rcar-gen5-pcie4 # R-Car Gen5 PCIe4
> > interrupts:
> > - maxItems: 4
> > + minItems: 4
> > + maxItems: 5
>
> Wouldn't it be easier/cleaner keep only maxItems: 4 here and set ...
>
> > clocks:
> > maxItems: 2
> > @@ -93,11 +94,13 @@ allOf:
> > - const: config
> > interrupt-names:
> > + minItems: 4
>
> ... minItems/maxItems here ^ for R-Car Gen4 (because Gen4 is the only SoC
> family which has optional non-mandatorily-described AER interrupt) ...
>
> > items:
> > - const: msi
> > - const: dma
> > - const: sft_ce
> > - const: app
> > + - const: aer
> > - if:
> > properties:
> > compatible:
> > @@ -117,6 +120,9 @@ allOf:
> > - const: app
> > - const: config
> > + interrupts:
> > + maxItems: 4
>
> ... and drop this interrupts: hunk here entirely (because Gen5 always has
> mandatorily described AER interrupt) ?
>
> > interrupt-names:
> > items:
> > - const: msi
> > @@ -146,8 +152,9 @@ examples:
> > interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
> > <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
> > <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
> > - <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>;
> > - interrupt-names = "msi", "dma", "sft_ce", "app";
> > + <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>;
> > + interrupt-names = "msi", "dma", "sft_ce", "app", "aer";
> > clocks = <&cpg CPG_MOD 624>, <&pcie0_clkref>;
> > clock-names = "core", "ref";
> > power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
>
> What do you think ?
Seems that wouldn't work as-is. With your proposed layout and a Gen4 DT that
includes "aer":
$ dt-validate -V
2026.9
$ dt-validate -s <schema-dir> -l rcar-gen4-pci-host <gen4.dtb>
interrupts: [[0, 416, 4], [0, 417, 4], [0, 418, 4], [0, 422, 4], [0, 421, 4]] is too long
from schema $id: http://devicetree.org/schemas/pci/rcar-gen4-pci-host.yaml
The top-level maxItems:4 would still apply to Gen4.
We could instead drop the top-level interrupts limits and set them separately in
the Gen4 and Gen5 'then' blocks, if that would be more readable.
But TBH, I don't see much benefit over the current (v4) layout, so I'd prefer to
keep v4 as it is. I'd appreciate your thoughts on it.
Thanks for the review!
Best regards,
Koichiro Den