# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pci/brcm,iproc-pcie.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom iProc PCIe controller with the platform bus interface

maintainers:
  - Ray Jui <ray.jui@broadcom.com>
  - Scott Branden <scott.branden@broadcom.com>

allOf:
  - $ref: /schemas/pci/pci-bus.yaml#

properties:
  compatible:
    items:
      - enum:
          # for the first generation of PAXB based controller, used in SoCs
          # including NSP, Cygnus, NS2, and Pegasus
          - brcm,iproc-pcie
          # for the second generation of PAXB-based controllers, used in
          # Stingray
          - brcm,iproc-pcie-paxb-v2
          # For the first generation of PAXC based controller, used in NS2
          - brcm,iproc-pcie-paxc
          # For the second generation of PAXC based controller, used in Stingray
          - brcm,iproc-pcie-paxc-v2

  reg:
    maxItems: 1
    description: >
       Base address and length of the PCIe controller I/O register space

  ranges:
    minItems: 1
    maxItems: 2
    description: >
      Ranges for the PCI memory and I/O regions

  phys:
    maxItems: 1

  phy-names:
    items:
      - const: pcie-phy

  dma-coherent: true

  brcm,pcie-ob:
    type: boolean
    description: >
      Some iProc SoCs do not have the outbound address mapping done by the
      ASIC after power on reset. In this case, SW needs to configure it

  brcm,pcie-ob-axi-offset:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: >
       The offset from the AXI address to the internal address used by the
       iProc PCIe core (not the PCIe address)

  msi:
    type: object
    $ref: /schemas/interrupt-controller/msi-controller.yaml#
    unevaluatedProperties: false

    properties:
      compatible:
        items:
          - const: brcm,iproc-msi

      interrupts:
        maxItems: 4

      brcm,pcie-msi-inten:
        type: boolean
        description:
          Needs to be present for some older iProc platforms that require the
          interrupt enable registers to be set explicitly to enable MSI

  msi-parent: true

dependencies:
  brcm,pcie-ob-axi-offset: ["brcm,pcie-ob"]
  brcm,pcie-msi-inten: [msi-controller]

required:
  - compatible
  - reg
  - ranges

if:
  properties:
    compatible:
      contains:
        enum:
          - brcm,iproc-pcie
then:
  required:
    - interrupt-map
    - interrupt-map-mask

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    gic: interrupt-controller {
        interrupt-controller;
        #interrupt-cells = <3>;
    };

    pcie@18012000 {
        compatible = "brcm,iproc-pcie";
        reg = <0x18012000 0x1000>;

        #interrupt-cells = <1>;
        interrupt-map-mask = <0 0 0 0>;
        interrupt-map = <0 0 0 0 &gic GIC_SPI 100 IRQ_TYPE_NONE>;

        linux,pci-domain = <0>;

        bus-range = <0x00 0xff>;

        #address-cells = <3>;
        #size-cells = <2>;
        device_type = "pci";
        ranges = <0x81000000 0          0 0x28000000 0 0x00010000>,
                 <0x82000000 0 0x20000000 0x20000000 0 0x04000000>;

        phys = <&phy 0 5>;
        phy-names = "pcie-phy";

        brcm,pcie-ob;
        brcm,pcie-ob-axi-offset = <0x00000000>;

        msi-parent = <&msi0>;

        /* iProc event queue based MSI */
        msi0: msi {
            compatible = "brcm,iproc-msi";
            msi-controller;
            interrupt-parent = <&gic>;
            interrupts = <GIC_SPI 96 IRQ_TYPE_NONE>,
                    <GIC_SPI 97 IRQ_TYPE_NONE>,
                    <GIC_SPI 98 IRQ_TYPE_NONE>,
                    <GIC_SPI 99 IRQ_TYPE_NONE>;
        };
    };
  - |
    pcie@18013000 {
        compatible = "brcm,iproc-pcie";
        reg = <0x18013000 0x1000>;

        #interrupt-cells = <1>;
        interrupt-map-mask = <0 0 0 0>;
        interrupt-map = <0 0 0 0 &gic GIC_SPI 106 IRQ_TYPE_NONE>;

        linux,pci-domain = <1>;

        bus-range = <0x00 0xff>;

        #address-cells = <3>;
        #size-cells = <2>;
        device_type = "pci";
        ranges = <0x81000000 0          0 0x48000000 0 0x00010000>,
                 <0x82000000 0 0x40000000 0x40000000 0 0x04000000>;

        phys = <&phy 1 6>;
        phy-names = "pcie-phy";
    };
