2021-07-22 08:45:41

by Richard Zhu

[permalink] [raw]
Subject: [RFC 1/2] dt-bindings: PCI: imx6: add fsl,imx6q-pcie.yaml

Convert the fsl,imx6q-pcie.txt into a schema.

Signed-off-by: Richard Zhu <[email protected]>
---
.../bindings/pci/fsl,imx6q-pcie.yaml | 212 ++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 213 insertions(+)
create mode 100644 Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml

diff --git a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
new file mode 100644
index 000000000000..b66b681d7ad7
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
@@ -0,0 +1,212 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/fsl,imx6q-pcie.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale i.MX6 PCIe host controller
+
+maintainers:
+ - Lucas Stach <[email protected]>
+ - Richard Zhu <[email protected]>
+
+description: |+
+ This PCIe host controller is based on the Synopsys DesignWare PCIe IP
+ and thus inherits all the common properties defined in snps,dw-pcie.yaml.
+
+allOf:
+ - $ref: /schemas/pci/pci-bus.yaml#
+
+properties:
+ compatible:
+ const: fsl,imx6q-pcie
+ const: fsl,imx6sx-pcie
+ const: fsl,imx6qp-pcie
+ const: fsl,imx7d-pcie
+ const: fsl,imx8mq-pcie
+
+ reg:
+ items:
+ - description: Data Bus Interface (DBI) registers.
+ - description: PCIe configuration space region.
+
+ reg-names:
+ items:
+ - const: dbi
+ - const: config
+
+ interrupts:
+ minItems: 1
+ items:
+ - description: builtin MSI controller.
+
+ interrupt-names:
+ minItems: 1
+ items:
+ - const: msi
+
+ clocks:
+ minItems: 3
+ maxItems: 4
+ items:
+ - description: PCIe bridge clock.
+ - description: PCIe bus clock.
+ - description: PCIe PHY clock.
+ - description: Additional required clock entry for imx6sx-pcie,
+ imx8mq-pcie.
+
+ clock-names:
+ minItems: 3
+ maxItems: 4
+ items:
+ - const: pcie
+ - const: pcie_bus
+ - const: pcie_phy
+ - const: pcie_inbound_axi for imx6sx-pcie, pcie_aux for imx8mq-pcie
+
+ num-lanes:
+ const: 1
+
+ num-viewport:
+ const: 4
+
+ fsl,imx7d-pcie-phy:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: A phandle to an fsl,imx7d-pcie-phy node. Additional
+ required properties for imx7d-pcie and imx8mq-pcie.
+
+ power-domains:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ minItems: 1
+ maxItems: 2
+ items:
+ - description: Phandle pointing to the DISPLAY domain for imx6sx-pcie,
+ to PCIE_PHY power domain for imx7d-pcie and imx8mq-pcie.
+ - description: Phandle pointing to the PCIE_PHY power domains for
+ imx6sx-pcie.
+
+ power-domain-names:
+ minItems: 1
+ maxItems: 2
+ items:
+ - const: pcie
+ - const: pcie_phy
+
+ resets:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ items:
+ - description: Phandles to PCIe-related reset lines exposed by SRC
+ IP block. Additional required by imx7d-pcie and imx8mq-pcie.
+
+ reset-names:
+ items:
+ - const: pciephy
+ - const: apps
+ - const: turnoff
+
+ fsl,tx-deemph-gen1:
+ description: Gen1 De-emphasis value (optional required).
+ $ref: /schemas/types.yaml#/definitions/uint32
+ default: 0
+
+ fsl,tx-deemph-gen2-3p5db:
+ description: Gen2 (3.5db) De-emphasis value (optional required).
+ $ref: /schemas/types.yaml#/definitions/uint32
+ default: 0
+
+ fsl,tx-deemph-gen2-6db:
+ description: Gen2 (6db) De-emphasis value (optional required).
+ $ref: /schemas/types.yaml#/definitions/uint32
+ default: 20
+
+ fsl,tx-swing-full:
+ description: Gen2 TX SWING FULL value (optional required).
+ $ref: /schemas/types.yaml#/definitions/uint32
+ default: 127
+
+ fsl,tx-swing-low:
+ description: TX launch amplitude swing_low value (optional required).
+ $ref: /schemas/types.yaml#/definitions/uint32
+ default: 127
+
+ fsl,max-link-speed:
+ description: Specify PCI Gen for link capability (optional required).
+ Note that the IMX6 LVDS clock outputs do not meet gen2 jitter
+ requirements and thus for gen2 capability a gen2 compliant clock
+ generator should be used and configured.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [1, 2, 3, 4]
+ default: 1
+
+ reset-gpio:
+ description: Should specify the GPIO for controlling the PCI bus device
+ reset signal. It's not polarity aware and defaults to active-low reset
+ sequence (L=reset state, H=operation state) (optional required).
+
+ reset-gpio-active-high:
+ description: If present then the reset sequence using the GPIO
+ specified in the "reset-gpio" property is reversed (H=reset state,
+ L=operation state) (optional required).
+
+ vpcie-supply:
+ description: Should specify the regulator in charge of PCIe port power.
+ The regulator will be enabled when initializing the PCIe host and
+ disabled either as part of the init process or when shutting down
+ the host (optional required).
+
+ vph-supply:
+ description: Should specify the regulator in charge of VPH one of
+ the three PCIe PHY powers. This regulator can be supplied by both
+ 1.8v and 3.3v voltage supplies (optional required).
+
+required:
+ - compatible
+ - reg
+ - reg-names
+ - "#address-cells"
+ - "#size-cells"
+ - device_type
+ - bus-range
+ - ranges
+ - num-lanes
+ - num-viewport
+ - interrupts
+ - interrupt-names
+ - "#interrupt-cells"
+ - interrupt-map-mask
+ - interrupt-map
+ - clocks
+ - clock-names
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ pcie: pcie@1ffc000 {
+ compatible = "fsl,imx6q-pcie", "snps,dw-pcie";
+ reg = <0x01ffc000 0x04000>,
+ <0x01f00000 0x80000>;
+ reg-names = "dbi", "config";
+ #address-cells = <3>;
+ #size-cells = <2>;
+ device_type = "pci";
+ bus-range = <0x00 0xff>;
+ ranges = <0x81000000 0 0 0x01f80000 0 0x00010000 /* downstream I/O */
+ 0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */
+ num-lanes = <1>;
+ num-viewport = <4>;
+ interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "msi";
+ #interrupt-cells = <1>;
+ interrupt-map-mask = <0 0 0 0x7>;
+ interrupt-map = <0 0 0 1 &gpc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 2 &gpc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 3 &gpc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 4 &gpc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6QDL_CLK_PCIE_AXI>,
+ <&clks IMX6QDL_CLK_LVDS1_GATE>,
+ <&clks IMX6QDL_CLK_PCIE_REF_125M>;
+ clock-names = "pcie", "pcie_bus", "pcie_phy";
+ status = "disabled";
+ };
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 2c5dc7d20d81..a616e250d846 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -14186,6 +14186,7 @@ L: [email protected]
L: [email protected] (moderated for non-subscribers)
S: Maintained
F: Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
+F: Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
F: drivers/pci/controller/dwc/*imx6*

PCI DRIVER FOR FU740
--
2.17.1


2021-07-22 14:39:39

by Rob Herring

[permalink] [raw]
Subject: Re: [RFC 1/2] dt-bindings: PCI: imx6: add fsl,imx6q-pcie.yaml

On Thu, 22 Jul 2021 16:22:34 +0800, Richard Zhu wrote:
> Convert the fsl,imx6q-pcie.txt into a schema.
>
> Signed-off-by: Richard Zhu <[email protected]>
> ---
> .../bindings/pci/fsl,imx6q-pcie.yaml | 212 ++++++++++++++++++
> MAINTAINERS | 1 +
> 2 files changed, 213 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
>

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
make[1]: *** Deleting file 'Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.example.dts'
Traceback (most recent call last):
File "/usr/local/bin/dt-extract-example", line 45, in <module>
binding = yaml.load(open(args.yamlfile, encoding='utf-8').read())
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/main.py", line 434, in load
return constructor.get_single_data()
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 122, in get_single_data
return self.construct_document(node)
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 132, in construct_document
for _dummy in generator:
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 722, in construct_yaml_map
value = self.construct_mapping(node)
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 446, in construct_mapping
return BaseConstructor.construct_mapping(self, node, deep=deep)
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 264, in construct_mapping
if self.check_mapping_key(node, key_node, mapping, key, value):
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 295, in check_mapping_key
raise DuplicateKeyError(*args)
ruamel.yaml.constructor.DuplicateKeyError: while constructing a mapping
in "<unicode string>", line 22, column 5
found duplicate key "const" with value "fsl,imx6sx-pcie" (original value: "fsl,imx6q-pcie")
in "<unicode string>", line 23, column 5

To suppress this check see:
http://yaml.readthedocs.io/en/latest/api.html#duplicate-keys

Duplicate keys will become an error in future releases, and are errors
by default when using the new API.

make[1]: *** [Documentation/devicetree/bindings/Makefile:20: Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.example.dts] Error 1
make[1]: *** Waiting for unfinished jobs....
Traceback (most recent call last):
File "/usr/local/bin/dt-doc-validate", line 67, in <module>
ret = check_doc(f)
File "/usr/local/bin/dt-doc-validate", line 25, in check_doc
testtree = dtschema.load(filename, line_number=line_number)
File "/usr/local/lib/python3.8/dist-packages/dtschema/lib.py", line 623, in load
return yaml.load(f.read())
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/main.py", line 434, in load
return constructor.get_single_data()
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 122, in get_single_data
return self.construct_document(node)
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 132, in construct_document
for _dummy in generator:
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 722, in construct_yaml_map
value = self.construct_mapping(node)
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 446, in construct_mapping
return BaseConstructor.construct_mapping(self, node, deep=deep)
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 264, in construct_mapping
if self.check_mapping_key(node, key_node, mapping, key, value):
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 295, in check_mapping_key
raise DuplicateKeyError(*args)
ruamel.yaml.constructor.DuplicateKeyError: while constructing a mapping
in "<unicode string>", line 22, column 5
found duplicate key "const" with value "fsl,imx6sx-pcie" (original value: "fsl,imx6q-pcie")
in "<unicode string>", line 23, column 5

To suppress this check see:
http://yaml.readthedocs.io/en/latest/api.html#duplicate-keys

Duplicate keys will become an error in future releases, and are errors
by default when using the new API.

make[1]: *** Deleting file 'Documentation/devicetree/bindings/processed-schema-examples.json'
Traceback (most recent call last):
File "/usr/local/bin/dt-mk-schema", line 38, in <module>
schemas = dtschema.process_schemas(args.schemas, core_schema=(not args.useronly))
File "/usr/local/lib/python3.8/dist-packages/dtschema/lib.py", line 585, in process_schemas
sch = process_schema(os.path.abspath(filename))
File "/usr/local/lib/python3.8/dist-packages/dtschema/lib.py", line 558, in process_schema
schema = load_schema(filename)
File "/usr/local/lib/python3.8/dist-packages/dtschema/lib.py", line 125, in load_schema
return do_load(os.path.join(schema_basedir, schema))
File "/usr/local/lib/python3.8/dist-packages/dtschema/lib.py", line 111, in do_load
return yaml.load(f.read())
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/main.py", line 434, in load
return constructor.get_single_data()
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 122, in get_single_data
return self.construct_document(node)
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 132, in construct_document
for _dummy in generator:
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 722, in construct_yaml_map
value = self.construct_mapping(node)
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 446, in construct_mapping
return BaseConstructor.construct_mapping(self, node, deep=deep)
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 264, in construct_mapping
if self.check_mapping_key(node, key_node, mapping, key, value):
File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 295, in check_mapping_key
raise DuplicateKeyError(*args)
ruamel.yaml.constructor.DuplicateKeyError: while constructing a mapping
in "<unicode string>", line 22, column 5
found duplicate key "const" with value "fsl,imx6sx-pcie" (original value: "fsl,imx6q-pcie")
in "<unicode string>", line 23, column 5

To suppress this check see:
http://yaml.readthedocs.io/en/latest/api.html#duplicate-keys

Duplicate keys will become an error in future releases, and are errors
by default when using the new API.

make[1]: *** [Documentation/devicetree/bindings/Makefile:62: Documentation/devicetree/bindings/processed-schema-examples.json] Error 1
make: *** [Makefile:1418: dt_binding_check] Error 2
\ndoc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/patch/1508586

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

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.

2021-07-23 03:16:00

by Richard Zhu

[permalink] [raw]
Subject: RE: [RFC 1/2] dt-bindings: PCI: imx6: add fsl,imx6q-pcie.yaml


> -----Original Message-----
> From: Rob Herring <[email protected]>
> Sent: Thursday, July 22, 2021 10:37 PM
> To: Richard Zhu <[email protected]>
> Cc: dl-linux-imx <[email protected]>; [email protected];
> [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]
> Subject: Re: [RFC 1/2] dt-bindings: PCI: imx6: add fsl,imx6q-pcie.yaml
>
> On Thu, 22 Jul 2021 16:22:34 +0800, Richard Zhu wrote:
> > Convert the fsl,imx6q-pcie.txt into a schema.
> >
> > Signed-off-by: Richard Zhu <[email protected]>
> > ---
> > .../bindings/pci/fsl,imx6q-pcie.yaml | 212
> ++++++++++++++++++
> > MAINTAINERS | 1 +
> > 2 files changed, 213 insertions(+)
> > create mode 100644
> > Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml
> >
>
> My bot found errors running 'make DT_CHECKER_FLAGS=-m
> dt_binding_check'
> on your patch (DT_CHECKER_FLAGS is new in v5.13):
>
> yamllint warnings/errors:
>
> dtschema/dtc warnings/errors:
> make[1]: *** Deleting file
> 'Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.example.dts'
> Traceback (most recent call last):
> File "/usr/local/bin/dt-extract-example", line 45, in <module>
> binding = yaml.load(open(args.yamlfile, encoding='utf-8').read())
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/main.py", line
> 434, in load
> return constructor.get_single_data()
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 122, in get_single_data
> return self.construct_document(node)
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 132, in construct_document
> for _dummy in generator:
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 722, in construct_yaml_map
> value = self.construct_mapping(node)
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 446, in construct_mapping
> return BaseConstructor.construct_mapping(self, node, deep=deep)
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 264, in construct_mapping
> if self.check_mapping_key(node, key_node, mapping, key, value):
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 295, in check_mapping_key
> raise DuplicateKeyError(*args)
> ruamel.yaml.constructor.DuplicateKeyError: while constructing a mapping
> in "<unicode string>", line 22, column 5 found duplicate key "const" with
> value "fsl,imx6sx-pcie" (original value: "fsl,imx6q-pcie")
> in "<unicode string>", line 23, column 5
>
> To suppress this check see:
>
> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fyaml.re
> adthedocs.io%2Fen%2Flatest%2Fapi.html%23duplicate-keys&amp;data=04%
> 7C01%7Chongxing.zhu%40nxp.com%7C6171b22cdb104315be0d08d94d1e36
> 3f%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6376256144309
> 20703%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2l
> uMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=4Mu4S%2B6
> KeTg4gaCCL2Q%2ByjO7FbENp5LGHVRPuBhtvCc%3D&amp;reserved=0
>
> Duplicate keys will become an error in future releases, and are errors by
> default when using the new API.
>
> make[1]: *** [Documentation/devicetree/bindings/Makefile:20:
> Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.example.dts] Error 1
> make[1]: *** Waiting for unfinished jobs....
> Traceback (most recent call last):
> File "/usr/local/bin/dt-doc-validate", line 67, in <module>
> ret = check_doc(f)
> File "/usr/local/bin/dt-doc-validate", line 25, in check_doc
> testtree = dtschema.load(filename, line_number=line_number)
> File "/usr/local/lib/python3.8/dist-packages/dtschema/lib.py", line 623, in
> load
> return yaml.load(f.read())
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/main.py", line
> 434, in load
> return constructor.get_single_data()
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 122, in get_single_data
> return self.construct_document(node)
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 132, in construct_document
> for _dummy in generator:
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 722, in construct_yaml_map
> value = self.construct_mapping(node)
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 446, in construct_mapping
> return BaseConstructor.construct_mapping(self, node, deep=deep)
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 264, in construct_mapping
> if self.check_mapping_key(node, key_node, mapping, key, value):
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 295, in check_mapping_key
> raise DuplicateKeyError(*args)
> ruamel.yaml.constructor.DuplicateKeyError: while constructing a mapping
> in "<unicode string>", line 22, column 5 found duplicate key "const" with
> value "fsl,imx6sx-pcie" (original value: "fsl,imx6q-pcie")
> in "<unicode string>", line 23, column 5
>
> To suppress this check see:
>
> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fyaml.re
> adthedocs.io%2Fen%2Flatest%2Fapi.html%23duplicate-keys&amp;data=04%
> 7C01%7Chongxing.zhu%40nxp.com%7C6171b22cdb104315be0d08d94d1e36
> 3f%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6376256144309
> 20703%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2l
> uMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=4Mu4S%2B6
> KeTg4gaCCL2Q%2ByjO7FbENp5LGHVRPuBhtvCc%3D&amp;reserved=0
>
> Duplicate keys will become an error in future releases, and are errors by
> default when using the new API.
>
> make[1]: *** Deleting file
> 'Documentation/devicetree/bindings/processed-schema-examples.json'
> Traceback (most recent call last):
> File "/usr/local/bin/dt-mk-schema", line 38, in <module>
> schemas = dtschema.process_schemas(args.schemas,
> core_schema=(not args.useronly))
> File "/usr/local/lib/python3.8/dist-packages/dtschema/lib.py", line 585, in
> process_schemas
> sch = process_schema(os.path.abspath(filename))
> File "/usr/local/lib/python3.8/dist-packages/dtschema/lib.py", line 558, in
> process_schema
> schema = load_schema(filename)
> File "/usr/local/lib/python3.8/dist-packages/dtschema/lib.py", line 125, in
> load_schema
> return do_load(os.path.join(schema_basedir, schema))
> File "/usr/local/lib/python3.8/dist-packages/dtschema/lib.py", line 111, in
> do_load
> return yaml.load(f.read())
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/main.py", line
> 434, in load
> return constructor.get_single_data()
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 122, in get_single_data
> return self.construct_document(node)
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 132, in construct_document
> for _dummy in generator:
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 722, in construct_yaml_map
> value = self.construct_mapping(node)
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 446, in construct_mapping
> return BaseConstructor.construct_mapping(self, node, deep=deep)
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 264, in construct_mapping
> if self.check_mapping_key(node, key_node, mapping, key, value):
> File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py",
> line 295, in check_mapping_key
> raise DuplicateKeyError(*args)
> ruamel.yaml.constructor.DuplicateKeyError: while constructing a mapping
> in "<unicode string>", line 22, column 5 found duplicate key "const" with
> value "fsl,imx6sx-pcie" (original value: "fsl,imx6q-pcie")
> in "<unicode string>", line 23, column 5
>
> To suppress this check see:
>
> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fyaml.re
> adthedocs.io%2Fen%2Flatest%2Fapi.html%23duplicate-keys&amp;data=04%
> 7C01%7Chongxing.zhu%40nxp.com%7C6171b22cdb104315be0d08d94d1e36
> 3f%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6376256144309
> 20703%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2l
> uMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=4Mu4S%2B6
> KeTg4gaCCL2Q%2ByjO7FbENp5LGHVRPuBhtvCc%3D&amp;reserved=0
>
> Duplicate keys will become an error in future releases, and are errors by
> default when using the new API.
>
> make[1]: *** [Documentation/devicetree/bindings/Makefile:62:
> Documentation/devicetree/bindings/processed-schema-examples.json] Error
> 1
> make: *** [Makefile:1418: dt_binding_check] Error 2 \ndoc reference errors
> (make refcheckdocs):
>
> See
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatch
> work.ozlabs.org%2Fpatch%2F1508586&amp;data=04%7C01%7Chongxing.zhu
> %40nxp.com%7C6171b22cdb104315be0d08d94d1e363f%7C686ea1d3bc2b4
> c6fa92cd99c5c301635%7C0%7C0%7C637625614430920703%7CUnknown%
> 7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haW
> wiLCJXVCI6Mn0%3D%7C1000&amp;sdata=1x%2BNE6KyvoYSRAPFxPVXKYu4
> Md59o%2F9CtEKqaCsOwuU%3D&amp;reserved=0
>
> This check can fail if there are any dependencies. The base for a patch series
> is generally the most recent rc1.
>
> 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.
[Richard Zhu] Got that. Thanks for your help. Will submit the patch-set after the errors are fixed.

Best Regards
Richard Zhu