[RFC PATCH v6 1/2] dt-bindings: PCI: dw: rockchip: Add rk3576 support

Kever Yang
2025-02-21T11:08:23Z

rk3576 is using dwc controller, with msi interrupt directly to gic instead
of to gic its, so
- no its support is required and the 'msi-map' is not need anymore,
- a new 'msi' interrupt is needed.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

Changes in v6:
- Fix make dt_binding_check and make CHECK_DTBS=y

Changes in v5:
- Add constraints per device for interrupt-names due to the interrupt is
different from rk3588.

Changes in v4:
- Fix wrong indentation in dt_binding_check report by Rob

Changes in v3:
- Fix dtb check broken on rk3588
- Update commit message

Changes in v2:
- remove required 'msi-map'
- add interrupt name 'msi'

.../bindings/pci/rockchip-dw-pcie-common.yaml | 59 +++++++++++++++----
.../bindings/pci/rockchip-dw-pcie.yaml | 4 +-
2 files changed, 50 insertions(+), 13 deletions(-)

diff --git a/Documentation/devicetree/bindings/pci/rockchip-dw-pcie-common.yaml b/Documentation/devicetree/bindings/pci/rockchip-dw-pcie-common.yaml
index cc9adfc7611c..069eb267c0bb 100644
--- a/Documentation/devicetree/bindings/pci/rockchip-dw-pcie-common.yaml
+++ b/Documentation/devicetree/bindings/pci/rockchip-dw-pcie-common.yaml
@@ -64,6 +64,10 @@ properties:
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
+ - description:
+ Combinded MSI line interrupt, which is to support MSI interrupts
+ output to GIC controller via GIC SPI interrupt instead of GIC its
+ interrupt.
- description:
eDMA write channel 0 interrupt
- description:
@@ -75,16 +79,6 @@ properties:

interrupt-names:
minItems: 5
- items:
- - const: sys
- - const: pmc
- - const: msg
- - const: legacy
- - const: err
- - const: dma0
- - const: dma1
- - const: dma2
- - const: dma3

num-lanes: true

@@ -123,4 +117,49 @@ required:

additionalProperties: true

+anyOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - rockchip,rk3568-pcie
+ - rockchip,rk3588-pcie
+ - rockchip,rk3588-pcie-ep
+ then:
+ properties:
+ interrupt-names:
+ minItems: 5
+ type: array
+ items:
+ - const: sys
+ - const: pmc
+ - const: msg
+ - const: legacy
+ - const: err
+ - const: dma0
+ - const: dma1
+ - const: dma2
+ - const: dma3
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - rockchip,rk3576-pcie
+ then:
+ properties:
+ interrupt-names:
+ type: array
+ items:
+ - const: sys
+ - const: pmc
+ - const: msg
+ - const: legacy
+ - const: err
+ - const: msi
+ minItems: 6
+ maxItems: 6
+
...
diff --git a/Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml b/Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml
index 550d8a684af3..9a464731fa4a 100644
--- a/Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml
+++ b/Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml
@@ -26,6 +26,7 @@ properties:
- const: rockchip,rk3568-pcie
- items:
- enum:
+ - rockchip,rk3576-pcie
- rockchip,rk3588-pcie
- const: rockchip,rk3568-pcie

@@ -71,9 +72,6 @@ properties:

vpcie3v3-supply: true

-required:
- - msi-map
-
unevaluatedProperties: false