xref: /freebsd/sys/contrib/device-tree/Bindings/pci/marvell,armada8k-pcie.yaml (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
1*ae5de77eSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2*ae5de77eSEmmanuel Vadot%YAML 1.2
3*ae5de77eSEmmanuel Vadot---
4*ae5de77eSEmmanuel Vadot$id: http://devicetree.org/schemas/pci/marvell,armada8k-pcie.yaml#
5*ae5de77eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*ae5de77eSEmmanuel Vadot
7*ae5de77eSEmmanuel Vadottitle: Marvell Armada 7K/8K PCIe interface
8*ae5de77eSEmmanuel Vadot
9*ae5de77eSEmmanuel Vadotmaintainers:
10*ae5de77eSEmmanuel Vadot  - Thomas Petazzoni <thomas.petazzoni@bootlin.com>
11*ae5de77eSEmmanuel Vadot
12*ae5de77eSEmmanuel Vadotdescription:
13*ae5de77eSEmmanuel Vadot  This PCIe host controller is based on the Synopsys DesignWare PCIe IP.
14*ae5de77eSEmmanuel Vadot
15*ae5de77eSEmmanuel Vadotselect:
16*ae5de77eSEmmanuel Vadot  properties:
17*ae5de77eSEmmanuel Vadot    compatible:
18*ae5de77eSEmmanuel Vadot      contains:
19*ae5de77eSEmmanuel Vadot        enum:
20*ae5de77eSEmmanuel Vadot          - marvell,armada8k-pcie
21*ae5de77eSEmmanuel Vadot  required:
22*ae5de77eSEmmanuel Vadot    - compatible
23*ae5de77eSEmmanuel Vadot
24*ae5de77eSEmmanuel VadotallOf:
25*ae5de77eSEmmanuel Vadot  - $ref: snps,dw-pcie.yaml#
26*ae5de77eSEmmanuel Vadot
27*ae5de77eSEmmanuel Vadotproperties:
28*ae5de77eSEmmanuel Vadot  compatible:
29*ae5de77eSEmmanuel Vadot    items:
30*ae5de77eSEmmanuel Vadot      - enum:
31*ae5de77eSEmmanuel Vadot          - marvell,armada8k-pcie
32*ae5de77eSEmmanuel Vadot      - const: snps,dw-pcie
33*ae5de77eSEmmanuel Vadot
34*ae5de77eSEmmanuel Vadot  reg:
35*ae5de77eSEmmanuel Vadot    maxItems: 2
36*ae5de77eSEmmanuel Vadot
37*ae5de77eSEmmanuel Vadot  reg-names:
38*ae5de77eSEmmanuel Vadot    items:
39*ae5de77eSEmmanuel Vadot      - const: ctrl
40*ae5de77eSEmmanuel Vadot      - const: config
41*ae5de77eSEmmanuel Vadot
42*ae5de77eSEmmanuel Vadot  clocks:
43*ae5de77eSEmmanuel Vadot    minItems: 1
44*ae5de77eSEmmanuel Vadot    maxItems: 2
45*ae5de77eSEmmanuel Vadot
46*ae5de77eSEmmanuel Vadot  clock-names:
47*ae5de77eSEmmanuel Vadot    items:
48*ae5de77eSEmmanuel Vadot      - const: core
49*ae5de77eSEmmanuel Vadot      - const: reg
50*ae5de77eSEmmanuel Vadot
51*ae5de77eSEmmanuel Vadot  interrupts:
52*ae5de77eSEmmanuel Vadot    maxItems: 1
53*ae5de77eSEmmanuel Vadot
54*ae5de77eSEmmanuel Vadot  msi-parent:
55*ae5de77eSEmmanuel Vadot    maxItems: 1
56*ae5de77eSEmmanuel Vadot
57*ae5de77eSEmmanuel Vadot  phys:
58*ae5de77eSEmmanuel Vadot    minItems: 1
59*ae5de77eSEmmanuel Vadot    maxItems: 4
60*ae5de77eSEmmanuel Vadot
61*ae5de77eSEmmanuel Vadot  phy-names:
62*ae5de77eSEmmanuel Vadot    minItems: 1
63*ae5de77eSEmmanuel Vadot    maxItems: 4
64*ae5de77eSEmmanuel Vadot
65*ae5de77eSEmmanuel Vadot  marvell,reset-gpio:
66*ae5de77eSEmmanuel Vadot    maxItems: 1
67*ae5de77eSEmmanuel Vadot    deprecated: true
68*ae5de77eSEmmanuel Vadot
69*ae5de77eSEmmanuel Vadotrequired:
70*ae5de77eSEmmanuel Vadot  - interrupt-map
71*ae5de77eSEmmanuel Vadot  - clocks
72*ae5de77eSEmmanuel Vadot  - msi-parent
73*ae5de77eSEmmanuel Vadot
74*ae5de77eSEmmanuel VadotunevaluatedProperties: false
75*ae5de77eSEmmanuel Vadot
76*ae5de77eSEmmanuel Vadotexamples:
77*ae5de77eSEmmanuel Vadot  - |
78*ae5de77eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
79*ae5de77eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
80*ae5de77eSEmmanuel Vadot
81*ae5de77eSEmmanuel Vadot    pcie@f2600000 {
82*ae5de77eSEmmanuel Vadot        compatible = "marvell,armada8k-pcie", "snps,dw-pcie";
83*ae5de77eSEmmanuel Vadot        reg = <0xf2600000 0x10000>, <0xf6f00000 0x80000>;
84*ae5de77eSEmmanuel Vadot        reg-names = "ctrl", "config";
85*ae5de77eSEmmanuel Vadot        #address-cells = <3>;
86*ae5de77eSEmmanuel Vadot        #size-cells = <2>;
87*ae5de77eSEmmanuel Vadot        #interrupt-cells = <1>;
88*ae5de77eSEmmanuel Vadot        device_type = "pci";
89*ae5de77eSEmmanuel Vadot        dma-coherent;
90*ae5de77eSEmmanuel Vadot        msi-parent = <&gic_v2m0>;
91*ae5de77eSEmmanuel Vadot
92*ae5de77eSEmmanuel Vadot        ranges = <0x81000000 0 0xf9000000 0xf9000000 0 0x10000>,  /* downstream I/O */
93*ae5de77eSEmmanuel Vadot                 <0x82000000 0 0xf6000000 0xf6000000 0 0xf00000>;  /* non-prefetchable memory */
94*ae5de77eSEmmanuel Vadot        interrupt-map-mask = <0 0 0 0>;
95*ae5de77eSEmmanuel Vadot        interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
96*ae5de77eSEmmanuel Vadot        interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
97*ae5de77eSEmmanuel Vadot        num-lanes = <1>;
98*ae5de77eSEmmanuel Vadot        clocks = <&cpm_syscon0 1 13>;
99*ae5de77eSEmmanuel Vadot    };
100*ae5de77eSEmmanuel Vadot...
101