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 35*e67e8565SEmmanuel Vadot dma-coherent: true 36*e67e8565SEmmanuel 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 542eb4d8dcSEmmanuel Vadot pwren-gpios: 552eb4d8dcSEmmanuel Vadot description: Should specify the GPIO for controlling the PCI bus device power on. 562eb4d8dcSEmmanuel Vadot maxItems: 1 572eb4d8dcSEmmanuel Vadot 582eb4d8dcSEmmanuel Vadot reset-gpios: 592eb4d8dcSEmmanuel Vadot maxItems: 1 602eb4d8dcSEmmanuel Vadot 612eb4d8dcSEmmanuel Vadotrequired: 622eb4d8dcSEmmanuel Vadot - dma-coherent 632eb4d8dcSEmmanuel Vadot - num-lanes 642eb4d8dcSEmmanuel Vadot - interrupts 652eb4d8dcSEmmanuel Vadot - interrupt-names 662eb4d8dcSEmmanuel Vadot - interrupt-map-mask 672eb4d8dcSEmmanuel Vadot - interrupt-map 682eb4d8dcSEmmanuel Vadot - clocks 692eb4d8dcSEmmanuel Vadot - resets 702eb4d8dcSEmmanuel Vadot - pwren-gpios 712eb4d8dcSEmmanuel Vadot - reset-gpios 722eb4d8dcSEmmanuel Vadot 732eb4d8dcSEmmanuel VadotunevaluatedProperties: false 742eb4d8dcSEmmanuel Vadot 752eb4d8dcSEmmanuel Vadotexamples: 762eb4d8dcSEmmanuel Vadot - | 772eb4d8dcSEmmanuel Vadot bus { 782eb4d8dcSEmmanuel Vadot #address-cells = <2>; 792eb4d8dcSEmmanuel Vadot #size-cells = <2>; 802eb4d8dcSEmmanuel Vadot #include <dt-bindings/clock/sifive-fu740-prci.h> 812eb4d8dcSEmmanuel Vadot 822eb4d8dcSEmmanuel Vadot pcie@e00000000 { 832eb4d8dcSEmmanuel Vadot compatible = "sifive,fu740-pcie"; 842eb4d8dcSEmmanuel Vadot #address-cells = <3>; 852eb4d8dcSEmmanuel Vadot #size-cells = <2>; 862eb4d8dcSEmmanuel Vadot #interrupt-cells = <1>; 872eb4d8dcSEmmanuel Vadot reg = <0xe 0x00000000 0x0 0x80000000>, 882eb4d8dcSEmmanuel Vadot <0xd 0xf0000000 0x0 0x10000000>, 892eb4d8dcSEmmanuel Vadot <0x0 0x100d0000 0x0 0x1000>; 902eb4d8dcSEmmanuel Vadot reg-names = "dbi", "config", "mgmt"; 912eb4d8dcSEmmanuel Vadot device_type = "pci"; 922eb4d8dcSEmmanuel Vadot dma-coherent; 932eb4d8dcSEmmanuel Vadot bus-range = <0x0 0xff>; 942eb4d8dcSEmmanuel Vadot ranges = <0x81000000 0x0 0x60080000 0x0 0x60080000 0x0 0x10000>, /* I/O */ 952eb4d8dcSEmmanuel Vadot <0x82000000 0x0 0x60090000 0x0 0x60090000 0x0 0xff70000>, /* mem */ 962eb4d8dcSEmmanuel Vadot <0x82000000 0x0 0x70000000 0x0 0x70000000 0x0 0x1000000>, /* mem */ 972eb4d8dcSEmmanuel Vadot <0xc3000000 0x20 0x00000000 0x20 0x00000000 0x20 0x00000000>; /* mem prefetchable */ 982eb4d8dcSEmmanuel Vadot num-lanes = <0x8>; 992eb4d8dcSEmmanuel Vadot interrupts = <56>, <57>, <58>, <59>, <60>, <61>, <62>, <63>, <64>; 1002eb4d8dcSEmmanuel Vadot interrupt-names = "msi", "inta", "intb", "intc", "intd"; 1012eb4d8dcSEmmanuel Vadot interrupt-parent = <&plic0>; 1022eb4d8dcSEmmanuel Vadot interrupt-map-mask = <0x0 0x0 0x0 0x7>; 1032eb4d8dcSEmmanuel Vadot interrupt-map = <0x0 0x0 0x0 0x1 &plic0 57>, 1042eb4d8dcSEmmanuel Vadot <0x0 0x0 0x0 0x2 &plic0 58>, 1052eb4d8dcSEmmanuel Vadot <0x0 0x0 0x0 0x3 &plic0 59>, 1062eb4d8dcSEmmanuel Vadot <0x0 0x0 0x0 0x4 &plic0 60>; 1072eb4d8dcSEmmanuel Vadot clocks = <&prci PRCI_CLK_PCIE_AUX>; 1082eb4d8dcSEmmanuel Vadot resets = <&prci 4>; 1092eb4d8dcSEmmanuel Vadot pwren-gpios = <&gpio 5 0>; 1102eb4d8dcSEmmanuel Vadot reset-gpios = <&gpio 8 0>; 1112eb4d8dcSEmmanuel Vadot }; 1122eb4d8dcSEmmanuel Vadot }; 113