xref: /freebsd/sys/contrib/device-tree/Bindings/pci/sifive,fu740-pcie.yaml (revision 2eb4d8dc723da3cf7d735a3226ae49da4c8c5dbc)
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