Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: PCI: Convert marvell,armada8k-pcie to schema

Convert the marvell,armada8k-pcie binding to DT schema. The binding
uses different names for reg, clocks, and phys which have to be added
to the common Synopsys DWC binding.

The "marvell,reset-gpio" property was not documented. Mark it deprecated
as the "reset-gpios" property can be used instead. The "msi-parent"
property was also not documented.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://patch.msgid.link/20250414214135.1680076-1-robh@kernel.org

authored by

Rob Herring (Arm) and committed by
Manivannan Sadhasivam
096d05bf 0c983d35

+106 -51
+100
Documentation/devicetree/bindings/pci/marvell,armada8k-pcie.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pci/marvell,armada8k-pcie.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Marvell Armada 7K/8K PCIe interface 8 + 9 + maintainers: 10 + - Thomas Petazzoni <thomas.petazzoni@bootlin.com> 11 + 12 + description: 13 + This PCIe host controller is based on the Synopsys DesignWare PCIe IP. 14 + 15 + select: 16 + properties: 17 + compatible: 18 + contains: 19 + enum: 20 + - marvell,armada8k-pcie 21 + required: 22 + - compatible 23 + 24 + allOf: 25 + - $ref: snps,dw-pcie.yaml# 26 + 27 + properties: 28 + compatible: 29 + items: 30 + - enum: 31 + - marvell,armada8k-pcie 32 + - const: snps,dw-pcie 33 + 34 + reg: 35 + maxItems: 2 36 + 37 + reg-names: 38 + items: 39 + - const: ctrl 40 + - const: config 41 + 42 + clocks: 43 + minItems: 1 44 + maxItems: 2 45 + 46 + clock-names: 47 + items: 48 + - const: core 49 + - const: reg 50 + 51 + interrupts: 52 + maxItems: 1 53 + 54 + msi-parent: 55 + maxItems: 1 56 + 57 + phys: 58 + minItems: 1 59 + maxItems: 4 60 + 61 + phy-names: 62 + minItems: 1 63 + maxItems: 4 64 + 65 + marvell,reset-gpio: 66 + maxItems: 1 67 + deprecated: true 68 + 69 + required: 70 + - interrupt-map 71 + - clocks 72 + - msi-parent 73 + 74 + unevaluatedProperties: false 75 + 76 + examples: 77 + - | 78 + #include <dt-bindings/interrupt-controller/arm-gic.h> 79 + #include <dt-bindings/interrupt-controller/irq.h> 80 + 81 + pcie@f2600000 { 82 + compatible = "marvell,armada8k-pcie", "snps,dw-pcie"; 83 + reg = <0xf2600000 0x10000>, <0xf6f00000 0x80000>; 84 + reg-names = "ctrl", "config"; 85 + #address-cells = <3>; 86 + #size-cells = <2>; 87 + #interrupt-cells = <1>; 88 + device_type = "pci"; 89 + dma-coherent; 90 + msi-parent = <&gic_v2m0>; 91 + 92 + ranges = <0x81000000 0 0xf9000000 0xf9000000 0 0x10000>, /* downstream I/O */ 93 + <0x82000000 0 0xf6000000 0xf6000000 0 0xf00000>; /* non-prefetchable memory */ 94 + interrupt-map-mask = <0 0 0 0>; 95 + interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 96 + interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 97 + num-lanes = <1>; 98 + clocks = <&cpm_syscon0 1 13>; 99 + }; 100 + ...
-48
Documentation/devicetree/bindings/pci/pci-armada8k.txt
··· 1 - * Marvell Armada 7K/8K PCIe interface 2 - 3 - This PCIe host controller is based on the Synopsys DesignWare PCIe IP 4 - and thus inherits all the common properties defined in snps,dw-pcie.yaml. 5 - 6 - Required properties: 7 - - compatible: "marvell,armada8k-pcie" 8 - - reg: must contain two register regions 9 - - the control register region 10 - - the config space region 11 - - reg-names: 12 - - "ctrl" for the control register region 13 - - "config" for the config space region 14 - - interrupts: Interrupt specifier for the PCIe controller 15 - - clocks: reference to the PCIe controller clocks 16 - - clock-names: mandatory if there is a second clock, in this case the 17 - name must be "core" for the first clock and "reg" for the second 18 - one 19 - 20 - Optional properties: 21 - - phys: phandle(s) to PHY node(s) following the generic PHY bindings. 22 - Either 1, 2 or 4 PHYs might be needed depending on the number of 23 - PCIe lanes. 24 - - phy-names: names of the PHYs corresponding to the number of lanes. 25 - Must be "cp0-pcie0-x4-lane0-phy", "cp0-pcie0-x4-lane1-phy" for 26 - 2 PHYs. 27 - 28 - Example: 29 - 30 - pcie@f2600000 { 31 - compatible = "marvell,armada8k-pcie", "snps,dw-pcie"; 32 - reg = <0 0xf2600000 0 0x10000>, <0 0xf6f00000 0 0x80000>; 33 - reg-names = "ctrl", "config"; 34 - #address-cells = <3>; 35 - #size-cells = <2>; 36 - #interrupt-cells = <1>; 37 - device_type = "pci"; 38 - dma-coherent; 39 - 40 - bus-range = <0 0xff>; 41 - ranges = <0x81000000 0 0xf9000000 0 0xf9000000 0 0x10000 /* downstream I/O */ 42 - 0x82000000 0 0xf6000000 0 0xf6000000 0 0xf00000>; /* non-prefetchable memory */ 43 - interrupt-map-mask = <0 0 0 0>; 44 - interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 45 - interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 46 - num-lanes = <1>; 47 - clocks = <&cpm_syscon0 1 13>; 48 - };
+2 -1
Documentation/devicetree/bindings/pci/snps,dw-pcie-common.yaml
··· 115 115 above for new bindings. 116 116 oneOf: 117 117 - description: See native 'dbi' clock for details 118 - enum: [ pcie, pcie_apb_sys, aclk_dbi ] 118 + enum: [ pcie, pcie_apb_sys, aclk_dbi, reg ] 119 119 - description: See native 'mstr/slv' clock for details 120 120 enum: [ pcie_bus, pcie_inbound_axi, pcie_aclk, aclk_mst, aclk_slv ] 121 121 - description: See native 'pipe' clock for details ··· 201 201 oneOf: 202 202 - pattern: '^pcie(-?phy[0-9]*)?$' 203 203 - pattern: '^p2u-[0-7]$' 204 + - pattern: '^cp[01]-pcie[0-2]-x[124](-lane[0-3])?-phy$' # marvell,armada8k-pcie 204 205 205 206 reset-gpio: 206 207 deprecated: true
+3 -1
Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml
··· 105 105 Vendor-specific CSR names. Consider using the generic names above 106 106 for new bindings. 107 107 oneOf: 108 + - description: See native 'dbi' CSR region for details. 109 + enum: [ ctrl ] 108 110 - description: See native 'elbi/app' CSR region for details. 109 111 enum: [ apb, mgmt, link, ulreg, appl ] 110 112 - description: See native 'atu' CSR region for details. ··· 119 117 const: slcr 120 118 allOf: 121 119 - contains: 122 - const: dbi 120 + enum: [ dbi, ctrl ] 123 121 - contains: 124 122 const: config 125 123
+1 -1
MAINTAINERS
··· 18411 18411 L: linux-pci@vger.kernel.org 18412 18412 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 18413 18413 S: Maintained 18414 - F: Documentation/devicetree/bindings/pci/pci-armada8k.txt 18414 + F: Documentation/devicetree/bindings/pci/marvell,armada8k-pcie.yaml 18415 18415 F: drivers/pci/controller/dwc/pcie-armada8k.c 18416 18416 18417 18417 PCI DRIVER FOR CADENCE PCIE IP