# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/pci/sifive,fu740-pcie.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: SiFive FU740 PCIe host controller description: |+ SiFive FU740 PCIe host controller is based on the Synopsys DesignWare PCI core. It shares common features with the PCIe DesignWare core and inherits common properties defined in Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml. maintainers: - Paul Walmsley <paul.walmsley@sifive.com> - Greentime Hu <greentime.hu@sifive.com> allOf: - $ref: /schemas/pci/snps,dw-pcie.yaml# properties: compatible: const: sifive,fu740-pcie reg: maxItems: 3 reg-names: items: - const: dbi - const: config - const: mgmt dma-coherent: true num-lanes: const: 8 msi-parent: true interrupt-names: items: - const: msi - const: inta - const: intb - const: intc - const: intd resets: description: A phandle to the PCIe power up reset line. maxItems: 1 clocks: maxItems: 1 clock-names: const: pcie_aux pwren-gpios: description: Should specify the GPIO for controlling the PCI bus device power on. maxItems: 1 reset-gpios: maxItems: 1 required: - dma-coherent - num-lanes - interrupts - interrupt-names - interrupt-map-mask - interrupt-map - clocks - clock-names - resets - pwren-gpios - reset-gpios unevaluatedProperties: false examples: - | bus { #address-cells = <2>; #size-cells = <2>; #include <dt-bindings/clock/sifive-fu740-prci.h> pcie@e00000000 { compatible = "sifive,fu740-pcie"; #address-cells = <3>; #size-cells = <2>; #interrupt-cells = <1>; reg = <0xe 0x00000000 0x0 0x80000000>, <0xd 0xf0000000 0x0 0x10000000>, <0x0 0x100d0000 0x0 0x1000>; reg-names = "dbi", "config", "mgmt"; device_type = "pci"; dma-coherent; bus-range = <0x0 0xff>; ranges = <0x81000000 0x0 0x60080000 0x0 0x60080000 0x0 0x10000>, /* I/O */ <0x82000000 0x0 0x60090000 0x0 0x60090000 0x0 0xff70000>, /* mem */ <0x82000000 0x0 0x70000000 0x0 0x70000000 0x0 0x1000000>, /* mem */ <0xc3000000 0x20 0x00000000 0x20 0x00000000 0x20 0x00000000>; /* mem prefetchable */ num-lanes = <0x8>; interrupts = <56>, <57>, <58>, <59>, <60>, <61>, <62>, <63>, <64>; interrupt-names = "msi", "inta", "intb", "intc", "intd"; interrupt-parent = <&plic0>; interrupt-map-mask = <0x0 0x0 0x0 0x7>; interrupt-map = <0x0 0x0 0x0 0x1 &plic0 57>, <0x0 0x0 0x0 0x2 &plic0 58>, <0x0 0x0 0x0 0x3 &plic0 59>, <0x0 0x0 0x0 0x4 &plic0 60>; clock-names = "pcie_aux"; clocks = <&prci FU740_PRCI_CLK_PCIE_AUX>; resets = <&prci 4>; pwren-gpios = <&gpio 5 0>; reset-gpios = <&gpio 8 0>; }; };