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

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.ruSigned-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
...@@ -13,16 +13,20 @@ maintainers: ...@@ -13,16 +13,20 @@ maintainers:
description: | description: |
Synopsys DesignWare PCIe host controller endpoint 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: allOf:
- $ref: /schemas/pci/pci-ep.yaml# - $ref: /schemas/pci/pci-ep.yaml#
- $ref: /schemas/pci/snps,dw-pcie-common.yaml# - $ref: /schemas/pci/snps,dw-pcie-common.yaml#
properties: properties:
compatible:
anyOf:
- {}
- const: snps,dw-pcie-ep
reg: reg:
description: | description: |
It should contain Data Bus Interface (dbi) and config registers for all It should contain Data Bus Interface (dbi) and config registers for all
...@@ -38,9 +42,9 @@ properties: ...@@ -38,9 +42,9 @@ properties:
enum: [dbi, dbi2, config, atu, addr_space, link, atu_dma, appl] enum: [dbi, dbi2, config, atu, addr_space, link, atu_dma, appl]
required: required:
- compatible
- reg - reg
- reg-names - reg-names
- compatible
additionalProperties: true additionalProperties: true
......
...@@ -13,16 +13,20 @@ maintainers: ...@@ -13,16 +13,20 @@ maintainers:
description: | description: |
Synopsys DesignWare PCIe host controller 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: allOf:
- $ref: /schemas/pci/pci-bus.yaml# - $ref: /schemas/pci/pci-bus.yaml#
- $ref: /schemas/pci/snps,dw-pcie-common.yaml# - $ref: /schemas/pci/snps,dw-pcie-common.yaml#
properties: properties:
compatible:
anyOf:
- {}
- const: snps,dw-pcie
reg: reg:
description: | description: |
It should contain Data Bus Interface (dbi) and config registers for all It should contain Data Bus Interface (dbi) and config registers for all
...@@ -47,9 +51,9 @@ properties: ...@@ -47,9 +51,9 @@ properties:
additionalProperties: true additionalProperties: true
required: required:
- compatible
- reg - reg
- reg-names - reg-names
- compatible
examples: examples:
- | - |
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment