162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/pci/toshiba,visconti-pcie.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Toshiba Visconti5 SoC PCIe Host Controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription:
1362306a36Sopenharmony_ci  Toshiba Visconti5 SoC PCIe host controller is based on the Synopsys DesignWare PCIe IP.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciallOf:
1662306a36Sopenharmony_ci  - $ref: /schemas/pci/snps,dw-pcie.yaml#
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciproperties:
1962306a36Sopenharmony_ci  compatible:
2062306a36Sopenharmony_ci    const: toshiba,visconti-pcie
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci  reg:
2362306a36Sopenharmony_ci    items:
2462306a36Sopenharmony_ci      - description: Data Bus Interface (DBI) registers.
2562306a36Sopenharmony_ci      - description: PCIe configuration space region.
2662306a36Sopenharmony_ci      - description: Visconti specific additional registers.
2762306a36Sopenharmony_ci      - description: Visconti specific SMU registers
2862306a36Sopenharmony_ci      - description: Visconti specific memory protection unit registers (MPU)
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  reg-names:
3162306a36Sopenharmony_ci    items:
3262306a36Sopenharmony_ci      - const: dbi
3362306a36Sopenharmony_ci      - const: config
3462306a36Sopenharmony_ci      - const: ulreg
3562306a36Sopenharmony_ci      - const: smu
3662306a36Sopenharmony_ci      - const: mpu
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci  interrupts:
3962306a36Sopenharmony_ci    maxItems: 2
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci  clocks:
4262306a36Sopenharmony_ci    items:
4362306a36Sopenharmony_ci      - description: PCIe reference clock
4462306a36Sopenharmony_ci      - description: PCIe system clock
4562306a36Sopenharmony_ci      - description: Auxiliary clock
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci  clock-names:
4862306a36Sopenharmony_ci    items:
4962306a36Sopenharmony_ci      - const: ref
5062306a36Sopenharmony_ci      - const: core
5162306a36Sopenharmony_ci      - const: aux
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci  num-lanes:
5462306a36Sopenharmony_ci    const: 2
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_cirequired:
5762306a36Sopenharmony_ci  - reg
5862306a36Sopenharmony_ci  - reg-names
5962306a36Sopenharmony_ci  - interrupts
6062306a36Sopenharmony_ci  - "#interrupt-cells"
6162306a36Sopenharmony_ci  - interrupt-map
6262306a36Sopenharmony_ci  - interrupt-map-mask
6362306a36Sopenharmony_ci  - num-lanes
6462306a36Sopenharmony_ci  - clocks
6562306a36Sopenharmony_ci  - clock-names
6662306a36Sopenharmony_ci  - max-link-speed
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ciunevaluatedProperties: false
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ciexamples:
7162306a36Sopenharmony_ci  - |
7262306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
7362306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci    soc {
7662306a36Sopenharmony_ci        #address-cells = <2>;
7762306a36Sopenharmony_ci        #size-cells = <2>;
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci        pcie: pcie@28400000 {
8062306a36Sopenharmony_ci            compatible = "toshiba,visconti-pcie";
8162306a36Sopenharmony_ci            reg = <0x0 0x28400000 0x0 0x00400000>,
8262306a36Sopenharmony_ci                  <0x0 0x70000000 0x0 0x10000000>,
8362306a36Sopenharmony_ci                  <0x0 0x28050000 0x0 0x00010000>,
8462306a36Sopenharmony_ci                  <0x0 0x24200000 0x0 0x00002000>,
8562306a36Sopenharmony_ci                  <0x0 0x24162000 0x0 0x00001000>;
8662306a36Sopenharmony_ci            reg-names  = "dbi", "config", "ulreg", "smu", "mpu";
8762306a36Sopenharmony_ci            device_type = "pci";
8862306a36Sopenharmony_ci            bus-range = <0x00 0xff>;
8962306a36Sopenharmony_ci            num-lanes = <2>;
9062306a36Sopenharmony_ci            num-viewport = <8>;
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci            #address-cells = <3>;
9362306a36Sopenharmony_ci            #size-cells = <2>;
9462306a36Sopenharmony_ci            #interrupt-cells = <1>;
9562306a36Sopenharmony_ci            ranges = <0x81000000 0 0x40000000 0 0x40000000 0 0x00010000>,
9662306a36Sopenharmony_ci                     <0x82000000 0 0x50000000 0 0x50000000 0 0x20000000>;
9762306a36Sopenharmony_ci            interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
9862306a36Sopenharmony_ci                         <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
9962306a36Sopenharmony_ci            interrupt-names = "msi", "intr";
10062306a36Sopenharmony_ci            interrupt-map-mask = <0 0 0 7>;
10162306a36Sopenharmony_ci            interrupt-map =
10262306a36Sopenharmony_ci                <0 0 0 1 &gic GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH
10362306a36Sopenharmony_ci                 0 0 0 2 &gic GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH
10462306a36Sopenharmony_ci                 0 0 0 3 &gic GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH
10562306a36Sopenharmony_ci                 0 0 0 4 &gic GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
10662306a36Sopenharmony_ci            clocks = <&extclk100mhz>, <&clk600mhz>, <&clk25mhz>;
10762306a36Sopenharmony_ci            clock-names = "ref", "core", "aux";
10862306a36Sopenharmony_ci            max-link-speed = <2>;
10962306a36Sopenharmony_ci        };
11062306a36Sopenharmony_ci    };
11162306a36Sopenharmony_ci...
112