xref: /freebsd/sys/contrib/device-tree/Bindings/pci/rcar-gen4-pci-host.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
184943d6fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
284943d6fSEmmanuel Vadot# Copyright (C) 2022-2023 Renesas Electronics Corp.
384943d6fSEmmanuel Vadot%YAML 1.2
484943d6fSEmmanuel Vadot---
584943d6fSEmmanuel Vadot$id: http://devicetree.org/schemas/pci/rcar-gen4-pci-host.yaml#
684943d6fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
784943d6fSEmmanuel Vadot
884943d6fSEmmanuel Vadottitle: Renesas R-Car Gen4 PCIe Host
984943d6fSEmmanuel Vadot
1084943d6fSEmmanuel Vadotmaintainers:
1184943d6fSEmmanuel Vadot  - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
1284943d6fSEmmanuel Vadot
1384943d6fSEmmanuel VadotallOf:
1484943d6fSEmmanuel Vadot  - $ref: snps,dw-pcie.yaml#
1584943d6fSEmmanuel Vadot
1684943d6fSEmmanuel Vadotproperties:
1784943d6fSEmmanuel Vadot  compatible:
1884943d6fSEmmanuel Vadot    items:
197d0873ebSEmmanuel Vadot      - enum:
207d0873ebSEmmanuel Vadot          - renesas,r8a779f0-pcie      # R-Car S4-8
217d0873ebSEmmanuel Vadot          - renesas,r8a779g0-pcie      # R-Car V4H
22*b2d2a78aSEmmanuel Vadot          - renesas,r8a779h0-pcie      # R-Car V4M
2384943d6fSEmmanuel Vadot      - const: renesas,rcar-gen4-pcie  # R-Car Gen4
2484943d6fSEmmanuel Vadot
2584943d6fSEmmanuel Vadot  reg:
2684943d6fSEmmanuel Vadot    maxItems: 7
2784943d6fSEmmanuel Vadot
2884943d6fSEmmanuel Vadot  reg-names:
2984943d6fSEmmanuel Vadot    items:
3084943d6fSEmmanuel Vadot      - const: dbi
3184943d6fSEmmanuel Vadot      - const: dbi2
3284943d6fSEmmanuel Vadot      - const: atu
3384943d6fSEmmanuel Vadot      - const: dma
3484943d6fSEmmanuel Vadot      - const: app
3584943d6fSEmmanuel Vadot      - const: phy
3684943d6fSEmmanuel Vadot      - const: config
3784943d6fSEmmanuel Vadot
3884943d6fSEmmanuel Vadot  interrupts:
3984943d6fSEmmanuel Vadot    maxItems: 4
4084943d6fSEmmanuel Vadot
4184943d6fSEmmanuel Vadot  interrupt-names:
4284943d6fSEmmanuel Vadot    items:
4384943d6fSEmmanuel Vadot      - const: msi
4484943d6fSEmmanuel Vadot      - const: dma
4584943d6fSEmmanuel Vadot      - const: sft_ce
4684943d6fSEmmanuel Vadot      - const: app
4784943d6fSEmmanuel Vadot
4884943d6fSEmmanuel Vadot  clocks:
4984943d6fSEmmanuel Vadot    maxItems: 2
5084943d6fSEmmanuel Vadot
5184943d6fSEmmanuel Vadot  clock-names:
5284943d6fSEmmanuel Vadot    items:
5384943d6fSEmmanuel Vadot      - const: core
5484943d6fSEmmanuel Vadot      - const: ref
5584943d6fSEmmanuel Vadot
5684943d6fSEmmanuel Vadot  power-domains:
5784943d6fSEmmanuel Vadot    maxItems: 1
5884943d6fSEmmanuel Vadot
5984943d6fSEmmanuel Vadot  resets:
6084943d6fSEmmanuel Vadot    maxItems: 1
6184943d6fSEmmanuel Vadot
6284943d6fSEmmanuel Vadot  reset-names:
6384943d6fSEmmanuel Vadot    items:
6484943d6fSEmmanuel Vadot      - const: pwr
6584943d6fSEmmanuel Vadot
6684943d6fSEmmanuel Vadot  max-link-speed:
6784943d6fSEmmanuel Vadot    maximum: 4
6884943d6fSEmmanuel Vadot
6984943d6fSEmmanuel Vadot  num-lanes:
7084943d6fSEmmanuel Vadot    maximum: 4
7184943d6fSEmmanuel Vadot
7284943d6fSEmmanuel Vadotrequired:
7384943d6fSEmmanuel Vadot  - compatible
7484943d6fSEmmanuel Vadot  - reg
7584943d6fSEmmanuel Vadot  - reg-names
7684943d6fSEmmanuel Vadot  - interrupts
7784943d6fSEmmanuel Vadot  - interrupt-names
7884943d6fSEmmanuel Vadot  - clocks
7984943d6fSEmmanuel Vadot  - clock-names
8084943d6fSEmmanuel Vadot  - power-domains
8184943d6fSEmmanuel Vadot  - resets
8284943d6fSEmmanuel Vadot  - reset-names
8384943d6fSEmmanuel Vadot
8484943d6fSEmmanuel VadotunevaluatedProperties: false
8584943d6fSEmmanuel Vadot
8684943d6fSEmmanuel Vadotexamples:
8784943d6fSEmmanuel Vadot  - |
8884943d6fSEmmanuel Vadot    #include <dt-bindings/clock/r8a779f0-cpg-mssr.h>
8984943d6fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
9084943d6fSEmmanuel Vadot    #include <dt-bindings/power/r8a779f0-sysc.h>
9184943d6fSEmmanuel Vadot
9284943d6fSEmmanuel Vadot    soc {
9384943d6fSEmmanuel Vadot        #address-cells = <2>;
9484943d6fSEmmanuel Vadot        #size-cells = <2>;
9584943d6fSEmmanuel Vadot
9684943d6fSEmmanuel Vadot        pcie: pcie@e65d0000 {
9784943d6fSEmmanuel Vadot            compatible = "renesas,r8a779f0-pcie", "renesas,rcar-gen4-pcie";
9884943d6fSEmmanuel Vadot            reg = <0 0xe65d0000 0 0x1000>, <0 0xe65d2000 0 0x0800>,
9984943d6fSEmmanuel Vadot                  <0 0xe65d3000 0 0x2000>, <0 0xe65d5000 0 0x1200>,
10084943d6fSEmmanuel Vadot                  <0 0xe65d6200 0 0x0e00>, <0 0xe65d7000 0 0x0400>,
10184943d6fSEmmanuel Vadot                  <0 0xfe000000 0 0x400000>;
10284943d6fSEmmanuel Vadot            reg-names = "dbi", "dbi2", "atu", "dma", "app", "phy", "config";
10384943d6fSEmmanuel Vadot            interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
10484943d6fSEmmanuel Vadot                         <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
10584943d6fSEmmanuel Vadot                         <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
10684943d6fSEmmanuel Vadot                         <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>;
10784943d6fSEmmanuel Vadot            interrupt-names = "msi", "dma", "sft_ce", "app";
10884943d6fSEmmanuel Vadot            clocks = <&cpg CPG_MOD 624>, <&pcie0_clkref>;
10984943d6fSEmmanuel Vadot            clock-names = "core", "ref";
11084943d6fSEmmanuel Vadot            power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
11184943d6fSEmmanuel Vadot            resets = <&cpg 624>;
11284943d6fSEmmanuel Vadot            reset-names = "pwr";
11384943d6fSEmmanuel Vadot            max-link-speed = <4>;
11484943d6fSEmmanuel Vadot            num-lanes = <2>;
11584943d6fSEmmanuel Vadot            #address-cells = <3>;
11684943d6fSEmmanuel Vadot            #size-cells = <2>;
11784943d6fSEmmanuel Vadot            bus-range = <0x00 0xff>;
11884943d6fSEmmanuel Vadot            device_type = "pci";
11984943d6fSEmmanuel Vadot            ranges = <0x01000000 0 0x00000000 0 0xfe000000 0 0x00400000>,
12084943d6fSEmmanuel Vadot                     <0x02000000 0 0x30000000 0 0x30000000 0 0x10000000>;
12184943d6fSEmmanuel Vadot            dma-ranges = <0x42000000 0 0x00000000 0 0x00000000 1 0x00000000>;
12284943d6fSEmmanuel Vadot            #interrupt-cells = <1>;
12384943d6fSEmmanuel Vadot            interrupt-map-mask = <0 0 0 7>;
12484943d6fSEmmanuel Vadot            interrupt-map = <0 0 0 1 &gic GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
12584943d6fSEmmanuel Vadot                            <0 0 0 2 &gic GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
12684943d6fSEmmanuel Vadot                            <0 0 0 3 &gic GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
12784943d6fSEmmanuel Vadot                            <0 0 0 4 &gic GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>;
12884943d6fSEmmanuel Vadot            snps,enable-cdm-check;
12984943d6fSEmmanuel Vadot        };
13084943d6fSEmmanuel Vadot    };
131