xref: /freebsd/sys/contrib/device-tree/Bindings/pci/altr,pcie-root-port.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
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