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

title: Toshiba Visconti5 SoC PCIe Host Controller

maintainers:
  - Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>

description:
  Toshiba Visconti5 SoC PCIe host controller is based on the Synopsys DesignWare PCIe IP.

allOf:
  - $ref: /schemas/pci/snps,dw-pcie.yaml#

properties:
  compatible:
    const: toshiba,visconti-pcie

  reg:
    items:
      - description: Data Bus Interface (DBI) registers.
      - description: PCIe configuration space region.
      - description: Visconti specific additional registers.
      - description: Visconti specific SMU registers
      - description: Visconti specific memory protection unit registers (MPU)

  reg-names:
    items:
      - const: dbi
      - const: config
      - const: ulreg
      - const: smu
      - const: mpu

  interrupts:
    maxItems: 2

  clocks:
    items:
      - description: PCIe reference clock
      - description: PCIe system clock
      - description: Auxiliary clock

  clock-names:
    items:
      - const: ref
      - const: core
      - const: aux

  num-lanes:
    const: 2

required:
  - reg
  - reg-names
  - interrupts
  - "#interrupt-cells"
  - interrupt-map
  - interrupt-map-mask
  - num-lanes
  - clocks
  - clock-names
  - max-link-speed

unevaluatedProperties: false

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

    soc {
        #address-cells = <2>;
        #size-cells = <2>;

        pcie: pcie@28400000 {
            compatible = "toshiba,visconti-pcie";
            reg = <0x0 0x28400000 0x0 0x00400000>,
                  <0x0 0x70000000 0x0 0x10000000>,
                  <0x0 0x28050000 0x0 0x00010000>,
                  <0x0 0x24200000 0x0 0x00002000>,
                  <0x0 0x24162000 0x0 0x00001000>;
            reg-names  = "dbi", "config", "ulreg", "smu", "mpu";
            device_type = "pci";
            bus-range = <0x00 0xff>;
            num-lanes = <2>;
            num-viewport = <8>;

            #address-cells = <3>;
            #size-cells = <2>;
            #interrupt-cells = <1>;
            ranges = <0x81000000 0 0x40000000 0 0x40000000 0 0x00010000>,
                     <0x82000000 0 0x50000000 0 0x50000000 0 0x20000000>;
            interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
            interrupt-names = "msi", "intr";
            interrupt-map-mask = <0 0 0 7>;
            interrupt-map =
                <0 0 0 1 &gic GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH
                 0 0 0 2 &gic GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH
                 0 0 0 3 &gic GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH
                 0 0 0 4 &gic GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
            clocks = <&extclk100mhz>, <&clk600mhz>, <&clk25mhz>;
            clock-names = "ref", "core", "aux";
            max-link-speed = <2>;
        };
    };
...
