On 22/04/2022 13:48, Dmitry Baryshkov wrote: > Instead of specifying the enum of possible reg-names, specify them > explicitly. This allows us to specify which chipsets need the "atu" > regions, which do not. Also it clearly describes which platforms > enumerate PCIe cores using the dbi region and which use parf region for > that. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > --- > .../devicetree/bindings/pci/qcom,pcie.yaml | 96 ++++++++++++++++--- > 1 file changed, 81 insertions(+), 15 deletions(-) > > diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > index 7210057d1511..e78e63ea4b25 100644 > --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml > @@ -35,21 +35,6 @@ properties: > - qcom,pcie-ipq6018 > - const: snps,dw-pcie > > - reg: > - minItems: 4 > - maxItems: 5 This should stay. > - > - reg-names: > - minItems: 4 > - maxItems: 5 > - items: > - enum: > - - parf # Qualcomm specific registers > - - dbi # DesignWare PCIe registers > - - elbi # External local bus interface registers > - - config # PCIe configuration space > - - atu # ATU address space (optional) Move one of your lists for specific compatibles here and name last element optional (minItems: 4). You will need to fix the order of regs in DTS to match the one defined here. > - > interrupts: > maxItems: 1 > > @@ -108,6 +93,87 @@ required: > > allOf: > - $ref: /schemas/pci/pci-bus.yaml# > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,pcie-apq8064 > + - qcom,pcie-ipq4019 > + - qcom,pcie-ipq8064 > + - qcom,pcie-ipq8064v2 > + - qcom,pcie-ipq8074 > + - qcom,pcie-qcs404 > + then: > + properties: > + reg: > + minItems: 4 > + maxItems: 4 Only maxItems: 4 > + reg-names: > + items: > + - const: dbi # DesignWare PCIe registers > + - const: elbi # External local bus interface registers > + - const: parf # Qualcomm specific registers > + - const: config # PCIe configuration space No need for this, instead only maxItems:4 > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,pcie-ipq6018 > + then: > + properties: > + reg: > + minItems: 5 > + maxItems: 5 Only minItems:5 should be needed. > + reg-names: > + items: > + - const: dbi # DesignWare PCIe registers > + - const: elbi # External local bus interface registers > + - const: atu # ATU address space (optional) > + - const: parf # Qualcomm specific registers > + - const: config # PCIe configuration space This can be removed. All other cases should be merged with the ones here. Best regards, Krzysztof