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