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