162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci# Copyright (C) 2020 Renesas Electronics Corp.
362306a36Sopenharmony_ci%YAML 1.2
462306a36Sopenharmony_ci---
562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/pci/rcar-pci-host.yaml#
662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
762306a36Sopenharmony_ci
862306a36Sopenharmony_cititle: Renesas R-Car PCIe Host
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cimaintainers:
1162306a36Sopenharmony_ci  - Marek Vasut <marek.vasut+renesas@gmail.com>
1262306a36Sopenharmony_ci  - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciallOf:
1562306a36Sopenharmony_ci  - $ref: pci-bus.yaml#
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciproperties:
1862306a36Sopenharmony_ci  compatible:
1962306a36Sopenharmony_ci    oneOf:
2062306a36Sopenharmony_ci      - const: renesas,pcie-r8a7779       # R-Car H1
2162306a36Sopenharmony_ci      - items:
2262306a36Sopenharmony_ci          - enum:
2362306a36Sopenharmony_ci              - renesas,pcie-r8a7742      # RZ/G1H
2462306a36Sopenharmony_ci              - renesas,pcie-r8a7743      # RZ/G1M
2562306a36Sopenharmony_ci              - renesas,pcie-r8a7744      # RZ/G1N
2662306a36Sopenharmony_ci              - renesas,pcie-r8a7790      # R-Car H2
2762306a36Sopenharmony_ci              - renesas,pcie-r8a7791      # R-Car M2-W
2862306a36Sopenharmony_ci              - renesas,pcie-r8a7793      # R-Car M2-N
2962306a36Sopenharmony_ci          - const: renesas,pcie-rcar-gen2 # R-Car Gen2 and RZ/G1
3062306a36Sopenharmony_ci      - items:
3162306a36Sopenharmony_ci          - enum:
3262306a36Sopenharmony_ci              - renesas,pcie-r8a774a1     # RZ/G2M
3362306a36Sopenharmony_ci              - renesas,pcie-r8a774b1     # RZ/G2N
3462306a36Sopenharmony_ci              - renesas,pcie-r8a774c0     # RZ/G2E
3562306a36Sopenharmony_ci              - renesas,pcie-r8a774e1     # RZ/G2H
3662306a36Sopenharmony_ci              - renesas,pcie-r8a7795      # R-Car H3
3762306a36Sopenharmony_ci              - renesas,pcie-r8a7796      # R-Car M3-W
3862306a36Sopenharmony_ci              - renesas,pcie-r8a77961     # R-Car M3-W+
3962306a36Sopenharmony_ci              - renesas,pcie-r8a77965     # R-Car M3-N
4062306a36Sopenharmony_ci              - renesas,pcie-r8a77980     # R-Car V3H
4162306a36Sopenharmony_ci              - renesas,pcie-r8a77990     # R-Car E3
4262306a36Sopenharmony_ci          - const: renesas,pcie-rcar-gen3 # R-Car Gen3 and RZ/G2
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci  reg:
4562306a36Sopenharmony_ci    maxItems: 1
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci  interrupts:
4862306a36Sopenharmony_ci    minItems: 3
4962306a36Sopenharmony_ci    maxItems: 3
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci  clocks:
5262306a36Sopenharmony_ci    maxItems: 2
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci  clock-names:
5562306a36Sopenharmony_ci    items:
5662306a36Sopenharmony_ci      - const: pcie
5762306a36Sopenharmony_ci      - const: pcie_bus
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci  power-domains:
6062306a36Sopenharmony_ci    maxItems: 1
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci  resets:
6362306a36Sopenharmony_ci    maxItems: 1
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci  phys:
6662306a36Sopenharmony_ci    maxItems: 1
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci  phy-names:
6962306a36Sopenharmony_ci    const: pcie
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_cirequired:
7262306a36Sopenharmony_ci  - compatible
7362306a36Sopenharmony_ci  - reg
7462306a36Sopenharmony_ci  - interrupts
7562306a36Sopenharmony_ci  - clocks
7662306a36Sopenharmony_ci  - clock-names
7762306a36Sopenharmony_ci  - power-domains
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ciif:
8062306a36Sopenharmony_ci  not:
8162306a36Sopenharmony_ci    properties:
8262306a36Sopenharmony_ci      compatible:
8362306a36Sopenharmony_ci        contains:
8462306a36Sopenharmony_ci          const: renesas,pcie-r8a7779
8562306a36Sopenharmony_cithen:
8662306a36Sopenharmony_ci  required:
8762306a36Sopenharmony_ci    - resets
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ciunevaluatedProperties: false
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ciexamples:
9262306a36Sopenharmony_ci  - |
9362306a36Sopenharmony_ci    #include <dt-bindings/clock/r8a7791-cpg-mssr.h>
9462306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
9562306a36Sopenharmony_ci    #include <dt-bindings/power/r8a7791-sysc.h>
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci    soc {
9862306a36Sopenharmony_ci        #address-cells = <2>;
9962306a36Sopenharmony_ci        #size-cells = <2>;
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci        pcie: pcie@fe000000 {
10262306a36Sopenharmony_ci            compatible = "renesas,pcie-r8a7791", "renesas,pcie-rcar-gen2";
10362306a36Sopenharmony_ci            reg = <0 0xfe000000 0 0x80000>;
10462306a36Sopenharmony_ci             #address-cells = <3>;
10562306a36Sopenharmony_ci             #size-cells = <2>;
10662306a36Sopenharmony_ci             bus-range = <0x00 0xff>;
10762306a36Sopenharmony_ci             device_type = "pci";
10862306a36Sopenharmony_ci             ranges = <0x01000000 0 0x00000000 0 0xfe100000 0 0x00100000>,
10962306a36Sopenharmony_ci                      <0x02000000 0 0xfe200000 0 0xfe200000 0 0x00200000>,
11062306a36Sopenharmony_ci                      <0x02000000 0 0x30000000 0 0x30000000 0 0x08000000>,
11162306a36Sopenharmony_ci                      <0x42000000 0 0x38000000 0 0x38000000 0 0x08000000>;
11262306a36Sopenharmony_ci             dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x40000000>,
11362306a36Sopenharmony_ci                          <0x42000000 2 0x00000000 2 0x00000000 0 0x40000000>;
11462306a36Sopenharmony_ci             interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
11562306a36Sopenharmony_ci                          <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
11662306a36Sopenharmony_ci                          <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
11762306a36Sopenharmony_ci             #interrupt-cells = <1>;
11862306a36Sopenharmony_ci             interrupt-map-mask = <0 0 0 0>;
11962306a36Sopenharmony_ci             interrupt-map = <0 0 0 0 &gic GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
12062306a36Sopenharmony_ci             clocks = <&cpg CPG_MOD 319>, <&pcie_bus_clk>;
12162306a36Sopenharmony_ci             clock-names = "pcie", "pcie_bus";
12262306a36Sopenharmony_ci             power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
12362306a36Sopenharmony_ci             resets = <&cpg 319>;
12462306a36Sopenharmony_ci         };
12562306a36Sopenharmony_ci    };
126