xref: /linux/Documentation/devicetree/bindings/pci/microchip,pcie-host.yaml (revision 946661e3bef8efa11ba8079d4ebafe6fc3b0aaad)
16ee6c89aSDaire McNamara# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
26ee6c89aSDaire McNamara%YAML 1.2
36ee6c89aSDaire McNamara---
46ee6c89aSDaire McNamara$id: http://devicetree.org/schemas/pci/microchip,pcie-host.yaml#
56ee6c89aSDaire McNamara$schema: http://devicetree.org/meta-schemas/core.yaml#
66ee6c89aSDaire McNamara
7dd3cb467SAndrew Lunntitle: Microchip PCIe Root Port Bridge Controller
86ee6c89aSDaire McNamara
96ee6c89aSDaire McNamaramaintainers:
106ee6c89aSDaire McNamara  - Daire McNamara <daire.mcnamara@microchip.com>
116ee6c89aSDaire McNamara
126ee6c89aSDaire McNamaraallOf:
136873aaa5SMinda Chen  - $ref: plda,xpressrich3-axi-common.yaml#
142e8b4b6eSMark Kettenis  - $ref: /schemas/interrupt-controller/msi-controller.yaml#
156ee6c89aSDaire McNamara
166ee6c89aSDaire McNamaraproperties:
176ee6c89aSDaire McNamara  compatible:
186ee6c89aSDaire McNamara    const: microchip,pcie-host-1.0 # PolarFire
196ee6c89aSDaire McNamara
20e329b762SConor Dooley  reg:
21e329b762SConor Dooley    minItems: 3
22e329b762SConor Dooley
23e329b762SConor Dooley  reg-names:
24e329b762SConor Dooley    minItems: 3
25e329b762SConor Dooley
2605a57410SConor Dooley  clocks:
2705a57410SConor Dooley    description:
2805a57410SConor Dooley      Fabric Interface Controllers, FICs, are the interface between the FPGA
2905a57410SConor Dooley      fabric and the core complex on PolarFire SoC. The FICs require two clocks,
3005a57410SConor Dooley      one from each side of the interface. The "FIC clocks" described by this
3105a57410SConor Dooley      property are on the core complex side & communication through a FIC is not
3205a57410SConor Dooley      possible unless it's corresponding clock is enabled. A clock must be
3305a57410SConor Dooley      enabled for each of the interfaces the root port is connected through.
3405a57410SConor Dooley      This could in theory be all 4 interfaces, one interface or any combination
3505a57410SConor Dooley      in between.
3605a57410SConor Dooley    minItems: 1
3705a57410SConor Dooley    items:
3805a57410SConor Dooley      - description: FIC0's clock
3905a57410SConor Dooley      - description: FIC1's clock
4005a57410SConor Dooley      - description: FIC2's clock
4105a57410SConor Dooley      - description: FIC3's clock
4205a57410SConor Dooley
4305a57410SConor Dooley  clock-names:
4405a57410SConor Dooley    description:
4505a57410SConor Dooley      As any FIC connection combination is possible, the names should match the
4605a57410SConor Dooley      order in the clocks property and take the form "ficN" where N is a number
4705a57410SConor Dooley      0-3
4805a57410SConor Dooley    minItems: 1
4905a57410SConor Dooley    maxItems: 4
5005a57410SConor Dooley    items:
5105a57410SConor Dooley      pattern: '^fic[0-3]$'
5205a57410SConor Dooley
53*04aa999eSConor Dooley  dma-coherent: true
54*04aa999eSConor Dooley
556ee6c89aSDaire McNamara  ranges:
56649bad67SValentina Fernandez    minItems: 1
57649bad67SValentina Fernandez    maxItems: 3
586ee6c89aSDaire McNamara
591a7966b3SConor Dooley  dma-ranges:
601a7966b3SConor Dooley    minItems: 1
611a7966b3SConor Dooley    maxItems: 6
621a7966b3SConor Dooley
636ee6c89aSDaire McNamaraunevaluatedProperties: false
646ee6c89aSDaire McNamara
656ee6c89aSDaire McNamaraexamples:
666ee6c89aSDaire McNamara  - |
676ee6c89aSDaire McNamara    soc {
686ee6c89aSDaire McNamara            #address-cells = <2>;
696ee6c89aSDaire McNamara            #size-cells = <2>;
706ee6c89aSDaire McNamara            pcie0: pcie@2030000000 {
716ee6c89aSDaire McNamara                    compatible = "microchip,pcie-host-1.0";
726ee6c89aSDaire McNamara                    reg = <0x0 0x70000000 0x0 0x08000000>,
73e329b762SConor Dooley                          <0x0 0x43008000 0x0 0x00002000>,
74e329b762SConor Dooley                          <0x0 0x4300a000 0x0 0x00002000>;
75e329b762SConor Dooley                    reg-names = "cfg", "bridge", "ctrl";
766ee6c89aSDaire McNamara                    device_type = "pci";
776ee6c89aSDaire McNamara                    #address-cells = <3>;
786ee6c89aSDaire McNamara                    #size-cells = <2>;
796ee6c89aSDaire McNamara                    #interrupt-cells = <1>;
806ee6c89aSDaire McNamara                    interrupts = <119>;
816ee6c89aSDaire McNamara                    interrupt-map-mask = <0x0 0x0 0x0 0x7>;
826ee6c89aSDaire McNamara                    interrupt-map = <0 0 0 1 &pcie_intc0 0>,
836ee6c89aSDaire McNamara                                    <0 0 0 2 &pcie_intc0 1>,
846ee6c89aSDaire McNamara                                    <0 0 0 3 &pcie_intc0 2>,
856ee6c89aSDaire McNamara                                    <0 0 0 4 &pcie_intc0 3>;
866ee6c89aSDaire McNamara                    interrupt-parent = <&plic0>;
876ee6c89aSDaire McNamara                    msi-parent = <&pcie0>;
886ee6c89aSDaire McNamara                    msi-controller;
896ee6c89aSDaire McNamara                    bus-range = <0x00 0x7f>;
906ee6c89aSDaire McNamara                    ranges = <0x03000000 0x0 0x78000000 0x0 0x78000000 0x0 0x04000000>;
916ee6c89aSDaire McNamara                    pcie_intc0: interrupt-controller {
926ee6c89aSDaire McNamara                        #address-cells = <0>;
936ee6c89aSDaire McNamara                        #interrupt-cells = <1>;
946ee6c89aSDaire McNamara                        interrupt-controller;
956ee6c89aSDaire McNamara                    };
966ee6c89aSDaire McNamara            };
976ee6c89aSDaire McNamara    };
98