12eb4d8dcSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 22eb4d8dcSEmmanuel Vadot%YAML 1.2 32eb4d8dcSEmmanuel Vadot--- 42eb4d8dcSEmmanuel Vadot$id: http://devicetree.org/schemas/pci/sifive,fu740-pcie.yaml# 52eb4d8dcSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 62eb4d8dcSEmmanuel Vadot 72eb4d8dcSEmmanuel Vadottitle: SiFive FU740 PCIe host controller 82eb4d8dcSEmmanuel Vadot 92eb4d8dcSEmmanuel Vadotdescription: |+ 102eb4d8dcSEmmanuel Vadot SiFive FU740 PCIe host controller is based on the Synopsys DesignWare 112eb4d8dcSEmmanuel Vadot PCI core. It shares common features with the PCIe DesignWare core and 122eb4d8dcSEmmanuel Vadot inherits common properties defined in 13354d7675SEmmanuel Vadot Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. 142eb4d8dcSEmmanuel Vadot 152eb4d8dcSEmmanuel Vadotmaintainers: 162eb4d8dcSEmmanuel Vadot - Paul Walmsley <paul.walmsley@sifive.com> 172eb4d8dcSEmmanuel Vadot - Greentime Hu <greentime.hu@sifive.com> 182eb4d8dcSEmmanuel Vadot 192eb4d8dcSEmmanuel VadotallOf: 20354d7675SEmmanuel Vadot - $ref: /schemas/pci/snps,dw-pcie.yaml# 212eb4d8dcSEmmanuel Vadot 222eb4d8dcSEmmanuel Vadotproperties: 232eb4d8dcSEmmanuel Vadot compatible: 242eb4d8dcSEmmanuel Vadot const: sifive,fu740-pcie 252eb4d8dcSEmmanuel Vadot 262eb4d8dcSEmmanuel Vadot reg: 272eb4d8dcSEmmanuel Vadot maxItems: 3 282eb4d8dcSEmmanuel Vadot 292eb4d8dcSEmmanuel Vadot reg-names: 302eb4d8dcSEmmanuel Vadot items: 312eb4d8dcSEmmanuel Vadot - const: dbi 322eb4d8dcSEmmanuel Vadot - const: config 332eb4d8dcSEmmanuel Vadot - const: mgmt 342eb4d8dcSEmmanuel Vadot 35e67e8565SEmmanuel Vadot dma-coherent: true 36e67e8565SEmmanuel Vadot 372eb4d8dcSEmmanuel Vadot num-lanes: 382eb4d8dcSEmmanuel Vadot const: 8 392eb4d8dcSEmmanuel Vadot 402eb4d8dcSEmmanuel Vadot msi-parent: true 412eb4d8dcSEmmanuel Vadot 422eb4d8dcSEmmanuel Vadot interrupt-names: 432eb4d8dcSEmmanuel Vadot items: 442eb4d8dcSEmmanuel Vadot - const: msi 452eb4d8dcSEmmanuel Vadot - const: inta 462eb4d8dcSEmmanuel Vadot - const: intb 472eb4d8dcSEmmanuel Vadot - const: intc 482eb4d8dcSEmmanuel Vadot - const: intd 492eb4d8dcSEmmanuel Vadot 502eb4d8dcSEmmanuel Vadot resets: 512eb4d8dcSEmmanuel Vadot description: A phandle to the PCIe power up reset line. 522eb4d8dcSEmmanuel Vadot maxItems: 1 532eb4d8dcSEmmanuel Vadot 54*7ef62cebSEmmanuel Vadot clocks: 55*7ef62cebSEmmanuel Vadot maxItems: 1 56*7ef62cebSEmmanuel Vadot 57*7ef62cebSEmmanuel Vadot clock-names: 58*7ef62cebSEmmanuel Vadot const: pcie_aux 59*7ef62cebSEmmanuel Vadot 602eb4d8dcSEmmanuel Vadot pwren-gpios: 612eb4d8dcSEmmanuel Vadot description: Should specify the GPIO for controlling the PCI bus device power on. 622eb4d8dcSEmmanuel Vadot maxItems: 1 632eb4d8dcSEmmanuel Vadot 642eb4d8dcSEmmanuel Vadot reset-gpios: 652eb4d8dcSEmmanuel Vadot maxItems: 1 662eb4d8dcSEmmanuel Vadot 672eb4d8dcSEmmanuel Vadotrequired: 682eb4d8dcSEmmanuel Vadot - dma-coherent 692eb4d8dcSEmmanuel Vadot - num-lanes 702eb4d8dcSEmmanuel Vadot - interrupts 712eb4d8dcSEmmanuel Vadot - interrupt-names 722eb4d8dcSEmmanuel Vadot - interrupt-map-mask 732eb4d8dcSEmmanuel Vadot - interrupt-map 742eb4d8dcSEmmanuel Vadot - clocks 75*7ef62cebSEmmanuel Vadot - clock-names 762eb4d8dcSEmmanuel Vadot - resets 772eb4d8dcSEmmanuel Vadot - pwren-gpios 782eb4d8dcSEmmanuel Vadot - reset-gpios 792eb4d8dcSEmmanuel Vadot 802eb4d8dcSEmmanuel VadotunevaluatedProperties: false 812eb4d8dcSEmmanuel Vadot 822eb4d8dcSEmmanuel Vadotexamples: 832eb4d8dcSEmmanuel Vadot - | 842eb4d8dcSEmmanuel Vadot bus { 852eb4d8dcSEmmanuel Vadot #address-cells = <2>; 862eb4d8dcSEmmanuel Vadot #size-cells = <2>; 872eb4d8dcSEmmanuel Vadot #include <dt-bindings/clock/sifive-fu740-prci.h> 882eb4d8dcSEmmanuel Vadot 892eb4d8dcSEmmanuel Vadot pcie@e00000000 { 902eb4d8dcSEmmanuel Vadot compatible = "sifive,fu740-pcie"; 912eb4d8dcSEmmanuel Vadot #address-cells = <3>; 922eb4d8dcSEmmanuel Vadot #size-cells = <2>; 932eb4d8dcSEmmanuel Vadot #interrupt-cells = <1>; 942eb4d8dcSEmmanuel Vadot reg = <0xe 0x00000000 0x0 0x80000000>, 952eb4d8dcSEmmanuel Vadot <0xd 0xf0000000 0x0 0x10000000>, 962eb4d8dcSEmmanuel Vadot <0x0 0x100d0000 0x0 0x1000>; 972eb4d8dcSEmmanuel Vadot reg-names = "dbi", "config", "mgmt"; 982eb4d8dcSEmmanuel Vadot device_type = "pci"; 992eb4d8dcSEmmanuel Vadot dma-coherent; 1002eb4d8dcSEmmanuel Vadot bus-range = <0x0 0xff>; 1012eb4d8dcSEmmanuel Vadot ranges = <0x81000000 0x0 0x60080000 0x0 0x60080000 0x0 0x10000>, /* I/O */ 1022eb4d8dcSEmmanuel Vadot <0x82000000 0x0 0x60090000 0x0 0x60090000 0x0 0xff70000>, /* mem */ 1032eb4d8dcSEmmanuel Vadot <0x82000000 0x0 0x70000000 0x0 0x70000000 0x0 0x1000000>, /* mem */ 1042eb4d8dcSEmmanuel Vadot <0xc3000000 0x20 0x00000000 0x20 0x00000000 0x20 0x00000000>; /* mem prefetchable */ 1052eb4d8dcSEmmanuel Vadot num-lanes = <0x8>; 1062eb4d8dcSEmmanuel Vadot interrupts = <56>, <57>, <58>, <59>, <60>, <61>, <62>, <63>, <64>; 1072eb4d8dcSEmmanuel Vadot interrupt-names = "msi", "inta", "intb", "intc", "intd"; 1082eb4d8dcSEmmanuel Vadot interrupt-parent = <&plic0>; 1092eb4d8dcSEmmanuel Vadot interrupt-map-mask = <0x0 0x0 0x0 0x7>; 1102eb4d8dcSEmmanuel Vadot interrupt-map = <0x0 0x0 0x0 0x1 &plic0 57>, 1112eb4d8dcSEmmanuel Vadot <0x0 0x0 0x0 0x2 &plic0 58>, 1122eb4d8dcSEmmanuel Vadot <0x0 0x0 0x0 0x3 &plic0 59>, 1132eb4d8dcSEmmanuel Vadot <0x0 0x0 0x0 0x4 &plic0 60>; 114*7ef62cebSEmmanuel Vadot clock-names = "pcie_aux"; 115c9ccf3a3SEmmanuel Vadot clocks = <&prci FU740_PRCI_CLK_PCIE_AUX>; 1162eb4d8dcSEmmanuel Vadot resets = <&prci 4>; 1172eb4d8dcSEmmanuel Vadot pwren-gpios = <&gpio 5 0>; 1182eb4d8dcSEmmanuel Vadot reset-gpios = <&gpio 8 0>; 1192eb4d8dcSEmmanuel Vadot }; 1202eb4d8dcSEmmanuel Vadot }; 121