1*2eb4d8dcSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*2eb4d8dcSEmmanuel Vadot%YAML 1.2 3*2eb4d8dcSEmmanuel Vadot--- 4*2eb4d8dcSEmmanuel Vadot$id: http://devicetree.org/schemas/pci/sifive,fu740-pcie.yaml# 5*2eb4d8dcSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*2eb4d8dcSEmmanuel Vadot 7*2eb4d8dcSEmmanuel Vadottitle: SiFive FU740 PCIe host controller 8*2eb4d8dcSEmmanuel Vadot 9*2eb4d8dcSEmmanuel Vadotdescription: |+ 10*2eb4d8dcSEmmanuel Vadot SiFive FU740 PCIe host controller is based on the Synopsys DesignWare 11*2eb4d8dcSEmmanuel Vadot PCI core. It shares common features with the PCIe DesignWare core and 12*2eb4d8dcSEmmanuel Vadot inherits common properties defined in 13*2eb4d8dcSEmmanuel Vadot Documentation/devicetree/bindings/pci/designware-pcie.txt. 14*2eb4d8dcSEmmanuel Vadot 15*2eb4d8dcSEmmanuel Vadotmaintainers: 16*2eb4d8dcSEmmanuel Vadot - Paul Walmsley <paul.walmsley@sifive.com> 17*2eb4d8dcSEmmanuel Vadot - Greentime Hu <greentime.hu@sifive.com> 18*2eb4d8dcSEmmanuel Vadot 19*2eb4d8dcSEmmanuel VadotallOf: 20*2eb4d8dcSEmmanuel Vadot - $ref: /schemas/pci/pci-bus.yaml# 21*2eb4d8dcSEmmanuel Vadot 22*2eb4d8dcSEmmanuel Vadotproperties: 23*2eb4d8dcSEmmanuel Vadot compatible: 24*2eb4d8dcSEmmanuel Vadot const: sifive,fu740-pcie 25*2eb4d8dcSEmmanuel Vadot 26*2eb4d8dcSEmmanuel Vadot reg: 27*2eb4d8dcSEmmanuel Vadot maxItems: 3 28*2eb4d8dcSEmmanuel Vadot 29*2eb4d8dcSEmmanuel Vadot reg-names: 30*2eb4d8dcSEmmanuel Vadot items: 31*2eb4d8dcSEmmanuel Vadot - const: dbi 32*2eb4d8dcSEmmanuel Vadot - const: config 33*2eb4d8dcSEmmanuel Vadot - const: mgmt 34*2eb4d8dcSEmmanuel Vadot 35*2eb4d8dcSEmmanuel Vadot num-lanes: 36*2eb4d8dcSEmmanuel Vadot const: 8 37*2eb4d8dcSEmmanuel Vadot 38*2eb4d8dcSEmmanuel Vadot msi-parent: true 39*2eb4d8dcSEmmanuel Vadot 40*2eb4d8dcSEmmanuel Vadot interrupt-names: 41*2eb4d8dcSEmmanuel Vadot items: 42*2eb4d8dcSEmmanuel Vadot - const: msi 43*2eb4d8dcSEmmanuel Vadot - const: inta 44*2eb4d8dcSEmmanuel Vadot - const: intb 45*2eb4d8dcSEmmanuel Vadot - const: intc 46*2eb4d8dcSEmmanuel Vadot - const: intd 47*2eb4d8dcSEmmanuel Vadot 48*2eb4d8dcSEmmanuel Vadot resets: 49*2eb4d8dcSEmmanuel Vadot description: A phandle to the PCIe power up reset line. 50*2eb4d8dcSEmmanuel Vadot maxItems: 1 51*2eb4d8dcSEmmanuel Vadot 52*2eb4d8dcSEmmanuel Vadot pwren-gpios: 53*2eb4d8dcSEmmanuel Vadot description: Should specify the GPIO for controlling the PCI bus device power on. 54*2eb4d8dcSEmmanuel Vadot maxItems: 1 55*2eb4d8dcSEmmanuel Vadot 56*2eb4d8dcSEmmanuel Vadot reset-gpios: 57*2eb4d8dcSEmmanuel Vadot maxItems: 1 58*2eb4d8dcSEmmanuel Vadot 59*2eb4d8dcSEmmanuel Vadotrequired: 60*2eb4d8dcSEmmanuel Vadot - dma-coherent 61*2eb4d8dcSEmmanuel Vadot - num-lanes 62*2eb4d8dcSEmmanuel Vadot - interrupts 63*2eb4d8dcSEmmanuel Vadot - interrupt-names 64*2eb4d8dcSEmmanuel Vadot - interrupt-parent 65*2eb4d8dcSEmmanuel Vadot - interrupt-map-mask 66*2eb4d8dcSEmmanuel Vadot - interrupt-map 67*2eb4d8dcSEmmanuel Vadot - clock-names 68*2eb4d8dcSEmmanuel Vadot - clocks 69*2eb4d8dcSEmmanuel Vadot - resets 70*2eb4d8dcSEmmanuel Vadot - pwren-gpios 71*2eb4d8dcSEmmanuel Vadot - reset-gpios 72*2eb4d8dcSEmmanuel Vadot 73*2eb4d8dcSEmmanuel VadotunevaluatedProperties: false 74*2eb4d8dcSEmmanuel Vadot 75*2eb4d8dcSEmmanuel Vadotexamples: 76*2eb4d8dcSEmmanuel Vadot - | 77*2eb4d8dcSEmmanuel Vadot bus { 78*2eb4d8dcSEmmanuel Vadot #address-cells = <2>; 79*2eb4d8dcSEmmanuel Vadot #size-cells = <2>; 80*2eb4d8dcSEmmanuel Vadot #include <dt-bindings/clock/sifive-fu740-prci.h> 81*2eb4d8dcSEmmanuel Vadot 82*2eb4d8dcSEmmanuel Vadot pcie@e00000000 { 83*2eb4d8dcSEmmanuel Vadot compatible = "sifive,fu740-pcie"; 84*2eb4d8dcSEmmanuel Vadot #address-cells = <3>; 85*2eb4d8dcSEmmanuel Vadot #size-cells = <2>; 86*2eb4d8dcSEmmanuel Vadot #interrupt-cells = <1>; 87*2eb4d8dcSEmmanuel Vadot reg = <0xe 0x00000000 0x0 0x80000000>, 88*2eb4d8dcSEmmanuel Vadot <0xd 0xf0000000 0x0 0x10000000>, 89*2eb4d8dcSEmmanuel Vadot <0x0 0x100d0000 0x0 0x1000>; 90*2eb4d8dcSEmmanuel Vadot reg-names = "dbi", "config", "mgmt"; 91*2eb4d8dcSEmmanuel Vadot device_type = "pci"; 92*2eb4d8dcSEmmanuel Vadot dma-coherent; 93*2eb4d8dcSEmmanuel Vadot bus-range = <0x0 0xff>; 94*2eb4d8dcSEmmanuel Vadot ranges = <0x81000000 0x0 0x60080000 0x0 0x60080000 0x0 0x10000>, /* I/O */ 95*2eb4d8dcSEmmanuel Vadot <0x82000000 0x0 0x60090000 0x0 0x60090000 0x0 0xff70000>, /* mem */ 96*2eb4d8dcSEmmanuel Vadot <0x82000000 0x0 0x70000000 0x0 0x70000000 0x0 0x1000000>, /* mem */ 97*2eb4d8dcSEmmanuel Vadot <0xc3000000 0x20 0x00000000 0x20 0x00000000 0x20 0x00000000>; /* mem prefetchable */ 98*2eb4d8dcSEmmanuel Vadot num-lanes = <0x8>; 99*2eb4d8dcSEmmanuel Vadot interrupts = <56>, <57>, <58>, <59>, <60>, <61>, <62>, <63>, <64>; 100*2eb4d8dcSEmmanuel Vadot interrupt-names = "msi", "inta", "intb", "intc", "intd"; 101*2eb4d8dcSEmmanuel Vadot interrupt-parent = <&plic0>; 102*2eb4d8dcSEmmanuel Vadot interrupt-map-mask = <0x0 0x0 0x0 0x7>; 103*2eb4d8dcSEmmanuel Vadot interrupt-map = <0x0 0x0 0x0 0x1 &plic0 57>, 104*2eb4d8dcSEmmanuel Vadot <0x0 0x0 0x0 0x2 &plic0 58>, 105*2eb4d8dcSEmmanuel Vadot <0x0 0x0 0x0 0x3 &plic0 59>, 106*2eb4d8dcSEmmanuel Vadot <0x0 0x0 0x0 0x4 &plic0 60>; 107*2eb4d8dcSEmmanuel Vadot clock-names = "pcie_aux"; 108*2eb4d8dcSEmmanuel Vadot clocks = <&prci PRCI_CLK_PCIE_AUX>; 109*2eb4d8dcSEmmanuel Vadot resets = <&prci 4>; 110*2eb4d8dcSEmmanuel Vadot pwren-gpios = <&gpio 5 0>; 111*2eb4d8dcSEmmanuel Vadot reset-gpios = <&gpio 8 0>; 112*2eb4d8dcSEmmanuel Vadot }; 113*2eb4d8dcSEmmanuel Vadot }; 114