1b08929e1SMatthew Gerlach# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2b08929e1SMatthew Gerlach# Copyright (C) 2015, 2019, 2024, Intel Corporation 3b08929e1SMatthew Gerlach%YAML 1.2 4b08929e1SMatthew Gerlach--- 5b08929e1SMatthew Gerlach$id: http://devicetree.org/schemas/altr,pcie-root-port.yaml# 6b08929e1SMatthew Gerlach$schema: http://devicetree.org/meta-schemas/core.yaml# 7b08929e1SMatthew Gerlach 8b08929e1SMatthew Gerlachtitle: Altera PCIe Root Port 9b08929e1SMatthew Gerlach 10b08929e1SMatthew Gerlachmaintainers: 11b08929e1SMatthew Gerlach - Matthew Gerlach <matthew.gerlach@linux.intel.com> 12b08929e1SMatthew Gerlach 13b08929e1SMatthew Gerlachproperties: 14b08929e1SMatthew Gerlach compatible: 15*6843f38eSMatthew Gerlach description: Each family of socfpga has its own implementation of the 16*6843f38eSMatthew Gerlach PCI controller. The altr,pcie-root-port-1.0 is used for the Cyclone5 17*6843f38eSMatthew Gerlach family of chips. The Stratix10 family of chips is supported by the 18*6843f38eSMatthew Gerlach altr,pcie-root-port-2.0. The Agilex family of chips has three, 19*6843f38eSMatthew Gerlach non-register compatible, variants of PCIe Hard IP referred to as the 20*6843f38eSMatthew Gerlach F-Tile, P-Tile, and R-Tile, depending on the specific chip instance. 21*6843f38eSMatthew Gerlach 22b08929e1SMatthew Gerlach enum: 23b08929e1SMatthew Gerlach - altr,pcie-root-port-1.0 24b08929e1SMatthew Gerlach - altr,pcie-root-port-2.0 25*6843f38eSMatthew Gerlach - altr,pcie-root-port-3.0-f-tile 26*6843f38eSMatthew Gerlach - altr,pcie-root-port-3.0-p-tile 27*6843f38eSMatthew Gerlach - altr,pcie-root-port-3.0-r-tile 28b08929e1SMatthew Gerlach 29b08929e1SMatthew Gerlach reg: 30b08929e1SMatthew Gerlach items: 31b08929e1SMatthew Gerlach - description: TX slave port region 32b08929e1SMatthew Gerlach - description: Control register access region 33b08929e1SMatthew Gerlach - description: Hard IP region 34b08929e1SMatthew Gerlach minItems: 2 35b08929e1SMatthew Gerlach 36b08929e1SMatthew Gerlach reg-names: 37b08929e1SMatthew Gerlach items: 38b08929e1SMatthew Gerlach - const: Txs 39b08929e1SMatthew Gerlach - const: Cra 40b08929e1SMatthew Gerlach - const: Hip 41b08929e1SMatthew Gerlach minItems: 2 42b08929e1SMatthew Gerlach 43b08929e1SMatthew Gerlach interrupts: 44b08929e1SMatthew Gerlach maxItems: 1 45b08929e1SMatthew Gerlach 46b08929e1SMatthew Gerlach interrupt-controller: true 47b08929e1SMatthew Gerlach 48b08929e1SMatthew Gerlach interrupt-map-mask: 49b08929e1SMatthew Gerlach items: 50b08929e1SMatthew Gerlach - const: 0 51b08929e1SMatthew Gerlach - const: 0 52b08929e1SMatthew Gerlach - const: 0 53b08929e1SMatthew Gerlach - const: 7 54b08929e1SMatthew Gerlach 55b08929e1SMatthew Gerlach interrupt-map: 56b08929e1SMatthew Gerlach maxItems: 4 57b08929e1SMatthew Gerlach 58b08929e1SMatthew Gerlach "#interrupt-cells": 59b08929e1SMatthew Gerlach const: 1 60b08929e1SMatthew Gerlach 61b08929e1SMatthew Gerlach msi-parent: true 62b08929e1SMatthew Gerlach 63b08929e1SMatthew Gerlachrequired: 64b08929e1SMatthew Gerlach - compatible 65b08929e1SMatthew Gerlach - reg 66b08929e1SMatthew Gerlach - reg-names 67b08929e1SMatthew Gerlach - interrupts 68b08929e1SMatthew Gerlach - "#interrupt-cells" 69b08929e1SMatthew Gerlach - interrupt-controller 70b08929e1SMatthew Gerlach - interrupt-map 71b08929e1SMatthew Gerlach - interrupt-map-mask 72b08929e1SMatthew Gerlach 73b08929e1SMatthew GerlachallOf: 74b08929e1SMatthew Gerlach - $ref: /schemas/pci/pci-host-bridge.yaml# 75b08929e1SMatthew Gerlach - if: 76b08929e1SMatthew Gerlach properties: 77b08929e1SMatthew Gerlach compatible: 78b08929e1SMatthew Gerlach enum: 79b08929e1SMatthew Gerlach - altr,pcie-root-port-1.0 80b08929e1SMatthew Gerlach then: 81b08929e1SMatthew Gerlach properties: 82b08929e1SMatthew Gerlach reg: 83b08929e1SMatthew Gerlach maxItems: 2 84b08929e1SMatthew Gerlach 85b08929e1SMatthew Gerlach reg-names: 86b08929e1SMatthew Gerlach maxItems: 2 87b08929e1SMatthew Gerlach 88b08929e1SMatthew Gerlach else: 89b08929e1SMatthew Gerlach properties: 90b08929e1SMatthew Gerlach reg: 91b08929e1SMatthew Gerlach minItems: 3 92b08929e1SMatthew Gerlach 93b08929e1SMatthew Gerlach reg-names: 94b08929e1SMatthew Gerlach minItems: 3 95b08929e1SMatthew Gerlach 96b08929e1SMatthew Gerlach 97b08929e1SMatthew GerlachunevaluatedProperties: false 98b08929e1SMatthew Gerlach 99b08929e1SMatthew Gerlachexamples: 100b08929e1SMatthew Gerlach - | 101b08929e1SMatthew Gerlach #include <dt-bindings/interrupt-controller/arm-gic.h> 102b08929e1SMatthew Gerlach #include <dt-bindings/interrupt-controller/irq.h> 103b08929e1SMatthew Gerlach pcie_0: pcie@c00000000 { 104b08929e1SMatthew Gerlach compatible = "altr,pcie-root-port-1.0"; 105b08929e1SMatthew Gerlach reg = <0xc0000000 0x20000000>, 106b08929e1SMatthew Gerlach <0xff220000 0x00004000>; 107b08929e1SMatthew Gerlach reg-names = "Txs", "Cra"; 108b08929e1SMatthew Gerlach interrupt-parent = <&hps_0_arm_gic_0>; 109b08929e1SMatthew Gerlach interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 110b08929e1SMatthew Gerlach interrupt-controller; 111b08929e1SMatthew Gerlach #interrupt-cells = <1>; 112b08929e1SMatthew Gerlach bus-range = <0x0 0xff>; 113b08929e1SMatthew Gerlach device_type = "pci"; 114b08929e1SMatthew Gerlach msi-parent = <&msi_to_gic_gen_0>; 115b08929e1SMatthew Gerlach #address-cells = <3>; 116b08929e1SMatthew Gerlach #size-cells = <2>; 117b08929e1SMatthew Gerlach interrupt-map-mask = <0 0 0 7>; 118b08929e1SMatthew Gerlach interrupt-map = <0 0 0 1 &pcie_0 0 0 0 1>, 119b08929e1SMatthew Gerlach <0 0 0 2 &pcie_0 0 0 0 2>, 120b08929e1SMatthew Gerlach <0 0 0 3 &pcie_0 0 0 0 3>, 121b08929e1SMatthew Gerlach <0 0 0 4 &pcie_0 0 0 0 4>; 122b08929e1SMatthew Gerlach ranges = <0x82000000 0x00000000 0x00000000 0xc0000000 0x00000000 0x10000000>, 123b08929e1SMatthew Gerlach <0x82000000 0x00000000 0x10000000 0xd0000000 0x00000000 0x10000000>; 124b08929e1SMatthew Gerlach }; 125