[PATCH v2 1/3] dt-bindings: PCI: dwc: rockchip: Fix interrupt-names issue

From: Sebastian Reichel
Date: Thu Jul 13 2023 - 13:19:05 EST


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.

Signed-off-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx>
---
.../bindings/pci/rockchip-dw-pcie.yaml | 18 +++++
.../devicetree/bindings/pci/snps,dw-pcie.yaml | 76 ++++++++++++++++++-
2 files changed, 93 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..aad53c7d8485 100644
--- a/Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml
+++ b/Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml
@@ -60,6 +60,17 @@ properties:
- const: aux
- const: pipe

+ interrupts:
+ maxItems: 5
+
+ interrupt-names:
+ items:
+ - const: sys
+ - const: pmc
+ - const: msg
+ - const: legacy
+ - const: err
+
msi-map: true

num-lanes: true
@@ -108,6 +119,7 @@ unevaluatedProperties: false

examples:
- |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>

bus {
#address-cells = <2>;
@@ -127,6 +139,12 @@ examples:
"aclk_dbi", "pclk",
"aux";
device_type = "pci";
+ interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "sys", "pmc", "msg", "legacy", "err";
linux,pci-domain = <2>;
max-link-speed = <2>;
msi-map = <0x2000 &its 0x2000 0x1000>;
diff --git a/Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml b/Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml
index 1a83f0f65f19..973bf8f2730d 100644
--- a/Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml
+++ b/Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml
@@ -193,9 +193,83 @@ properties:
oneOf:
- description: See native "app" IRQ for details
enum: [ intr ]
+ - description:
+ Combined legacy interrupt, which is used to signal the following
+ interrupts
+ * inta
+ * intb
+ * intc
+ * intd
+ const: legacy
+ - 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
+ const: sys
+ - 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
+ const: pmc
+ - 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
+ const: msg
+ - 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
+ const: err
+
allOf:
- contains:
- const: msi
+ enum:
+ - msi
+ - msg

additionalProperties: true

--
2.40.1