1*b2d2a78aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*b2d2a78aSEmmanuel Vadot# Copyright (C) 2015, 2019, 2024, Intel Corporation 3*b2d2a78aSEmmanuel Vadot%YAML 1.2 4*b2d2a78aSEmmanuel Vadot--- 5*b2d2a78aSEmmanuel Vadot$id: http://devicetree.org/schemas/altr,pcie-root-port.yaml# 6*b2d2a78aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 7*b2d2a78aSEmmanuel Vadot 8*b2d2a78aSEmmanuel Vadottitle: Altera PCIe Root Port 9*b2d2a78aSEmmanuel Vadot 10*b2d2a78aSEmmanuel Vadotmaintainers: 11*b2d2a78aSEmmanuel Vadot - Matthew Gerlach <matthew.gerlach@linux.intel.com> 12*b2d2a78aSEmmanuel Vadot 13*b2d2a78aSEmmanuel Vadotproperties: 14*b2d2a78aSEmmanuel Vadot compatible: 15*b2d2a78aSEmmanuel Vadot enum: 16*b2d2a78aSEmmanuel Vadot - altr,pcie-root-port-1.0 17*b2d2a78aSEmmanuel Vadot - altr,pcie-root-port-2.0 18*b2d2a78aSEmmanuel Vadot 19*b2d2a78aSEmmanuel Vadot reg: 20*b2d2a78aSEmmanuel Vadot items: 21*b2d2a78aSEmmanuel Vadot - description: TX slave port region 22*b2d2a78aSEmmanuel Vadot - description: Control register access region 23*b2d2a78aSEmmanuel Vadot - description: Hard IP region 24*b2d2a78aSEmmanuel Vadot minItems: 2 25*b2d2a78aSEmmanuel Vadot 26*b2d2a78aSEmmanuel Vadot reg-names: 27*b2d2a78aSEmmanuel Vadot items: 28*b2d2a78aSEmmanuel Vadot - const: Txs 29*b2d2a78aSEmmanuel Vadot - const: Cra 30*b2d2a78aSEmmanuel Vadot - const: Hip 31*b2d2a78aSEmmanuel Vadot minItems: 2 32*b2d2a78aSEmmanuel Vadot 33*b2d2a78aSEmmanuel Vadot interrupts: 34*b2d2a78aSEmmanuel Vadot maxItems: 1 35*b2d2a78aSEmmanuel Vadot 36*b2d2a78aSEmmanuel Vadot interrupt-controller: true 37*b2d2a78aSEmmanuel Vadot 38*b2d2a78aSEmmanuel Vadot interrupt-map-mask: 39*b2d2a78aSEmmanuel Vadot items: 40*b2d2a78aSEmmanuel Vadot - const: 0 41*b2d2a78aSEmmanuel Vadot - const: 0 42*b2d2a78aSEmmanuel Vadot - const: 0 43*b2d2a78aSEmmanuel Vadot - const: 7 44*b2d2a78aSEmmanuel Vadot 45*b2d2a78aSEmmanuel Vadot interrupt-map: 46*b2d2a78aSEmmanuel Vadot maxItems: 4 47*b2d2a78aSEmmanuel Vadot 48*b2d2a78aSEmmanuel Vadot "#interrupt-cells": 49*b2d2a78aSEmmanuel Vadot const: 1 50*b2d2a78aSEmmanuel Vadot 51*b2d2a78aSEmmanuel Vadot msi-parent: true 52*b2d2a78aSEmmanuel Vadot 53*b2d2a78aSEmmanuel Vadotrequired: 54*b2d2a78aSEmmanuel Vadot - compatible 55*b2d2a78aSEmmanuel Vadot - reg 56*b2d2a78aSEmmanuel Vadot - reg-names 57*b2d2a78aSEmmanuel Vadot - interrupts 58*b2d2a78aSEmmanuel Vadot - "#interrupt-cells" 59*b2d2a78aSEmmanuel Vadot - interrupt-controller 60*b2d2a78aSEmmanuel Vadot - interrupt-map 61*b2d2a78aSEmmanuel Vadot - interrupt-map-mask 62*b2d2a78aSEmmanuel Vadot 63*b2d2a78aSEmmanuel VadotallOf: 64*b2d2a78aSEmmanuel Vadot - $ref: /schemas/pci/pci-host-bridge.yaml# 65*b2d2a78aSEmmanuel Vadot - if: 66*b2d2a78aSEmmanuel Vadot properties: 67*b2d2a78aSEmmanuel Vadot compatible: 68*b2d2a78aSEmmanuel Vadot enum: 69*b2d2a78aSEmmanuel Vadot - altr,pcie-root-port-1.0 70*b2d2a78aSEmmanuel Vadot then: 71*b2d2a78aSEmmanuel Vadot properties: 72*b2d2a78aSEmmanuel Vadot reg: 73*b2d2a78aSEmmanuel Vadot maxItems: 2 74*b2d2a78aSEmmanuel Vadot 75*b2d2a78aSEmmanuel Vadot reg-names: 76*b2d2a78aSEmmanuel Vadot maxItems: 2 77*b2d2a78aSEmmanuel Vadot 78*b2d2a78aSEmmanuel Vadot else: 79*b2d2a78aSEmmanuel Vadot properties: 80*b2d2a78aSEmmanuel Vadot reg: 81*b2d2a78aSEmmanuel Vadot minItems: 3 82*b2d2a78aSEmmanuel Vadot 83*b2d2a78aSEmmanuel Vadot reg-names: 84*b2d2a78aSEmmanuel Vadot minItems: 3 85*b2d2a78aSEmmanuel Vadot 86*b2d2a78aSEmmanuel Vadot 87*b2d2a78aSEmmanuel VadotunevaluatedProperties: false 88*b2d2a78aSEmmanuel Vadot 89*b2d2a78aSEmmanuel Vadotexamples: 90*b2d2a78aSEmmanuel Vadot - | 91*b2d2a78aSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 92*b2d2a78aSEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 93*b2d2a78aSEmmanuel Vadot pcie_0: pcie@c00000000 { 94*b2d2a78aSEmmanuel Vadot compatible = "altr,pcie-root-port-1.0"; 95*b2d2a78aSEmmanuel Vadot reg = <0xc0000000 0x20000000>, 96*b2d2a78aSEmmanuel Vadot <0xff220000 0x00004000>; 97*b2d2a78aSEmmanuel Vadot reg-names = "Txs", "Cra"; 98*b2d2a78aSEmmanuel Vadot interrupt-parent = <&hps_0_arm_gic_0>; 99*b2d2a78aSEmmanuel Vadot interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 100*b2d2a78aSEmmanuel Vadot interrupt-controller; 101*b2d2a78aSEmmanuel Vadot #interrupt-cells = <1>; 102*b2d2a78aSEmmanuel Vadot bus-range = <0x0 0xff>; 103*b2d2a78aSEmmanuel Vadot device_type = "pci"; 104*b2d2a78aSEmmanuel Vadot msi-parent = <&msi_to_gic_gen_0>; 105*b2d2a78aSEmmanuel Vadot #address-cells = <3>; 106*b2d2a78aSEmmanuel Vadot #size-cells = <2>; 107*b2d2a78aSEmmanuel Vadot interrupt-map-mask = <0 0 0 7>; 108*b2d2a78aSEmmanuel Vadot interrupt-map = <0 0 0 1 &pcie_0 0 0 0 1>, 109*b2d2a78aSEmmanuel Vadot <0 0 0 2 &pcie_0 0 0 0 2>, 110*b2d2a78aSEmmanuel Vadot <0 0 0 3 &pcie_0 0 0 0 3>, 111*b2d2a78aSEmmanuel Vadot <0 0 0 4 &pcie_0 0 0 0 4>; 112*b2d2a78aSEmmanuel Vadot ranges = <0x82000000 0x00000000 0x00000000 0xc0000000 0x00000000 0x10000000>, 113*b2d2a78aSEmmanuel Vadot <0x82000000 0x00000000 0x10000000 0xd0000000 0x00000000 0x10000000>; 114*b2d2a78aSEmmanuel Vadot }; 115