Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

dt-bindings: PCI: dwc: rockchip: Fix interrupt-names issue

The RK356x (and RK3588) have 5 ganged interrupts. For example the
"legacy" interrupt combines "inta/intb/intc/intd" with a register
providing the details, which specific interrupt triggered. The
interrupts from the second level are part of the Synopsys DW PCIe
System Information Interface (SII). Some of them are listed in the
Interrupt Signals section, the others are mostly common SII output
signals. The grouping and the ganged interrupt controllers are
specific to the Rockchip implementation.

Currently the binding is not specifying these interrupts resulting
in a bunch of errors for all rk356x/rk3588 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@collabora.com>
Link: https://lore.kernel.org/r/20230731165723.53069-3-sebastian.reichel@collabora.com
Signed-off-by: Rob Herring <robh@kernel.org>

authored by

Sebastian Reichel and committed by
Rob Herring
ebce9f66 84a7d0e5

+42 -1
+42 -1
Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml
··· 17 17 snps,dw-pcie.yaml. 18 18 19 19 allOf: 20 - - $ref: /schemas/pci/snps,dw-pcie.yaml# 20 + - $ref: /schemas/pci/pci-bus.yaml# 21 + - $ref: /schemas/pci/snps,dw-pcie-common.yaml# 21 22 22 23 properties: 23 24 compatible: ··· 60 59 - const: pclk 61 60 - const: aux 62 61 - const: pipe 62 + 63 + interrupts: 64 + items: 65 + - description: 66 + Combined system interrupt, which is used to signal the following 67 + interrupts - phy_link_up, dll_link_up, link_req_rst_not, hp_pme, 68 + hp, hp_msi, link_auto_bw, link_auto_bw_msi, bw_mgt, bw_mgt_msi, 69 + edma_wr, edma_rd, dpa_sub_upd, rbar_update, link_eq_req, ep_elbi_app 70 + - description: 71 + Combined PM interrupt, which is used to signal the following 72 + interrupts - linkst_in_l1sub, linkst_in_l1, linkst_in_l2, 73 + linkst_in_l0s, linkst_out_l1sub, linkst_out_l1, linkst_out_l2, 74 + linkst_out_l0s, pm_dstate_update 75 + - description: 76 + Combined message interrupt, which is used to signal the following 77 + interrupts - ven_msg, unlock_msg, ltr_msg, cfg_pme, cfg_pme_msi, 78 + pm_pme, pm_to_ack, pm_turnoff, obff_idle, obff_obff, obff_cpu_active 79 + - description: 80 + Combined legacy interrupt, which is used to signal the following 81 + interrupts - inta, intb, intc, intd 82 + - description: 83 + Combined error interrupt, which is used to signal the following 84 + interrupts - aer_rc_err, aer_rc_err_msi, rx_cpl_timeout, 85 + tx_cpl_timeout, cor_err_sent, nf_err_sent, f_err_sent, cor_err_rx, 86 + nf_err_rx, f_err_rx, radm_qoverflow 87 + 88 + interrupt-names: 89 + items: 90 + - const: sys 91 + - const: pmc 92 + - const: msg 93 + - const: legacy 94 + - const: err 63 95 64 96 msi-map: true 65 97 ··· 142 108 143 109 examples: 144 110 - | 111 + #include <dt-bindings/interrupt-controller/arm-gic.h> 145 112 146 113 bus { 147 114 #address-cells = <2>; ··· 162 127 "aclk_dbi", "pclk", 163 128 "aux"; 164 129 device_type = "pci"; 130 + interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 131 + <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>, 132 + <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>, 133 + <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, 134 + <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 135 + interrupt-names = "sys", "pmc", "msg", "legacy", "err"; 165 136 linux,pci-domain = <2>; 166 137 max-link-speed = <2>; 167 138 msi-map = <0x2000 &its 0x2000 0x1000>;