xref: /freebsd-src/sys/contrib/device-tree/Bindings/pci/microchip,pcie-host.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
15def4c47SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
25def4c47SEmmanuel Vadot%YAML 1.2
35def4c47SEmmanuel Vadot---
45def4c47SEmmanuel Vadot$id: http://devicetree.org/schemas/pci/microchip,pcie-host.yaml#
55def4c47SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65def4c47SEmmanuel Vadot
77ef62cebSEmmanuel Vadottitle: Microchip PCIe Root Port Bridge Controller
85def4c47SEmmanuel Vadot
95def4c47SEmmanuel Vadotmaintainers:
105def4c47SEmmanuel Vadot  - Daire McNamara <daire.mcnamara@microchip.com>
115def4c47SEmmanuel Vadot
125def4c47SEmmanuel VadotallOf:
13*0e8011faSEmmanuel Vadot  - $ref: plda,xpressrich3-axi-common.yaml#
148cc087a1SEmmanuel Vadot  - $ref: /schemas/interrupt-controller/msi-controller.yaml#
155def4c47SEmmanuel Vadot
165def4c47SEmmanuel Vadotproperties:
175def4c47SEmmanuel Vadot  compatible:
185def4c47SEmmanuel Vadot    const: microchip,pcie-host-1.0 # PolarFire
195def4c47SEmmanuel Vadot
207ef62cebSEmmanuel Vadot  clocks:
217ef62cebSEmmanuel Vadot    description:
227ef62cebSEmmanuel Vadot      Fabric Interface Controllers, FICs, are the interface between the FPGA
237ef62cebSEmmanuel Vadot      fabric and the core complex on PolarFire SoC. The FICs require two clocks,
247ef62cebSEmmanuel Vadot      one from each side of the interface. The "FIC clocks" described by this
257ef62cebSEmmanuel Vadot      property are on the core complex side & communication through a FIC is not
267ef62cebSEmmanuel Vadot      possible unless it's corresponding clock is enabled. A clock must be
277ef62cebSEmmanuel Vadot      enabled for each of the interfaces the root port is connected through.
287ef62cebSEmmanuel Vadot      This could in theory be all 4 interfaces, one interface or any combination
297ef62cebSEmmanuel Vadot      in between.
307ef62cebSEmmanuel Vadot    minItems: 1
317ef62cebSEmmanuel Vadot    items:
327ef62cebSEmmanuel Vadot      - description: FIC0's clock
337ef62cebSEmmanuel Vadot      - description: FIC1's clock
347ef62cebSEmmanuel Vadot      - description: FIC2's clock
357ef62cebSEmmanuel Vadot      - description: FIC3's clock
367ef62cebSEmmanuel Vadot
377ef62cebSEmmanuel Vadot  clock-names:
387ef62cebSEmmanuel Vadot    description:
397ef62cebSEmmanuel Vadot      As any FIC connection combination is possible, the names should match the
407ef62cebSEmmanuel Vadot      order in the clocks property and take the form "ficN" where N is a number
417ef62cebSEmmanuel Vadot      0-3
427ef62cebSEmmanuel Vadot    minItems: 1
437ef62cebSEmmanuel Vadot    maxItems: 4
447ef62cebSEmmanuel Vadot    items:
457ef62cebSEmmanuel Vadot      pattern: '^fic[0-3]$'
467ef62cebSEmmanuel Vadot
475def4c47SEmmanuel Vadot  ranges:
487d0873ebSEmmanuel Vadot    minItems: 1
497d0873ebSEmmanuel Vadot    maxItems: 3
505def4c47SEmmanuel Vadot
517ef62cebSEmmanuel Vadot  dma-ranges:
527ef62cebSEmmanuel Vadot    minItems: 1
537ef62cebSEmmanuel Vadot    maxItems: 6
547ef62cebSEmmanuel Vadot
555def4c47SEmmanuel VadotunevaluatedProperties: false
565def4c47SEmmanuel Vadot
575def4c47SEmmanuel Vadotexamples:
585def4c47SEmmanuel Vadot  - |
595def4c47SEmmanuel Vadot    soc {
605def4c47SEmmanuel Vadot            #address-cells = <2>;
615def4c47SEmmanuel Vadot            #size-cells = <2>;
625def4c47SEmmanuel Vadot            pcie0: pcie@2030000000 {
635def4c47SEmmanuel Vadot                    compatible = "microchip,pcie-host-1.0";
645def4c47SEmmanuel Vadot                    reg = <0x0 0x70000000 0x0 0x08000000>,
655def4c47SEmmanuel Vadot                          <0x0 0x43000000 0x0 0x00010000>;
665def4c47SEmmanuel Vadot                    reg-names = "cfg", "apb";
675def4c47SEmmanuel Vadot                    device_type = "pci";
685def4c47SEmmanuel Vadot                    #address-cells = <3>;
695def4c47SEmmanuel Vadot                    #size-cells = <2>;
705def4c47SEmmanuel Vadot                    #interrupt-cells = <1>;
715def4c47SEmmanuel Vadot                    interrupts = <119>;
725def4c47SEmmanuel Vadot                    interrupt-map-mask = <0x0 0x0 0x0 0x7>;
735def4c47SEmmanuel Vadot                    interrupt-map = <0 0 0 1 &pcie_intc0 0>,
745def4c47SEmmanuel Vadot                                    <0 0 0 2 &pcie_intc0 1>,
755def4c47SEmmanuel Vadot                                    <0 0 0 3 &pcie_intc0 2>,
765def4c47SEmmanuel Vadot                                    <0 0 0 4 &pcie_intc0 3>;
775def4c47SEmmanuel Vadot                    interrupt-parent = <&plic0>;
785def4c47SEmmanuel Vadot                    msi-parent = <&pcie0>;
795def4c47SEmmanuel Vadot                    msi-controller;
805def4c47SEmmanuel Vadot                    bus-range = <0x00 0x7f>;
815def4c47SEmmanuel Vadot                    ranges = <0x03000000 0x0 0x78000000 0x0 0x78000000 0x0 0x04000000>;
825def4c47SEmmanuel Vadot                    pcie_intc0: interrupt-controller {
835def4c47SEmmanuel Vadot                        #address-cells = <0>;
845def4c47SEmmanuel Vadot                        #interrupt-cells = <1>;
855def4c47SEmmanuel Vadot                        interrupt-controller;
865def4c47SEmmanuel Vadot                    };
875def4c47SEmmanuel Vadot            };
885def4c47SEmmanuel Vadot    };
89