1905b986dSFlorian Fainelli# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2905b986dSFlorian Fainelli%YAML 1.2 3905b986dSFlorian Fainelli--- 4905b986dSFlorian Fainelli$id: http://devicetree.org/schemas/pci/brcm,iproc-pcie.yaml# 5905b986dSFlorian Fainelli$schema: http://devicetree.org/meta-schemas/core.yaml# 6905b986dSFlorian Fainelli 7905b986dSFlorian Fainellititle: Broadcom iProc PCIe controller with the platform bus interface 8905b986dSFlorian Fainelli 9905b986dSFlorian Fainellimaintainers: 10905b986dSFlorian Fainelli - Ray Jui <ray.jui@broadcom.com> 11905b986dSFlorian Fainelli - Scott Branden <scott.branden@broadcom.com> 12905b986dSFlorian Fainelli 13905b986dSFlorian FainelliallOf: 14*5db62b7dSKrzysztof Kozlowski - $ref: /schemas/pci/pci-host-bridge.yaml# 15905b986dSFlorian Fainelli 16905b986dSFlorian Fainelliproperties: 17905b986dSFlorian Fainelli compatible: 18905b986dSFlorian Fainelli items: 19905b986dSFlorian Fainelli - enum: 20905b986dSFlorian Fainelli # for the first generation of PAXB based controller, used in SoCs 21905b986dSFlorian Fainelli # including NSP, Cygnus, NS2, and Pegasus 22905b986dSFlorian Fainelli - brcm,iproc-pcie 23905b986dSFlorian Fainelli # for the second generation of PAXB-based controllers, used in 24905b986dSFlorian Fainelli # Stingray 25905b986dSFlorian Fainelli - brcm,iproc-pcie-paxb-v2 26905b986dSFlorian Fainelli # For the first generation of PAXC based controller, used in NS2 27905b986dSFlorian Fainelli - brcm,iproc-pcie-paxc 28905b986dSFlorian Fainelli # For the second generation of PAXC based controller, used in Stingray 29905b986dSFlorian Fainelli - brcm,iproc-pcie-paxc-v2 30905b986dSFlorian Fainelli 31905b986dSFlorian Fainelli reg: 32905b986dSFlorian Fainelli maxItems: 1 33905b986dSFlorian Fainelli description: > 34905b986dSFlorian Fainelli Base address and length of the PCIe controller I/O register space 35905b986dSFlorian Fainelli 36905b986dSFlorian Fainelli ranges: 37905b986dSFlorian Fainelli minItems: 1 38905b986dSFlorian Fainelli maxItems: 2 39905b986dSFlorian Fainelli description: > 40905b986dSFlorian Fainelli Ranges for the PCI memory and I/O regions 41905b986dSFlorian Fainelli 42905b986dSFlorian Fainelli phys: 43905b986dSFlorian Fainelli maxItems: 1 44905b986dSFlorian Fainelli 45905b986dSFlorian Fainelli phy-names: 46905b986dSFlorian Fainelli items: 47905b986dSFlorian Fainelli - const: pcie-phy 48905b986dSFlorian Fainelli 49905b986dSFlorian Fainelli dma-coherent: true 50905b986dSFlorian Fainelli 51905b986dSFlorian Fainelli brcm,pcie-ob: 52905b986dSFlorian Fainelli type: boolean 53905b986dSFlorian Fainelli description: > 54905b986dSFlorian Fainelli Some iProc SoCs do not have the outbound address mapping done by the 55905b986dSFlorian Fainelli ASIC after power on reset. In this case, SW needs to configure it 56905b986dSFlorian Fainelli 57905b986dSFlorian Fainelli brcm,pcie-ob-axi-offset: 58905b986dSFlorian Fainelli $ref: /schemas/types.yaml#/definitions/uint32 59905b986dSFlorian Fainelli description: > 60905b986dSFlorian Fainelli The offset from the AXI address to the internal address used by the 61905b986dSFlorian Fainelli iProc PCIe core (not the PCIe address) 62905b986dSFlorian Fainelli 63905b986dSFlorian Fainelli msi: 64905b986dSFlorian Fainelli type: object 65d6e201f8SRob Herring $ref: /schemas/interrupt-controller/msi-controller.yaml# 66d6e201f8SRob Herring unevaluatedProperties: false 67d6e201f8SRob Herring 68905b986dSFlorian Fainelli properties: 69905b986dSFlorian Fainelli compatible: 70905b986dSFlorian Fainelli items: 71905b986dSFlorian Fainelli - const: brcm,iproc-msi 72905b986dSFlorian Fainelli 73d6e201f8SRob Herring interrupts: 74d6e201f8SRob Herring maxItems: 4 75905b986dSFlorian Fainelli 76905b986dSFlorian Fainelli brcm,pcie-msi-inten: 77905b986dSFlorian Fainelli type: boolean 78d6e201f8SRob Herring description: 79905b986dSFlorian Fainelli Needs to be present for some older iProc platforms that require the 80905b986dSFlorian Fainelli interrupt enable registers to be set explicitly to enable MSI 81905b986dSFlorian Fainelli 82d6e201f8SRob Herring msi-parent: true 83d6e201f8SRob Herring 84905b986dSFlorian Fainellidependencies: 85905b986dSFlorian Fainelli brcm,pcie-ob-axi-offset: ["brcm,pcie-ob"] 86905b986dSFlorian Fainelli brcm,pcie-msi-inten: [msi-controller] 87905b986dSFlorian Fainelli 88905b986dSFlorian Fainellirequired: 89905b986dSFlorian Fainelli - compatible 90905b986dSFlorian Fainelli - reg 91905b986dSFlorian Fainelli - ranges 92905b986dSFlorian Fainelli 93905b986dSFlorian Fainelliif: 94905b986dSFlorian Fainelli properties: 95905b986dSFlorian Fainelli compatible: 96905b986dSFlorian Fainelli contains: 97905b986dSFlorian Fainelli enum: 98905b986dSFlorian Fainelli - brcm,iproc-pcie 99905b986dSFlorian Fainellithen: 100905b986dSFlorian Fainelli required: 101905b986dSFlorian Fainelli - interrupt-map 102905b986dSFlorian Fainelli - interrupt-map-mask 103905b986dSFlorian Fainelli 104905b986dSFlorian FainelliunevaluatedProperties: false 105905b986dSFlorian Fainelli 106905b986dSFlorian Fainelliexamples: 107905b986dSFlorian Fainelli - | 108905b986dSFlorian Fainelli #include <dt-bindings/interrupt-controller/arm-gic.h> 109905b986dSFlorian Fainelli 110d6e201f8SRob Herring gic: interrupt-controller { 111d6e201f8SRob Herring interrupt-controller; 112d6e201f8SRob Herring #interrupt-cells = <3>; 113d6e201f8SRob Herring }; 114d6e201f8SRob Herring 1154ef718d6SRob Herring pcie@18012000 { 116905b986dSFlorian Fainelli compatible = "brcm,iproc-pcie"; 117905b986dSFlorian Fainelli reg = <0x18012000 0x1000>; 118905b986dSFlorian Fainelli 119905b986dSFlorian Fainelli #interrupt-cells = <1>; 120905b986dSFlorian Fainelli interrupt-map-mask = <0 0 0 0>; 121905b986dSFlorian Fainelli interrupt-map = <0 0 0 0 &gic GIC_SPI 100 IRQ_TYPE_NONE>; 122905b986dSFlorian Fainelli 123905b986dSFlorian Fainelli linux,pci-domain = <0>; 124905b986dSFlorian Fainelli 125905b986dSFlorian Fainelli bus-range = <0x00 0xff>; 126905b986dSFlorian Fainelli 127905b986dSFlorian Fainelli #address-cells = <3>; 128905b986dSFlorian Fainelli #size-cells = <2>; 129905b986dSFlorian Fainelli device_type = "pci"; 130905b986dSFlorian Fainelli ranges = <0x81000000 0 0 0x28000000 0 0x00010000>, 131905b986dSFlorian Fainelli <0x82000000 0 0x20000000 0x20000000 0 0x04000000>; 132905b986dSFlorian Fainelli 133905b986dSFlorian Fainelli phys = <&phy 0 5>; 134905b986dSFlorian Fainelli phy-names = "pcie-phy"; 135905b986dSFlorian Fainelli 136905b986dSFlorian Fainelli brcm,pcie-ob; 137905b986dSFlorian Fainelli brcm,pcie-ob-axi-offset = <0x00000000>; 138905b986dSFlorian Fainelli 139905b986dSFlorian Fainelli msi-parent = <&msi0>; 140905b986dSFlorian Fainelli 141905b986dSFlorian Fainelli /* iProc event queue based MSI */ 142905b986dSFlorian Fainelli msi0: msi { 143905b986dSFlorian Fainelli compatible = "brcm,iproc-msi"; 144905b986dSFlorian Fainelli msi-controller; 145905b986dSFlorian Fainelli interrupt-parent = <&gic>; 146905b986dSFlorian Fainelli interrupts = <GIC_SPI 96 IRQ_TYPE_NONE>, 147905b986dSFlorian Fainelli <GIC_SPI 97 IRQ_TYPE_NONE>, 148905b986dSFlorian Fainelli <GIC_SPI 98 IRQ_TYPE_NONE>, 149905b986dSFlorian Fainelli <GIC_SPI 99 IRQ_TYPE_NONE>; 150905b986dSFlorian Fainelli }; 151905b986dSFlorian Fainelli }; 1524ef718d6SRob Herring - | 1534ef718d6SRob Herring pcie@18013000 { 154905b986dSFlorian Fainelli compatible = "brcm,iproc-pcie"; 155905b986dSFlorian Fainelli reg = <0x18013000 0x1000>; 156905b986dSFlorian Fainelli 157905b986dSFlorian Fainelli #interrupt-cells = <1>; 158905b986dSFlorian Fainelli interrupt-map-mask = <0 0 0 0>; 159905b986dSFlorian Fainelli interrupt-map = <0 0 0 0 &gic GIC_SPI 106 IRQ_TYPE_NONE>; 160905b986dSFlorian Fainelli 161905b986dSFlorian Fainelli linux,pci-domain = <1>; 162905b986dSFlorian Fainelli 163905b986dSFlorian Fainelli bus-range = <0x00 0xff>; 164905b986dSFlorian Fainelli 165905b986dSFlorian Fainelli #address-cells = <3>; 166905b986dSFlorian Fainelli #size-cells = <2>; 167905b986dSFlorian Fainelli device_type = "pci"; 168905b986dSFlorian Fainelli ranges = <0x81000000 0 0 0x48000000 0 0x00010000>, 169905b986dSFlorian Fainelli <0x82000000 0 0x40000000 0x40000000 0 0x04000000>; 170905b986dSFlorian Fainelli 171905b986dSFlorian Fainelli phys = <&phy 1 6>; 172905b986dSFlorian Fainelli phy-names = "pcie-phy"; 173905b986dSFlorian Fainelli }; 174