convert designware-pcie.txt and kirin-pcie.txt to yaml
Subsystems (19)
v3 cover convert designware-pcie.txt and kirin-pcie.txt to yaml
Hi Rob,
This series applies after this one:
https://lore.kernel.org/lkml/[email protected]/
It basically converts two PCI DT-bindings to DT schema. On this version, I'm addressing some of your comments from v2, and rebased it on the top of my Hikey 960/970 tree (based on linus/master).
The example for the designware file is producing some warnings here, as it can't find the right propertiesPattern. No idea why.
Mauro Carvalho Chehab (2):
dt-bindings: PCI: designware-pcie.txt: convert it to yaml
dt-bindings: PCI: kirin-pcie.txt: convert it to yaml
.../bindings/pci/amlogic,meson-pcie.txt | 4 +- .../bindings/pci/axis,artpec6-pcie.txt | 2 +- .../bindings/pci/designware-pcie.txt | 77 ---------- .../bindings/pci/fsl,imx6q-pcie.txt | 2 +- .../bindings/pci/hisilicon,kirin-pcie.yaml | 79 ++++++++++ .../bindings/pci/hisilicon-histb-pcie.txt | 2 +- .../devicetree/bindings/pci/kirin-pcie.txt | 41 ------ .../bindings/pci/layerscape-pci.txt | 2 +- .../bindings/pci/nvidia,tegra194-pcie.txt | 4 +- .../devicetree/bindings/pci/pci-armada8k.txt | 2 +- .../devicetree/bindings/pci/pcie-al.txt | 2 +- .../devicetree/bindings/pci/qcom,pcie.txt | 14 +- .../bindings/pci/samsung,exynos-pcie.yaml | 2 +- .../bindings/pci/sifive,fu740-pcie.yaml | 2 +- .../devicetree/bindings/pci/snps,dw-pcie.yaml | 135 ++++++++++++++++++ .../pci/socionext,uniphier-pcie-ep.yaml | 2 +- .../devicetree/bindings/pci/ti-pci.txt | 4 +- .../devicetree/bindings/pci/uniphier-pcie.txt | 2 +- MAINTAINERS | 4 +- 19 files changed, 239 insertions(+), 143 deletions(-) delete mode 100644 Documentation/devicetree/bindings/pci/designware-pcie.txt create mode 100644 Documentation/devicetree/bindings/pci/hisilicon,kirin-pcie.yaml delete mode 100644 Documentation/devicetree/bindings/pci/kirin-pcie.txt create mode 100644 Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml
Signature · 1 line
2.31.1
PATCH v3 1/2 dt-bindings: PCI: designware-pcie.txt: convert it to yaml
Convert the file to DT schema.
--- .../bindings/pci/amlogic,meson-pcie.txt | 4 +- .../bindings/pci/axis,artpec6-pcie.txt | 2 +- .../bindings/pci/designware-pcie.txt | 77 ---------- .../bindings/pci/fsl,imx6q-pcie.txt | 2 +- .../bindings/pci/hisilicon-histb-pcie.txt | 2 +- .../devicetree/bindings/pci/kirin-pcie.txt | 2 +- .../bindings/pci/layerscape-pci.txt | 2 +- .../bindings/pci/nvidia,tegra194-pcie.txt | 4 +- .../devicetree/bindings/pci/pci-armada8k.txt | 2 +- .../devicetree/bindings/pci/pcie-al.txt | 2 +- .../devicetree/bindings/pci/qcom,pcie.txt | 14 +- .../bindings/pci/samsung,exynos-pcie.yaml | 2 +- .../bindings/pci/sifive,fu740-pcie.yaml | 2 +- .../devicetree/bindings/pci/snps,dw-pcie.yaml | 135 ++++++++++++++++++ .../pci/socionext,uniphier-pcie-ep.yaml | 2 +- .../devicetree/bindings/pci/ti-pci.txt | 4 +- .../devicetree/bindings/pci/uniphier-pcie.txt | 2 +- MAINTAINERS | 2 +- 18 files changed, 160 insertions(+), 102 deletions(-) delete mode 100644 Documentation/devicetree/bindings/pci/designware-pcie.txt create mode 100644 Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml
Documentation/devicetree/bindings/pci/amlogic,meson-pcie.txt +2 -2
@@ -3,7 +3,7 @@ Amlogic Meson AXG DWC PCIE SoC controller Amlogic Meson PCIe host controller is based on the Synopsys DesignWare PCI core. It shares common functions with the PCIe DesignWare core driver and inherits common properties defined in -Documentation/devicetree/bindings/pci/designware-pcie.txt. +Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. Additional properties are described here:
@@ -33,7 +33,7 @@ Required properties: - phy-names: must contain "pcie" - device_type: - should be "pci". As specified in designware-pcie.txt + should be "pci". As specified in snps,dw-pcie.yaml Example configuration:
Documentation/devicetree/bindings/pci/axis,artpec6-pcie.txt +1 -1
@@ -1,7 +1,7 @@ * Axis ARTPEC-6 PCIe interface This PCIe host controller is based on the Synopsys DesignWare PCIe IP -and thus inherits all the common properties defined in designware-pcie.txt. +and thus inherits all the common properties defined in snps,dw-pcie.yaml. Required properties: - compatible: "axis,artpec6-pcie", "snps,dw-pcie" for ARTPEC-6 in RC mode;
Documentation/devicetree/bindings/pci/designware-pcie.txt deleted +0 -77
77 lines not on this page · raw message
Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt +1 -1
@@ -1,7 +1,7 @@ * Freescale i.MX6 PCIe interface This PCIe host controller is based on the Synopsys DesignWare PCIe IP -and thus inherits all the common properties defined in designware-pcie.txt. +and thus inherits all the common properties defined in snps,dw-pcie.yaml. Required properties: - compatible:
Documentation/devicetree/bindings/pci/hisilicon-histb-pcie.txt +1 -1
@@ -3,7 +3,7 @@ HiSilicon STB PCIe host bridge DT description The HiSilicon STB PCIe host controller is based on the DesignWare PCIe core. It shares common functions with the DesignWare PCIe core driver and inherits common properties defined in -Documentation/devicetree/bindings/pci/designware-pcie.txt. +Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. Additional properties are described here:
Documentation/devicetree/bindings/pci/kirin-pcie.txt +1 -1
@@ -3,7 +3,7 @@ HiSilicon Kirin SoCs PCIe host DT description Kirin PCIe host controller is based on the Synopsys DesignWare PCI core. It shares common functions with the PCIe DesignWare core driver and inherits common properties defined in -Documentation/devicetree/bindings/pci/designware-pcie.txt. +Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. Additional properties are described here:
Documentation/devicetree/bindings/pci/layerscape-pci.txt +1 -1
@@ -1,7 +1,7 @@ Freescale Layerscape PCIe controller This PCIe host controller is based on the Synopsys DesignWare PCIe IP -and thus inherits all the common properties defined in designware-pcie.txt. +and thus inherits all the common properties defined in snps,dw-pcie.yaml. This controller derives its clocks from the Reset Configuration Word (RCW) which is used to describe the PLL settings at the time of chip-reset.
Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.txt +2 -2
@@ -1,7 +1,7 @@ NVIDIA Tegra PCIe controller (Synopsys DesignWare Core based) This PCIe controller is based on the Synopsis Designware PCIe IP -and thus inherits all the common properties defined in designware-pcie.txt. +and thus inherits all the common properties defined in snps,dw-pcie.yaml. Some of the controller instances are dual mode where in they can work either in root port mode or endpoint mode but one at a time.
@@ -22,7 +22,7 @@ Required properties: property. - reg-names: Must include the following entries: "appl": Controller's application logic registers - "config": As per the definition in designware-pcie.txt + "config": As per the definition in snps,dw-pcie.yaml "atu_dma": iATU and DMA registers. This is where the iATU (internal Address Translation Unit) registers of the PCIe core are made available for SW access.
Documentation/devicetree/bindings/pci/pci-armada8k.txt +1 -1
@@ -1,7 +1,7 @@ * Marvell Armada 7K/8K PCIe interface This PCIe host controller is based on the Synopsys DesignWare PCIe IP -and thus inherits all the common properties defined in designware-pcie.txt. +and thus inherits all the common properties defined in snps,dw-pcie.yaml. Required properties: - compatible: "marvell,armada8k-pcie"
Documentation/devicetree/bindings/pci/pcie-al.txt +1 -1
@@ -2,7 +2,7 @@ Amazon's Annapurna Labs PCIe Host Controller is based on the Synopsys DesignWare PCI core. It inherits common properties defined in -Documentation/devicetree/bindings/pci/designware-pcie.txt. +Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. Properties of the host controller node that differ from it are:
Documentation/devicetree/bindings/pci/qcom,pcie.txt +7 -7
@@ -33,22 +33,22 @@ - device_type: Usage: required Value type: <string> - Definition: Should be "pci". As specified in designware-pcie.txt + Definition: Should be "pci". As specified in snps,dw-pcie.yaml - #address-cells: Usage: required Value type: <u32> - Definition: Should be 3. As specified in designware-pcie.txt + Definition: Should be 3. As specified in snps,dw-pcie.yaml - #size-cells: Usage: required Value type: <u32> - Definition: Should be 2. As specified in designware-pcie.txt + Definition: Should be 2. As specified in snps,dw-pcie.yaml - ranges: Usage: required Value type: <prop-encoded-array> - Definition: As specified in designware-pcie.txt + Definition: As specified in snps,dw-pcie.yaml - interrupts: Usage: required
@@ -63,17 +63,17 @@ - #interrupt-cells: Usage: required Value type: <u32> - Definition: Should be 1. As specified in designware-pcie.txt + Definition: Should be 1. As specified in snps,dw-pcie.yaml - interrupt-map-mask: Usage: required Value type: <prop-encoded-array> - Definition: As specified in designware-pcie.txt + Definition: As specified in snps,dw-pcie.yaml - interrupt-map: Usage: required Value type: <prop-encoded-array> - Definition: As specified in designware-pcie.txt + Definition: As specified in snps,dw-pcie.yaml - clocks: Usage: required
Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml +1 -1
@@ -13,7 +13,7 @@ maintainers: description: |+ Exynos5433 SoC PCIe host controller is based on the Synopsys DesignWare PCIe IP and thus inherits all the common properties defined in - designware-pcie.txt. + snps,dw-pcie.yaml. allOf: - $ref: /schemas/pci/pci-bus.yaml#
Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml +1 -1
@@ -10,7 +10,7 @@ description: |+ SiFive FU740 PCIe host controller is based on the Synopsys DesignWare PCI core. It shares common features with the PCIe DesignWare core and inherits common properties defined in - Documentation/devicetree/bindings/pci/designware-pcie.txt. + Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. maintainers: - Paul Walmsley <[email protected]>
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +135 -0
135 lines not on this page · raw message
Documentation/devicetree/bindings/pci/socionext,uniphier-pcie-ep.yaml +1 -1
@@ -10,7 +10,7 @@ description: | UniPhier PCIe endpoint controller is based on the Synopsys DesignWare PCI core. It shares common features with the PCIe DesignWare core and inherits common properties defined in - Documentation/devicetree/bindings/pci/designware-pcie.txt. + Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. maintainers: - Kunihiko Hayashi <[email protected]>
Documentation/devicetree/bindings/pci/ti-pci.txt +2 -2
@@ -12,7 +12,7 @@ PCIe DesignWare Controller number of PHYs as specified in *phys* property. - ti,hwmods : Name of the hwmod associated to the pcie, "pcie<X>", where <X> is the instance number of the pcie from the HW spec. - - num-lanes as specified in ../designware-pcie.txt + - num-lanes as specified in ../snps,dw-pcie.yaml - ti,syscon-lane-sel : phandle/offset pair. Phandle to the system control module and the register offset to specify lane selection.
@@ -32,7 +32,7 @@ HOST MODE device_type, ranges, interrupt-map-mask, - interrupt-map : as specified in ../designware-pcie.txt + interrupt-map : as specified in ../snps,dw-pcie.yaml - ti,syscon-unaligned-access: phandle to the syscon DT node. The 1st argument should contain the register offset within syscon and the 2nd argument should contain the bit field
Documentation/devicetree/bindings/pci/uniphier-pcie.txt +1 -1
@@ -6,7 +6,7 @@ on Socionext UniPhier SoCs. UniPhier PCIe host controller is based on the Synopsys DesignWare PCI core. It shares common functions with the PCIe DesignWare core driver and inherits common properties defined in -Documentation/devicetree/bindings/pci/designware-pcie.txt. +Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. Required properties: - compatible: Should be "socionext,uniphier-pcie".
MAINTAINERS +1 -1
@@ -14231,7 +14231,7 @@ M: Jingoo Han <[email protected]> M: Gustavo Pimentel <[email protected]> L: [email protected] S: Maintained -F: Documentation/devicetree/bindings/pci/designware-pcie.txt +F: Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml F: drivers/pci/controller/dwc/*designware* PCI DRIVER FOR TI DRA7XX/J721E
Signature · 1 line
2.31.1
Rob Herring
maintainerRe: [PATCH v3 1/2] dt-bindings: PCI: designware-pcie.txt: convert it to yaml
Quoted 17 lines · Mauro Carvalho Chehab
Convert the file to DT schema.
Signed-off-by Mauro Carvalho Chehab <[email protected]>--- .../bindings/pci/amlogic,meson-pcie.txt | 4 +- .../bindings/pci/axis,artpec6-pcie.txt | 2 +- .../bindings/pci/designware-pcie.txt | 77 ---------- .../bindings/pci/fsl,imx6q-pcie.txt | 2 +- .../bindings/pci/hisilicon-histb-pcie.txt | 2 +- .../devicetree/bindings/pci/kirin-pcie.txt | 2 +- .../bindings/pci/layerscape-pci.txt | 2 +- .../bindings/pci/nvidia,tegra194-pcie.txt | 4 +- .../devicetree/bindings/pci/pci-armada8k.txt | 2 +- .../devicetree/bindings/pci/pcie-al.txt | 2 +- .../devicetree/bindings/pci/qcom,pcie.txt | 14 +- .../bindings/pci/samsung,exynos-pcie.yaml | 2 +- .../bindings/pci/sifive,fu740-pcie.yaml | 2 +-
Quoted 9 lines
.../devicetree/bindings/pci/snps,dw-pcie.yaml | 135 ++++++++++++++++++ .../pci/socionext,uniphier-pcie-ep.yaml | 2 +- .../devicetree/bindings/pci/ti-pci.txt | 4 +- .../devicetree/bindings/pci/uniphier-pcie.txt | 2 +- MAINTAINERS | 2 +- 18 files changed, 160 insertions(+), 102 deletions(-) delete mode 100644 Documentation/devicetree/bindings/pci/designware-pcie.txt create mode 100644 Documentation/devicetree/bindings/pci/snps,dw-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:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pci/intel-gw-pcie.example.dt.yaml: pcie@d0e00000: '#address-cells', '#interrupt-cells', '#size-cells', 'bus-range', 'clocks', 'device_type', 'interrupt-map', 'interrupt-map-mask', 'linux,pci-domain', 'max-link-speed', 'phy-names', 'phys', 'ranges', 'reset-assert-ms', 'reset-gpios', 'resets' do not match any of the regexes: 'pcie?@[0-9a-f]+$', 'pcie?_ep@[0-9a-f]+$', 'pinctrl-[0-9]+'
From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pci/snps,dw-pcie.example.dt.yaml: pcie@dfc00000: '#address-cells', '#interrupt-cells', '#size-cells', 'device_type', 'interrupts', 'ranges' do not match any of the regexes: 'pcie?@[0-9a-f]+$', 'pcie?_ep@[0-9a-f]+$', 'pinctrl-[0-9]+'
From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml
\ndoc reference errors (make refcheckdocs):Documentation/devicetree/bindings/pci/pci-keystone.txt: Documentation/devicetree/bindings/pci/designware-pcie.txtDocumentation/devicetree/bindings/pci/pci-keystone.txt: Documentation/devicetree/bindings/pci/designware-pcie.txtDocumentation/devicetree/bindings/pci/pci-keystone.txt: Documentation/devicetree/bindings/pci/designware-pcie.txtDocumentation/devicetree/bindings/pci/pci-keystone.txt: Documentation/devicetree/bindings/pci/designware-pcie.txtDocumentation/devicetree/bindings/pci/pci-keystone.txt: Documentation/devicetree/bindings/pci/designware-pcie.txtMAINTAINERS: Documentation/devicetree/bindings/pci/designware-pcie.txt
See https://patchwork.ozlabs.org/patch/1503171
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.
Rob Herring
maintainerRe: [PATCH v3 1/2] dt-bindings: PCI: designware-pcie.txt: convert it to yaml
In reply to Mauro Carvalho ChehabQuoted 339 lines · Mauro Carvalho Chehab
Convert the file to DT schema.
Signed-off-by Mauro Carvalho Chehab <[email protected]>--- .../bindings/pci/amlogic,meson-pcie.txt | 4 +- .../bindings/pci/axis,artpec6-pcie.txt | 2 +- .../bindings/pci/designware-pcie.txt | 77 ---------- .../bindings/pci/fsl,imx6q-pcie.txt | 2 +- .../bindings/pci/hisilicon-histb-pcie.txt | 2 +- .../devicetree/bindings/pci/kirin-pcie.txt | 2 +- .../bindings/pci/layerscape-pci.txt | 2 +- .../bindings/pci/nvidia,tegra194-pcie.txt | 4 +- .../devicetree/bindings/pci/pci-armada8k.txt | 2 +- .../devicetree/bindings/pci/pcie-al.txt | 2 +- .../devicetree/bindings/pci/qcom,pcie.txt | 14 +- .../bindings/pci/samsung,exynos-pcie.yaml | 2 +- .../bindings/pci/sifive,fu740-pcie.yaml | 2 +- .../devicetree/bindings/pci/snps,dw-pcie.yaml | 135 ++++++++++++++++++ .../pci/socionext,uniphier-pcie-ep.yaml | 2 +- .../devicetree/bindings/pci/ti-pci.txt | 4 +- .../devicetree/bindings/pci/uniphier-pcie.txt | 2 +- MAINTAINERS | 2 +- 18 files changed, 160 insertions(+), 102 deletions(-) delete mode 100644 Documentation/devicetree/bindings/pci/designware-pcie.txt create mode 100644 Documentation/devicetree/bindings/pci/snps,dw-pcie.yamlDocumentation/devicetree/bindings/pci/amlogic,meson-pcie.txt +2
-2@@ -3,7 +3,7 @@ Amlogic Meson AXG DWC PCIE SoC controller Amlogic Meson PCIe host controller is based on the Synopsys DesignWare PCI core. It shares common functions with the PCIe DesignWare core driver and inherits common properties defined in -Documentation/devicetree/bindings/pci/designware-pcie.txt. +Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. Additional properties are described here:@@ -33,7 +33,7 @@ Required properties: - phy-names: must contain "pcie" - device_type: - should be "pci". As specified in designware-pcie.txt + should be "pci". As specified in snps,dw-pcie.yaml Example configuration:Documentation/devicetree/bindings/pci/axis,artpec6-pcie.txt +1
-1@@ -1,7 +1,7 @@ * Axis ARTPEC-6 PCIe interface This PCIe host controller is based on the Synopsys DesignWare PCIe IP -and thus inherits all the common properties defined in designware-pcie.txt. +and thus inherits all the common properties defined in snps,dw-pcie.yaml. Required properties: - compatible: "axis,artpec6-pcie", "snps,dw-pcie" for ARTPEC-6 in RC mode;Documentation/devicetree/bindings/pci/designware-pcie.txt deleted +0
-77@@ -1,77 +0,0 @@ -* Synopsys DesignWare PCIe interface - -Required properties: -- compatible: - "snps,dw-pcie" for RC mode; - "snps,dw-pcie-ep" for EP mode; -- reg: For designware cores version < 4.80 contains the configuration - address space. For designware core version >= 4.80, contains - the configuration and ATU address space -- reg-names: Must be "config" for the PCIe configuration space and "atu" for - the ATU address space. - (The old way of getting the configuration address space from "ranges" - is deprecated and should be avoided.) -RC mode: -- #address-cells: set to <3> -- #size-cells: set to <2> -- device_type: set to "pci" -- ranges: ranges for the PCI memory and I/O regions -- #interrupt-cells: set to <1> -- interrupt-map-mask and interrupt-map: standard PCI - properties to define the mapping of the PCIe interface to interrupt - numbers. -EP mode: -- num-ib-windows: number of inbound address translation windows -- num-ob-windows: number of outbound address translation windows - -Optional properties: -- num-lanes: number of lanes to use (this property should be specified unless - the link is brought already up in BIOS) -- reset-gpio: GPIO pin number of power good signal -- clocks: Must contain an entry for each entry in clock-names. - See ../clocks/clock-bindings.txt for details. -- clock-names: Must include the following entries: - - "pcie" - - "pcie_bus" -- snps,enable-cdm-check: This is a boolean property and if present enables - automatic checking of CDM (Configuration Dependent Module) registers - for data corruption. CDM registers include standard PCIe configuration - space registers, Port Logic registers, DMA and iATU (internal Address - Translation Unit) registers. -RC mode: -- num-viewport: number of view ports configured in hardware. If a platform - does not specify it, the driver assumes 2. -- bus-range: PCI bus numbers covered (it is recommended for new devicetrees - to specify this property, to keep backwards compatibility a range of - 0x00-0xff is assumed if not present) - -EP mode: -- max-functions: maximum number of functions that can be configured - -Example configuration: - - pcie: pcie@dfc00000 { - compatible = "snps,dw-pcie"; - reg = <0xdfc00000 0x0001000>, /* IP registers */ - <0xd0000000 0x0002000>; /* Configuration space */ - reg-names = "dbi", "config"; - #address-cells = <3>; - #size-cells = <2>; - device_type = "pci"; - ranges = <0x81000000 0 0x00000000 0xde000000 0 0x00010000 - 0x82000000 0 0xd0400000 0xd0400000 0 0x0d000000>; - interrupts = <25>, <24>; - #interrupt-cells = <1>; - num-lanes = <1>; - }; -or - pcie: pcie@dfc00000 { - compatible = "snps,dw-pcie-ep"; - reg = <0xdfc00000 0x0001000>, /* IP registers 1 */ - <0xdfc01000 0x0001000>, /* IP registers 2 */ - <0xd0000000 0x2000000>; /* Configuration space */ - reg-names = "dbi", "dbi2", "addr_space"; - num-ib-windows = <6>; - num-ob-windows = <2>; - num-lanes = <1>; - };Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt +1
-1@@ -1,7 +1,7 @@ * Freescale i.MX6 PCIe interface This PCIe host controller is based on the Synopsys DesignWare PCIe IP -and thus inherits all the common properties defined in designware-pcie.txt. +and thus inherits all the common properties defined in snps,dw-pcie.yaml. Required properties: - compatible:Documentation/devicetree/bindings/pci/hisilicon-histb-pcie.txt +1
-1@@ -3,7 +3,7 @@ HiSilicon STB PCIe host bridge DT description The HiSilicon STB PCIe host controller is based on the DesignWare PCIe core. It shares common functions with the DesignWare PCIe core driver and inherits common properties defined in -Documentation/devicetree/bindings/pci/designware-pcie.txt. +Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. Additional properties are described here:Documentation/devicetree/bindings/pci/kirin-pcie.txt +1
-1@@ -3,7 +3,7 @@ HiSilicon Kirin SoCs PCIe host DT description Kirin PCIe host controller is based on the Synopsys DesignWare PCI core. It shares common functions with the PCIe DesignWare core driver and inherits common properties defined in -Documentation/devicetree/bindings/pci/designware-pcie.txt. +Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. Additional properties are described here:Documentation/devicetree/bindings/pci/layerscape-pci.txt +1
-1@@ -1,7 +1,7 @@ Freescale Layerscape PCIe controller This PCIe host controller is based on the Synopsys DesignWare PCIe IP -and thus inherits all the common properties defined in designware-pcie.txt. +and thus inherits all the common properties defined in snps,dw-pcie.yaml. This controller derives its clocks from the Reset Configuration Word (RCW) which is used to describe the PLL settings at the time of chip-reset.Documentation/devicetree/bindings/pci/nvidia,tegra194-pcie.txt +2
-2@@ -1,7 +1,7 @@ NVIDIA Tegra PCIe controller (Synopsys DesignWare Core based) This PCIe controller is based on the Synopsis Designware PCIe IP -and thus inherits all the common properties defined in designware-pcie.txt. +and thus inherits all the common properties defined in snps,dw-pcie.yaml. Some of the controller instances are dual mode where in they can work either in root port mode or endpoint mode but one at a time.@@ -22,7 +22,7 @@ Required properties: property. - reg-names: Must include the following entries: "appl": Controller's application logic registers - "config": As per the definition in designware-pcie.txt + "config": As per the definition in snps,dw-pcie.yaml "atu_dma": iATU and DMA registers. This is where the iATU (internal Address Translation Unit) registers of the PCIe core are made available for SW access.Documentation/devicetree/bindings/pci/pci-armada8k.txt +1
-1@@ -1,7 +1,7 @@ * Marvell Armada 7K/8K PCIe interface This PCIe host controller is based on the Synopsys DesignWare PCIe IP -and thus inherits all the common properties defined in designware-pcie.txt. +and thus inherits all the common properties defined in snps,dw-pcie.yaml. Required properties: - compatible: "marvell,armada8k-pcie"Documentation/devicetree/bindings/pci/pcie-al.txt +1
-1@@ -2,7 +2,7 @@ Amazon's Annapurna Labs PCIe Host Controller is based on the Synopsys DesignWare PCI core. It inherits common properties defined in -Documentation/devicetree/bindings/pci/designware-pcie.txt. +Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. Properties of the host controller node that differ from it are:Documentation/devicetree/bindings/pci/qcom,pcie.txt +7
-7@@ -33,22 +33,22 @@ - device_type: Usage: required Value type: <string> - Definition: Should be "pci". As specified in designware-pcie.txt + Definition: Should be "pci". As specified in snps,dw-pcie.yaml - #address-cells: Usage: required Value type: <u32> - Definition: Should be 3. As specified in designware-pcie.txt + Definition: Should be 3. As specified in snps,dw-pcie.yaml - #size-cells: Usage: required Value type: <u32> - Definition: Should be 2. As specified in designware-pcie.txt + Definition: Should be 2. As specified in snps,dw-pcie.yaml - ranges: Usage: required Value type: <prop-encoded-array> - Definition: As specified in designware-pcie.txt + Definition: As specified in snps,dw-pcie.yaml - interrupts: Usage: required@@ -63,17 +63,17 @@ - #interrupt-cells: Usage: required Value type: <u32> - Definition: Should be 1. As specified in designware-pcie.txt + Definition: Should be 1. As specified in snps,dw-pcie.yaml - interrupt-map-mask: Usage: required Value type: <prop-encoded-array> - Definition: As specified in designware-pcie.txt + Definition: As specified in snps,dw-pcie.yaml - interrupt-map: Usage: required Value type: <prop-encoded-array> - Definition: As specified in designware-pcie.txt + Definition: As specified in snps,dw-pcie.yaml - clocks: Usage: requiredDocumentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml +1
-1@@ -13,7 +13,7 @@ maintainers: description: |+ Exynos5433 SoC PCIe host controller is based on the Synopsys DesignWare PCIe IP and thus inherits all the common properties defined in - designware-pcie.txt. + snps,dw-pcie.yaml. allOf: - $ref: /schemas/pci/pci-bus.yaml#Documentation/devicetree/bindings/pci/sifive,fu740-pcie.yaml +1
-1@@ -10,7 +10,7 @@ description: |+ SiFive FU740 PCIe host controller is based on the Synopsys DesignWare PCI core. It shares common features with the PCIe DesignWare core and inherits common properties defined in - Documentation/devicetree/bindings/pci/designware-pcie.txt. + Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. maintainers: - Paul Walmsley <[email protected]>Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +11
-0@@ -0,0 +1,135 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pci/snps,dw-pcie.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Synopsys DesignWare PCIe interface + +maintainers: + - Jingoo Han <[email protected]> + - Gustavo Pimentel <[email protected]>
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml line 21
Quoted 10 lines
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +10
-0+ +description: | + Synopsys DesignWare PCIe host controller + +properties: + compatible: + anyOf: + - {} + - items: + contains:
Drop 'contains'. 'items' schema applies to array elements whereas 'contains' applies to an array.
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml line 29
Quoted 8 lines
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +8
-0+ enum: + - snps,dw-pcie + - snps,dw-pcie-ep + + reg: + description: | + It should contain Data Bus Interface (dbi, dbi2) registers for all + versions.
Not all versions have dbi2.
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml line 32
Quoted 3 lines
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +3
-0+ For designware cores version < 4.80, contains the configuration + address space. For designware core version >= 4.80, + contains the configuration and ATU address space.
config space should always be present. For a brief time (around 2014), it was not required but has been since. For purposes of the schema, we can say always required.
ATU is optional in 4.80 or later.
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml line 40
Quoted 8 lines
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +8
-0+ minItems: 2 + maxItems: 4 + + reg-names: + minItems: 2 + maxItems: 4 + items: + contains:
Drop contains.
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml line 48
Quoted 8 lines
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +8
-0+ enum: [dbi, dbi2, config, atu, addr_space] + + num-lanes: + $ref: '/schemas/types.yaml#/definitions/uint32' + description: | + number of lanes to use (this property should be specified unless + the link is brought already up in BIOS) + maxItems: 1
Drop. Not an array. 'maximum: 16' is needed though pci-bus.yaml may cover that already.
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml line 52
Quoted 4 lines
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +4
-0+ + reset-gpio: + description: GPIO pin number of PERST# signal + maxItems: 1
deprecated: true
And add 'reset-gpios'
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml line 54
Quoted 2 lines
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +2
-0+ + "snps,enable-cdm-check":
Don't need quotes.
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml line 66
Quoted 12 lines
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +12
-0+ type: boolean + description: | + This is a boolean property and if present enables + automatic checking of CDM (Configuration Dependent Module) registers + for data corruption. CDM registers include standard PCIe configuration + space registers, Port Logic registers, DMA and iATU (internal Address + Translation Unit) registers. + + num-viewport: + description: | + number of view ports configured in hardware. If a platform + does not specify it, the driver assumes 2.
That's no longer true. This and the next 2 properties are now detected if not specified.
Quoted 14 lines
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +14
-0+ deprecated: true + + num-ib-windows: + description: number of inbound address translation windows + maxItems: 1 + deprecated: true + + num-ob-windows: + description: number of outbound address translation windows + maxItems: 1 + deprecated: true + + # The following are optional properties for EP mode +
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml line 90
Quoted 10 lines
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +10
-0+ max-functions: + $ref: /schemas/types.yaml#/definitions/uint32 + description: maximum number of functions that can be configured + +required: + - reg + - reg-names + - compatible + +additionalProperties: false
unevaluatedProperties: false
so that we can have child PCI devices...
Quoted 8 lines
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +8
-0+ +allOf: + - if: + properties: + compatible: + contains: + const: snps,dw-pcie + then:
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml line 108
Quoted 10 lines
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +10
-0+ allOf: + - $ref: /schemas/pci/pci-bus.yaml# + +patternProperties: + "pcie?_ep@[0-9a-f]+$": + type: object + properties: + compatible: + contains: + const: snps,dw-pcie-ep
This doesn't make sense. This is defining a child node of the DW controller with 'snps,dw-pcie-ep'.
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml line 115
Quoted 7 lines
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +7
-0+ + "pcie?@[0-9a-f]+$": + type: object + +examples: + - | + pcie: pcie@dfc00000 {
Drop unused labels.
Quoted 4 lines
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +4
-0+ compatible = "snps,dw-pcie"; + reg = <0xdfc00000 0x0001000>, /* IP registers */ + <0xd0000000 0x0002000>; /* Configuration space */ + reg-names = "dbi", "config";
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml line 129
Quoted 10 lines
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +10
-0+ #address-cells = <3>; + #size-cells = <2>; + device_type = "pci"; + ranges = <0x81000000 0 0x00000000 0xde000000 0 0x00010000>, + <0x82000000 0 0xd0400000 0xd0400000 0 0x0d000000>; + interrupts = <25>, <24>; + #interrupt-cells = <1>; + num-lanes = <1>; + }; + pcie_ep: pcie_ep@dfd00000 {
'pcie-ep' is preferred.
Quoted 6 lines
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml new file +6
-0+ compatible = "snps,dw-pcie-ep"; + reg = <0xdfc00000 0x0001000>, /* IP registers 1 */ + <0xdfc01000 0x0001000>, /* IP registers 2 */ + <0xd0000000 0x2000000>; /* Configuration space */ + reg-names = "dbi", "dbi2", "addr_space"; + };
Re: [PATCH v3 1/2] dt-bindings: PCI: designware-pcie.txt: convert it to yaml
Em Mon, 12 Jul 2021 11:45:04 -0600
Rob Herring <[email protected]> escreveu:
Quoted 38 lines · Mauro Carvalho Chehab
Quoted 9 lines
Convert the file to DT schema.
Signed-off-by Mauro Carvalho Chehab <[email protected]>Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml +0
-0Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml
Quoted 6 lines
Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml +4
-0+ reg: + description: | + It should contain Data Bus Interface (dbi, dbi2) registers for all + versions.Not all versions have dbi2.
Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml
Quoted 3 lines
Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml +3
-0+ For designware cores version < 4.80, contains the configuration + address space. For designware core version >= 4.80, + contains the configuration and ATU address space.config space should always be present. For a brief time (around 2014), it was not required but has been since. For purposes of the schema, we can say always required.
ATU is optional in 4.80 or later.
Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml
Quoted 8 lines
Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml +8
-0+ minItems: 2 + maxItems: 4 + + reg-names: + minItems: 2 + maxItems: 4 + items: + contains:
Quoted 3 lines
Drop contains.
Quoted 1 line
+ enum: [dbi, dbi2, config, atu,
addr_space]
This actually generated a warning:
/new_devel/v4l/hikey970/Documentation/devicetree/bindings/pci/intel-gw-pcie.example.dt.yaml: pcie@d0e00000: reg-names:2: 'app' is not one of ['dbi', 'dbi2', 'config', 'atu', 'addr_space']
I guess it needs to be changed to:
enum: [dbi, dbi2, config, atu, addr_space, app]
or intel-gw-pcie.yaml would require an extra change.
That's said, I didn't find any DTS using compatible = "intel,lgm-pcie", but looking at drivers/pci/controller/dwc/pcie-intel-gw.c, it seems that this is a mandatory register on such hardware.
Quoted 10 lines
Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml
Quoted 7 lines
Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml +7
-0+ + num-lanes: + $ref: '/schemas/types.yaml#/definitions/uint32' + description: | + number of lanes to use (this property should be specified unless + the link is brought already up in BIOS) + maxItems: 1Drop. Not an array. 'maximum: 16' is needed though
pci-bus.yamlmay cover that already.
It seems that num-lanes is not there at pci-bus.yaml - at least not at the version I'm using here (2021.7.dev1+ge5f58d415b1d).
Quoted 10 lines
Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml
Quoted 7 lines
Documentation/devicetree/bindings/pci/samsung,exynos-pcie.yaml +7
-0+patternProperties: + "pcie?_ep@[0-9a-f]+$": + type: object + properties: + compatible: + contains: + const: snps,dw-pcie-epThis doesn't make sense. This is defining a child node of the DW controller with 'snps,dw-pcie-ep'.
This was an attempt to silence those warnings:
From schema: /new_devel/v4l/hikey970/Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml
/new_devel/v4l/hikey970/Documentation/devicetree/bindings/pci/intel-gw-pcie.example.dt.yaml: pcie@d0e00000: '#address-cells', '#interrupt-cells', '#size-cells', 'bus-range', 'clocks', 'device_type', 'interrupt-map', 'interrupt-map-mask', 'linux,pci-domain', 'max-link-speed', 'phy-names', 'phys', 'ranges', 'reset-assert-ms', 'resets' do not match any of the regexes: 'pinctrl-[0-9]+'
From schema: /new_devel/v4l/hikey970/Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml
/new_devel/v4l/hikey970/Documentation/devicetree/bindings/pci/snps,dw-pcie.example.dt.yaml: pcie@dfc00000: '#address-cells', '#interrupt-cells', '#size-cells', 'device_type', 'interrupts', 'ranges' do not match any of the regexes: 'pinctrl-[0-9]+'
From schema: /new_devel/v4l/hikey970/Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml
Somehow, dtschema is only accepting 'pinctrl-[0-9]+' regex when parsing examples on this file. I've no idea how to fix it.
As a reference, this is how the examples are now declared:
<snip>
examples:
- |
pcie@dfc00000 {
compatible = "snps,dw-pcie";
reg = <0xdfc00000 0x0001000>, /* IP registers */
<0xd0000000 0x0002000>; /* Configuration space */
reg-names = "dbi", "config";
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
ranges = <0x81000000 0 0x00000000 0xde000000 0 0x00010000>,
<0x82000000 0 0xd0400000 0xd0400000 0 0x0d000000>;
interrupts = <25>, <24>;
#interrupt-cells = <1>;
num-lanes = <1>;
};
pcie-ep@dfd00000 {
compatible = "snps,dw-pcie-ep";
reg = <0xdfc00000 0x0001000>, /* IP registers 1 */
<0xdfc01000 0x0001000>, /* IP registers 2 */
<0xd0000000 0x2000000>; /* Configuration space */
reg-names = "dbi", "dbi2", "addr_space";
};</snip>
Thanks,
Mauro
PATCH v3 2/2 dt-bindings: PCI: kirin-pcie.txt: convert it to yaml
In reply to Mauro Carvalho ChehabConvert the file into a JSON description at the yaml format.
--- .../bindings/pci/hisilicon,kirin-pcie.yaml | 79 +++++++++++++++++++ .../devicetree/bindings/pci/kirin-pcie.txt | 41 ---------- MAINTAINERS | 2 +- 3 files changed, 80 insertions(+), 42 deletions(-) create mode 100644 Documentation/devicetree/bindings/pci/hisilicon,kirin-pcie.yaml delete mode 100644 Documentation/devicetree/bindings/pci/kirin-pcie.txt
Documentation/devicetree/bindings/pci/hisilicon,kirin-pcie.yaml new file +79 -0
@@ -0,0 +1,79 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pci/hisilicon,kirin-pcie.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: HiSilicon Kirin SoCs PCIe host DT description + +maintainers: + - Xiaowei Song <[email protected]> + - Binghui Wang <[email protected]> + +description: | + Kirin PCIe host controller is based on the Synopsys DesignWare PCI core. + It shares common functions with the PCIe DesignWare core driver and + inherits common properties defined in + Documentation/devicetree/bindings/pci/designware,pcie.yaml. + +allOf: + - $ref: /schemas/pci/pci-bus.yaml# + +properties: + compatible: + const: hisilicon,kirin960-pcie + const: hisilicon,kirin970-pcie + + reg: + description: | + Should contain rc_dbi, apb, config registers location and length. + + reg-names: + items: + - const: dbi # controller configuration registers + - const: apb # apb Ctrl register defined by Kirin + - const: config # PCIe configuration space registers + + "#address-cells": + const: 3 + + "#size-cells": + const: 2 + +required: + - compatible + - reg + - reg-names + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + + soc { + #address-cells = <2>; + #size-cells = <2>; + + pcie: pcie@f4000000 { + compatible = "hisilicon,kirin960-pcie"; + reg = <0x0 0xf4000000 0x0 0x1000>, + <0x0 0xff3fe000 0x0 0x1000>, + <0x0 0xf4000000 0 0x2000>; + reg-names = "dbi","apb", "config"; + bus-range = <0x0 0x1>; + #address-cells = <3>; + #size-cells = <2>; + device_type = "pci"; + ranges = <0x02000000 0x0 0x00000000 0x0 0xf5000000 0x0 0x2000000>; + num-lanes = <1>; + #interrupt-cells = <1>; + interrupts = <0 283 4>; + interrupt-names = "msi"; + interrupt-map-mask = <0xf800 0 0 7>; + interrupt-map = <0x0 0 0 1 &gic GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>, + <0x0 0 0 2 &gic GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>, + <0x0 0 0 3 &gic GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>, + <0x0 0 0 4 &gic GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>; + }; + };
Documentation/devicetree/bindings/pci/kirin-pcie.txt deleted +0 -41
41 lines not on this page · raw message
MAINTAINERS +1 -1
@@ -14369,7 +14369,7 @@ M: Xiaowei Song <[email protected]> M: Binghui Wang <[email protected]> L: [email protected] S: Maintained -F: Documentation/devicetree/bindings/pci/kirin-pcie.txt +F: Documentation/devicetree/bindings/pci/hisilicon,kirin-pcie.yaml F: drivers/pci/controller/dwc/pcie-kirin.c PCIE DRIVER FOR HISILICON STB
Signature · 1 line
2.31.1