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

title: Faraday Technology FTPCI100 PCI Host Bridge

maintainers:
  - Linus Walleij <linus.walleij@linaro.org>

description: |
    This PCI bridge is found inside that Cortina Systems Gemini SoC platform and
    is a generic IP block from Faraday Technology. It exists in two variants:
    plain and dual PCI. The plain version embeds a cascading interrupt controller
    into the host bridge. The dual version routes the interrupts to the host
    chips interrupt controller.
    The host controller appear on the PCI bus with vendor ID 0x159b (Faraday
    Technology) and product ID 0x4321.
    I/O space considerations:
    The plain variant has 128MiB of non-prefetchable memory space, whereas the
    "dual" variant has 64MiB. Take this into account when describing the ranges.

    Interrupt map considerations:

    The "dual" variant will get INT A, B, C, D from the system interrupt controller
    and should point to respective interrupt in that controller in its interrupt-map.

    The code which is the only documentation of how the Faraday PCI (the non-dual
    variant) interrupts assigns the default interrupt mapping/swizzling has
    typically been like this, doing the swizzling on the interrupt controller side
    rather than in the interconnect:

    interrupt-map-mask = <0xf800 0 0 7>;
    interrupt-map =
        <0x4800 0 0 1 &pci_intc 0>, /* Slot 9 */
        <0x4800 0 0 2 &pci_intc 1>,
        <0x4800 0 0 3 &pci_intc 2>,
        <0x4800 0 0 4 &pci_intc 3>,
        <0x5000 0 0 1 &pci_intc 1>, /* Slot 10 */
        <0x5000 0 0 2 &pci_intc 2>,
        <0x5000 0 0 3 &pci_intc 3>,
        <0x5000 0 0 4 &pci_intc 0>,
        <0x5800 0 0 1 &pci_intc 2>, /* Slot 11 */
        <0x5800 0 0 2 &pci_intc 3>,
        <0x5800 0 0 3 &pci_intc 0>,
        <0x5800 0 0 4 &pci_intc 1>,
        <0x6000 0 0 1 &pci_intc 3>, /* Slot 12 */
        <0x6000 0 0 2 &pci_intc 0>,
        <0x6000 0 0 3 &pci_intc 1>,
        <0x6000 0 0 4 &pci_intc 2>;

allOf:
  - $ref: /schemas/pci/pci-host-bridge.yaml#

properties:
  compatible:
    oneOf:
      - items:
          - const: cortina,gemini-pci
          - const: faraday,ftpci100
      - items:
          - const: cortina,gemini-pci-dual
          - const: faraday,ftpci100-dual
      - const: faraday,ftpci100
      - const: faraday,ftpci100-dual

  reg:
    maxItems: 1

  "#address-cells":
    const: 3

  "#interrupt-cells":
    const: 1

  ranges:
    minItems: 2

  dma-ranges:
    minItems: 3
    description: |
      three ranges for the inbound memory region. The ranges must
      be aligned to a 1MB boundary, and may be 1MB, 2MB, 4MB, 8MB, 16MB, 32MB, 64MB,
      128MB, 256MB, 512MB, 1GB or 2GB in size. The memory should be marked as
      pre-fetchable.

  clocks:
    items:
      - description: peripheral clock (PCLK)
      - description: PCI clock (PCICLK).
    description: |
      If these are not present, they are assumed to be
      hard-wired enabled and always on. The PCI clock will be 33 or 66 MHz.

  clock-names:
    items:
      - const: PCLK
      - const: PCICLK

  interrupt-controller:
    type: object

required:
  - reg
  - compatible
  - "#interrupt-cells"
  - interrupt-map-mask
  - interrupt-map
  - dma-ranges

if:
  properties:
    compatible:
      contains:
        const: faraday,ftpci100
then:
  required:
    - interrupt-controller

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    pci@50000000 {
      compatible = "cortina,gemini-pci", "faraday,ftpci100";
      reg = <0x50000000 0x100>;
      device_type = "pci";
      #address-cells = <3>;
      #size-cells = <2>;
      #interrupt-cells = <1>;

      bus-range = <0x00 0xff>;
      ranges = /* 1MiB I/O space 0x50000000-0x500fffff */
        <0x01000000 0 0          0x50000000 0 0x00100000>,
        /* 128MiB non-prefetchable memory 0x58000000-0x5fffffff */
        <0x02000000 0 0x58000000 0x58000000 0 0x08000000>;

      /* DMA ranges */
      dma-ranges =
        /* 128MiB at 0x00000000-0x07ffffff */
        <0x02000000 0 0x00000000 0x00000000 0 0x08000000>,
        /* 64MiB at 0x00000000-0x03ffffff */
        <0x02000000 0 0x00000000 0x00000000 0 0x04000000>,
        /* 64MiB at 0x00000000-0x03ffffff */
        <0x02000000 0 0x00000000 0x00000000 0 0x04000000>;

      interrupt-map-mask = <0xf800 0 0 7>;
      interrupt-map =
        <0x4800 0 0 1 &pci_intc 0>, /* Slot 9 */
        <0x4800 0 0 2 &pci_intc 1>,
        <0x4800 0 0 3 &pci_intc 2>,
        <0x4800 0 0 4 &pci_intc 3>,
        <0x5000 0 0 1 &pci_intc 1>, /* Slot 10 */
        <0x5000 0 0 2 &pci_intc 2>,
        <0x5000 0 0 3 &pci_intc 3>,
        <0x5000 0 0 4 &pci_intc 0>,
        <0x5800 0 0 1 &pci_intc 2>, /* Slot 11 */
        <0x5800 0 0 2 &pci_intc 3>,
        <0x5800 0 0 3 &pci_intc 0>,
        <0x5800 0 0 4 &pci_intc 1>,
        <0x6000 0 0 1 &pci_intc 3>, /* Slot 12 */
        <0x6000 0 0 2 &pci_intc 0>,
        <0x6000 0 0 3 &pci_intc 0>,
        <0x6000 0 0 4 &pci_intc 0>;
      pci_intc: interrupt-controller {
        interrupt-parent = <&intcon>;
        interrupt-controller;
        interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
        #address-cells = <0>;
        #interrupt-cells = <1>;
      };
    };
