Message ID | 1626942155-9209-2-git-send-email-hongxing.zhu@nxp.com |
---|---|
State | New |
Headers | show |
Series | [RFC,1/2] dt-bindings: PCI: imx6: add fsl,imx6q-pcie.yaml | expand |
> -----Original Message----- > From: Rob Herring <robh@kernel.org> > Sent: Thursday, July 22, 2021 10:37 PM > To: Richard Zhu <hongxing.zhu@nxp.com> > Cc: dl-linux-imx <linux-imx@nxp.com>; linux-arm-kernel@lists.infradead.org; > l.stach@pengutronix.de; galak@kernel.crashing.org; shawnguo@kernel.org; > linux-kernel@vger.kernel.org; devicetree@vger.kernel.org > 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 <hongxing.zhu@nxp.com> > > --- > > .../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&data=04% > 7C01%7Chongxing.zhu%40nxp.com%7C6171b22cdb104315be0d08d94d1e36 > 3f%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6376256144309 > 20703%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2l > uMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=4Mu4S%2B6 > KeTg4gaCCL2Q%2ByjO7FbENp5LGHVRPuBhtvCc%3D&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&data=04% > 7C01%7Chongxing.zhu%40nxp.com%7C6171b22cdb104315be0d08d94d1e36 > 3f%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6376256144309 > 20703%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2l > uMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=4Mu4S%2B6 > KeTg4gaCCL2Q%2ByjO7FbENp5LGHVRPuBhtvCc%3D&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&data=04% > 7C01%7Chongxing.zhu%40nxp.com%7C6171b22cdb104315be0d08d94d1e36 > 3f%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6376256144309 > 20703%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2l > uMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=4Mu4S%2B6 > KeTg4gaCCL2Q%2ByjO7FbENp5LGHVRPuBhtvCc%3D&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&data=04%7C01%7Chongxing.zhu > %40nxp.com%7C6171b22cdb104315be0d08d94d1e363f%7C686ea1d3bc2b4 > c6fa92cd99c5c301635%7C0%7C0%7C637625614430920703%7CUnknown% > 7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haW > wiLCJXVCI6Mn0%3D%7C1000&sdata=1x%2BNE6KyvoYSRAPFxPVXKYu4 > Md59o%2F9CtEKqaCsOwuU%3D&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
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 <l.stach@pengutronix.de> + - Richard Zhu <hongxing.zhu@nxp.com> + +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: linux-pci@vger.kernel.org L: linux-arm-kernel@lists.infradead.org (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
Convert the fsl,imx6q-pcie.txt into a schema. Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com> --- .../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