Commit f133396e authored by Serge Semin's avatar Serge Semin Committed by Lorenzo Pieralisi
Browse files

dt-bindings: PCI: dwc: Apply generic schema for generic device only

Having the generic compatible strings constraints with the 'any'+'generic
string' semantic implicitly encourages either to add new DW PCIe-based
DT-bindings with the generic compatible string attached or just forget
about adding new DT-bindings since the corresponding DT-node will be
evaluated anyway. Moreover having that semantic implemented in the
generic DT-schema causes the DT-validation tool to apply the schema twice:
first by implicit compatible-string-based selection and second by means of
the 'allOf: [ $ref ]' statement. Let's fix all of that by dropping the
compatible property constraints and selecting the generic DT-schema only
for the purely generic DW PCIe DT-nodes. The later is required since there
is a driver for such devices. (Though there are no such DT-nodes currently
defined in the kernel DT sources.)

Link: https://lore.kernel.org/r/20221113191301.5526-8-Sergey.Semin@baikalelectronics.ru


Signed-off-by: default avatarSerge Semin <Sergey.Semin@baikalelectronics.ru>
Signed-off-by: default avatarLorenzo Pieralisi <lpieralisi@kernel.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
parent eaa9d886
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -13,16 +13,20 @@ maintainers:
description: |
  Synopsys DesignWare PCIe host controller endpoint

# Please create a separate DT-schema for your DWC PCIe Endpoint controller
# and make sure it's assigned with the vendor-specific compatible string.
select:
  properties:
    compatible:
      const: snps,dw-pcie-ep
  required:
    - compatible

allOf:
  - $ref: /schemas/pci/pci-ep.yaml#
  - $ref: /schemas/pci/snps,dw-pcie-common.yaml#

properties:
  compatible:
    anyOf:
      - {}
      - const: snps,dw-pcie-ep

  reg:
    description: |
      It should contain Data Bus Interface (dbi) and config registers for all
@@ -38,9 +42,9 @@ properties:
      enum: [dbi, dbi2, config, atu, addr_space, link, atu_dma, appl]

required:
  - compatible
  - reg
  - reg-names
  - compatible

additionalProperties: true

+10 −6
Original line number Diff line number Diff line
@@ -13,16 +13,20 @@ maintainers:
description: |
  Synopsys DesignWare PCIe host controller

# Please create a separate DT-schema for your DWC PCIe Root Port controller
# and make sure it's assigned with the vendor-specific compatible string.
select:
  properties:
    compatible:
      const: snps,dw-pcie
  required:
    - compatible

allOf:
  - $ref: /schemas/pci/pci-bus.yaml#
  - $ref: /schemas/pci/snps,dw-pcie-common.yaml#

properties:
  compatible:
    anyOf:
      - {}
      - const: snps,dw-pcie

  reg:
    description: |
      It should contain Data Bus Interface (dbi) and config registers for all
@@ -47,9 +51,9 @@ properties:
additionalProperties: true

required:
  - compatible
  - reg
  - reg-names
  - compatible

examples:
  - |