Message ID | 20250221104357.1514128-2-kever.yang@rock-chips.com (mailing list archive) |
---|---|
State | RFC |
Delegated to: | Krzysztof WilczyĆski |
Headers | show |
Series | Add rk3576 pcie dts nodes | expand |
On Fri, 21 Feb 2025 18:43:56 +0800, Kever Yang wrote: > 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(-) > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: dtschema/dtc warnings/errors: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/pci/rockchip-dw-pcie-common.yaml: anyOf:1:then:properties:interrupt-names: {'type': 'array', 'items': [{'const': 'sys'}, {'const': 'pmc'}, {'const': 'msg'}, {'const': 'legacy'}, {'const': 'err'}, {'const': 'msi'}], 'minItems': 6, 'maxItems': 6} should not be valid under {'required': ['maxItems']} hint: "maxItems" is not needed with an "items" list from schema $id: http://devicetree.org/meta-schemas/items.yaml# /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/pci/rockchip-dw-pcie-common.yaml: anyOf:1:then:properties:interrupt-names: 'oneOf' conditional failed, one must be fixed: [{'const': 'sys'}, {'const': 'pmc'}, {'const': 'msg'}, {'const': 'legacy'}, {'const': 'err'}, {'const': 'msi'}] is too long [{'const': 'sys'}, {'const': 'pmc'}, {'const': 'msg'}, {'const': 'legacy'}, {'const': 'err'}, {'const': 'msi'}] is too short False schema does not allow 6 1 was expected 6 is greater than the maximum of 2 6 is greater than the maximum of 3 6 is greater than the maximum of 4 6 is greater than the maximum of 5 hint: "minItems" is only needed if less than the "items" list length from schema $id: http://devicetree.org/meta-schemas/items.yaml# /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/pci/rockchip-dw-pcie-ep.example.dtb: pcie-ep@fe150000: interrupt-names: ['sys', 'pmc', 'msg', 'legacy', 'err', 'dma0', 'dma1', 'dma2', 'dma3'] is too long from schema $id: http://devicetree.org/schemas/pci/rockchip-dw-pcie-ep.yaml# /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/pci/rockchip-dw-pcie-ep.example.dtb: pcie-ep@fe150000: Unevaluated properties are not allowed ('power-domains' was unexpected) from schema $id: http://devicetree.org/schemas/pci/rockchip-dw-pcie-ep.yaml# doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250221104357.1514128-2-kever.yang@rock-chips.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
On Fri, Feb 21, 2025 at 06:43:56PM +0800, Kever Yang wrote: > 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: You just made the max 5 by dropping this. > - - const: sys > - - const: pmc > - - const: msg > - - const: legacy > - - const: err > - - const: dma0 Make this 'enum: [ dma0, msi ]' Yeah, that would allow the wrong one to be used, but I prefer that over duplicating the names. > - - const: dma1 > - - const: dma2 > - - const: dma3 > > num-lanes: true > > @@ -123,4 +117,49 @@ required: > > additionalProperties: true > > +anyOf: allOf > + - if: > + properties: > + compatible: > + contains: > + enum: > + - rockchip,rk3568-pcie > + - rockchip,rk3588-pcie > + - rockchip,rk3588-pcie-ep > + then: > + properties: > + interrupt-names: > + minItems: 5 That's already the min. > + type: array Don't need type. Do you see any schema use 'type: array' outside of the core? > + items: > + - const: sys > + - const: pmc > + - const: msg > + - const: legacy > + - const: err > + - const: dma0 > + - const: dma1 > + - const: dma2 > + - const: dma3 The whole if/then can be dropped. > + > + - 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 Don't need type or items. Just this is enough to ensure 'msi' is used: contains: const: msi > + minItems: 6 > + maxItems: 6 This part is correct. > + > ... > 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 This should be moved to an if/then schema, not just dropped. Unless it was wrong for the existing users. If so, then that's a separate patch. > - > unevaluatedProperties: false > > examples: > -- > 2.25.1 >
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 examples:
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(-)