Re: [PATCH v3 2/5] dt-bindings: PCI: dwc: rockchip: Fix interrupt-names issue

From: Rob Herring
Date: Wed Jul 19 2023 - 16:16:18 EST


On Mon, Jul 17, 2023 at 07:26:48PM +0200, Sebastian Reichel wrote:
> The RK356x (and RK3588) have 5 ganged interrupts. For example the
> "legacy" interrupt combines "inta/intb/intc/intd" with a register
> providing the details.
>
> Currently the binding is not specifying these interrupts resulting
> in a bunch of errors for all rk356x boards using PCIe.
>
> Fix this by specifying the interrupts and add them to the example
> to prevent regressions.
>
> This changes the reference from snps,dw-pcie.yaml to
> snps,dw-pcie-common.yaml, since the interrupts are vendor
> specific and should not be listed in the generic file. The
> only other bit from the generic binding are the reg-names,
> which are overwritten by this binding.
>
> Signed-off-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx>
> ---
> .../bindings/pci/rockchip-dw-pcie.yaml | 43 ++++++++++++++++++-
> 1 file changed, 42 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml b/Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml
> index a4f61ced5e88..7836b9a5547c 100644
> --- a/Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml
> +++ b/Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml
> @@ -17,7 +17,8 @@ description: |+
> snps,dw-pcie.yaml.
>
> allOf:
> - - $ref: /schemas/pci/snps,dw-pcie.yaml#
> + - $ref: /schemas/pci/pci-bus.yaml#
> + - $ref: /schemas/pci/snps,dw-pcie-common.yaml#
>
> properties:
> compatible:
> @@ -60,6 +61,39 @@ properties:
> - const: aux
> - const: pipe
>
> + interrupts:
> + items:
> + - description:
> + Combined system interrupt, which is used to signal the following
> + interrupts - phy_link_up, dll_link_up, link_req_rst_not, hp_pme,
> + hp, hp_msi, link_auto_bw, link_auto_bw_msi, bw_mgt, bw_mgt_msi,
> + edma_wr, edma_rd, dpa_sub_upd, rbar_update, link_eq_req, ep_elbi_app
> + - description:
> + Combined PM interrupt, which is used to signal the following
> + interrupts - linkst_in_l1sub, linkst_in_l1, linkst_in_l2,
> + linkst_in_l0s, linkst_out_l1sub, linkst_out_l1, linkst_out_l2,
> + linkst_out_l0s, pm_dstate_update
> + - description:
> + Combined message interrupt, which is used to signal the following
> + interrupts - ven_msg, unlock_msg, ltr_msg, cfg_pme, cfg_pme_msi,
> + pm_pme, pm_to_ack, pm_turnoff, obff_idle, obff_obff, obff_cpu_active
> + - description:
> + Combined legacy interrupt, which is used to signal the following
> + interrupts - inta, intb, intc, intd
> + - description:
> + Combined error interrupt, which is used to signal the following
> + interrupts - aer_rc_err, aer_rc_err_msi, rx_cpl_timeout,
> + tx_cpl_timeout, cor_err_sent, nf_err_sent, f_err_sent, cor_err_rx,
> + nf_err_rx, f_err_rx, radm_qoverflow

I'm confused. It is really up to the integrator on how each of these
interrupts are combined? I thought it was a bit more fixed than that.

Rob