xref: /freebsd/sys/contrib/device-tree/Bindings/pci/axis,artpec6-pcie.yaml (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1*833e5d42SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*833e5d42SEmmanuel Vadot# Copyright 2025 Axis AB
3*833e5d42SEmmanuel Vadot%YAML 1.2
4*833e5d42SEmmanuel Vadot---
5*833e5d42SEmmanuel Vadot$id: http://devicetree.org/schemas/pci/axis,artpec6-pcie.yaml#
6*833e5d42SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
7*833e5d42SEmmanuel Vadot
8*833e5d42SEmmanuel Vadottitle: Axis ARTPEC-6 PCIe host controller
9*833e5d42SEmmanuel Vadot
10*833e5d42SEmmanuel Vadotmaintainers:
11*833e5d42SEmmanuel Vadot  - Jesper Nilsson <jesper.nilsson@axis.com>
12*833e5d42SEmmanuel Vadot
13*833e5d42SEmmanuel Vadotdescription:
14*833e5d42SEmmanuel Vadot  This PCIe host controller is based on the Synopsys DesignWare PCIe IP.
15*833e5d42SEmmanuel Vadot
16*833e5d42SEmmanuel Vadotselect:
17*833e5d42SEmmanuel Vadot  properties:
18*833e5d42SEmmanuel Vadot    compatible:
19*833e5d42SEmmanuel Vadot      contains:
20*833e5d42SEmmanuel Vadot        enum:
21*833e5d42SEmmanuel Vadot          - axis,artpec6-pcie
22*833e5d42SEmmanuel Vadot          - axis,artpec6-pcie-ep
23*833e5d42SEmmanuel Vadot          - axis,artpec7-pcie
24*833e5d42SEmmanuel Vadot          - axis,artpec7-pcie-ep
25*833e5d42SEmmanuel Vadot  required:
26*833e5d42SEmmanuel Vadot    - compatible
27*833e5d42SEmmanuel Vadot
28*833e5d42SEmmanuel Vadotproperties:
29*833e5d42SEmmanuel Vadot  compatible:
30*833e5d42SEmmanuel Vadot    items:
31*833e5d42SEmmanuel Vadot      - enum:
32*833e5d42SEmmanuel Vadot          - axis,artpec6-pcie
33*833e5d42SEmmanuel Vadot          - axis,artpec6-pcie-ep
34*833e5d42SEmmanuel Vadot          - axis,artpec7-pcie
35*833e5d42SEmmanuel Vadot          - axis,artpec7-pcie-ep
36*833e5d42SEmmanuel Vadot      - const: snps,dw-pcie
37*833e5d42SEmmanuel Vadot
38*833e5d42SEmmanuel Vadot  reg:
39*833e5d42SEmmanuel Vadot    minItems: 3
40*833e5d42SEmmanuel Vadot    maxItems: 4
41*833e5d42SEmmanuel Vadot
42*833e5d42SEmmanuel Vadot  reg-names:
43*833e5d42SEmmanuel Vadot    minItems: 3
44*833e5d42SEmmanuel Vadot    maxItems: 4
45*833e5d42SEmmanuel Vadot
46*833e5d42SEmmanuel Vadot  interrupts:
47*833e5d42SEmmanuel Vadot    maxItems: 1
48*833e5d42SEmmanuel Vadot
49*833e5d42SEmmanuel Vadot  interrupt-names:
50*833e5d42SEmmanuel Vadot    items:
51*833e5d42SEmmanuel Vadot      - const: msi
52*833e5d42SEmmanuel Vadot
53*833e5d42SEmmanuel Vadot  axis,syscon-pcie:
54*833e5d42SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
55*833e5d42SEmmanuel Vadot    description:
56*833e5d42SEmmanuel Vadot      System controller phandle used to enable and control the Synopsys IP.
57*833e5d42SEmmanuel Vadot
58*833e5d42SEmmanuel Vadotrequired:
59*833e5d42SEmmanuel Vadot  - compatible
60*833e5d42SEmmanuel Vadot  - reg
61*833e5d42SEmmanuel Vadot  - reg-names
62*833e5d42SEmmanuel Vadot  - interrupts
63*833e5d42SEmmanuel Vadot  - interrupt-names
64*833e5d42SEmmanuel Vadot  - axis,syscon-pcie
65*833e5d42SEmmanuel Vadot
66*833e5d42SEmmanuel VadotoneOf:
67*833e5d42SEmmanuel Vadot  - $ref: snps,dw-pcie.yaml#
68*833e5d42SEmmanuel Vadot    properties:
69*833e5d42SEmmanuel Vadot      reg:
70*833e5d42SEmmanuel Vadot        maxItems: 3
71*833e5d42SEmmanuel Vadot
72*833e5d42SEmmanuel Vadot      reg-names:
73*833e5d42SEmmanuel Vadot        items:
74*833e5d42SEmmanuel Vadot          - const: dbi
75*833e5d42SEmmanuel Vadot          - const: phy
76*833e5d42SEmmanuel Vadot          - const: config
77*833e5d42SEmmanuel Vadot
78*833e5d42SEmmanuel Vadot  - $ref: snps,dw-pcie-ep.yaml#
79*833e5d42SEmmanuel Vadot    properties:
80*833e5d42SEmmanuel Vadot      reg:
81*833e5d42SEmmanuel Vadot        minItems: 4
82*833e5d42SEmmanuel Vadot
83*833e5d42SEmmanuel Vadot      reg-names:
84*833e5d42SEmmanuel Vadot        items:
85*833e5d42SEmmanuel Vadot          - const: dbi
86*833e5d42SEmmanuel Vadot          - const: dbi2
87*833e5d42SEmmanuel Vadot          - const: phy
88*833e5d42SEmmanuel Vadot          - const: addr_space
89*833e5d42SEmmanuel Vadot
90*833e5d42SEmmanuel VadotunevaluatedProperties: false
91*833e5d42SEmmanuel Vadot
92*833e5d42SEmmanuel Vadotexamples:
93*833e5d42SEmmanuel Vadot  - |
94*833e5d42SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
95*833e5d42SEmmanuel Vadot
96*833e5d42SEmmanuel Vadot    pcie@f8050000 {
97*833e5d42SEmmanuel Vadot        compatible = "axis,artpec6-pcie", "snps,dw-pcie";
98*833e5d42SEmmanuel Vadot        device_type = "pci";
99*833e5d42SEmmanuel Vadot        reg = <0xf8050000 0x2000
100*833e5d42SEmmanuel Vadot              0xf8040000 0x1000
101*833e5d42SEmmanuel Vadot              0xc0000000 0x2000>;
102*833e5d42SEmmanuel Vadot        reg-names = "dbi", "phy", "config";
103*833e5d42SEmmanuel Vadot        #address-cells = <3>;
104*833e5d42SEmmanuel Vadot        #size-cells = <2>;
105*833e5d42SEmmanuel Vadot        ranges = <0x81000000 0 0 0xc0002000 0 0x00010000>,
106*833e5d42SEmmanuel Vadot                 <0x82000000 0 0xc0012000 0xc0012000 0 0x1ffee000>;
107*833e5d42SEmmanuel Vadot        num-lanes = <2>;
108*833e5d42SEmmanuel Vadot        bus-range = <0x00 0xff>;
109*833e5d42SEmmanuel Vadot        interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
110*833e5d42SEmmanuel Vadot        interrupt-names = "msi";
111*833e5d42SEmmanuel Vadot        #interrupt-cells = <1>;
112*833e5d42SEmmanuel Vadot        interrupt-map-mask = <0 0 0 0x7>;
113*833e5d42SEmmanuel Vadot        interrupt-map = <0 0 0 1 &intc GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
114*833e5d42SEmmanuel Vadot                        <0 0 0 2 &intc GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
115*833e5d42SEmmanuel Vadot                        <0 0 0 3 &intc GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
116*833e5d42SEmmanuel Vadot                        <0 0 0 4 &intc GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
117*833e5d42SEmmanuel Vadot        axis,syscon-pcie = <&syscon>;
118*833e5d42SEmmanuel Vadot    };
119