xref: /freebsd/sys/contrib/device-tree/Bindings/pci/socionext,uniphier-pcie.yaml (revision d5b0e70f7e04d971691517ce1304d86a1e367e2e)
1*d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*d5b0e70fSEmmanuel Vadot%YAML 1.2
3*d5b0e70fSEmmanuel Vadot---
4*d5b0e70fSEmmanuel Vadot$id: http://devicetree.org/schemas/pci/socionext,uniphier-pcie.yaml#
5*d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*d5b0e70fSEmmanuel Vadot
7*d5b0e70fSEmmanuel Vadottitle: Socionext UniPhier PCIe host controller
8*d5b0e70fSEmmanuel Vadot
9*d5b0e70fSEmmanuel Vadotdescription: |
10*d5b0e70fSEmmanuel Vadot  UniPhier PCIe host controller is based on the Synopsys DesignWare
11*d5b0e70fSEmmanuel Vadot  PCI core. It shares common features with the PCIe DesignWare core and
12*d5b0e70fSEmmanuel Vadot  inherits common properties defined in
13*d5b0e70fSEmmanuel Vadot  Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml.
14*d5b0e70fSEmmanuel Vadot
15*d5b0e70fSEmmanuel Vadotmaintainers:
16*d5b0e70fSEmmanuel Vadot  - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
17*d5b0e70fSEmmanuel Vadot
18*d5b0e70fSEmmanuel VadotallOf:
19*d5b0e70fSEmmanuel Vadot  - $ref: /schemas/pci/snps,dw-pcie.yaml#
20*d5b0e70fSEmmanuel Vadot
21*d5b0e70fSEmmanuel Vadotproperties:
22*d5b0e70fSEmmanuel Vadot  compatible:
23*d5b0e70fSEmmanuel Vadot    enum:
24*d5b0e70fSEmmanuel Vadot      - socionext,uniphier-pcie
25*d5b0e70fSEmmanuel Vadot
26*d5b0e70fSEmmanuel Vadot  reg:
27*d5b0e70fSEmmanuel Vadot    minItems: 3
28*d5b0e70fSEmmanuel Vadot    maxItems: 4
29*d5b0e70fSEmmanuel Vadot
30*d5b0e70fSEmmanuel Vadot  reg-names:
31*d5b0e70fSEmmanuel Vadot    minItems: 3
32*d5b0e70fSEmmanuel Vadot    items:
33*d5b0e70fSEmmanuel Vadot      - const: dbi
34*d5b0e70fSEmmanuel Vadot      - const: link
35*d5b0e70fSEmmanuel Vadot      - const: config
36*d5b0e70fSEmmanuel Vadot      - const: atu
37*d5b0e70fSEmmanuel Vadot
38*d5b0e70fSEmmanuel Vadot  clocks:
39*d5b0e70fSEmmanuel Vadot    maxItems: 1
40*d5b0e70fSEmmanuel Vadot
41*d5b0e70fSEmmanuel Vadot  resets:
42*d5b0e70fSEmmanuel Vadot    maxItems: 1
43*d5b0e70fSEmmanuel Vadot
44*d5b0e70fSEmmanuel Vadot  num-viewport: true
45*d5b0e70fSEmmanuel Vadot
46*d5b0e70fSEmmanuel Vadot  num-lanes: true
47*d5b0e70fSEmmanuel Vadot
48*d5b0e70fSEmmanuel Vadot  phys:
49*d5b0e70fSEmmanuel Vadot    maxItems: 1
50*d5b0e70fSEmmanuel Vadot
51*d5b0e70fSEmmanuel Vadot  phy-names:
52*d5b0e70fSEmmanuel Vadot    const: pcie-phy
53*d5b0e70fSEmmanuel Vadot
54*d5b0e70fSEmmanuel Vadot  interrupt-controller:
55*d5b0e70fSEmmanuel Vadot    type: object
56*d5b0e70fSEmmanuel Vadot    additionalProperties: false
57*d5b0e70fSEmmanuel Vadot
58*d5b0e70fSEmmanuel Vadot    properties:
59*d5b0e70fSEmmanuel Vadot      interrupt-controller: true
60*d5b0e70fSEmmanuel Vadot
61*d5b0e70fSEmmanuel Vadot      '#interrupt-cells':
62*d5b0e70fSEmmanuel Vadot        const: 1
63*d5b0e70fSEmmanuel Vadot
64*d5b0e70fSEmmanuel Vadot      interrupts:
65*d5b0e70fSEmmanuel Vadot        maxItems: 1
66*d5b0e70fSEmmanuel Vadot
67*d5b0e70fSEmmanuel Vadotrequired:
68*d5b0e70fSEmmanuel Vadot  - compatible
69*d5b0e70fSEmmanuel Vadot  - reg
70*d5b0e70fSEmmanuel Vadot  - reg-names
71*d5b0e70fSEmmanuel Vadot  - clocks
72*d5b0e70fSEmmanuel Vadot  - resets
73*d5b0e70fSEmmanuel Vadot
74*d5b0e70fSEmmanuel VadotunevaluatedProperties: false
75*d5b0e70fSEmmanuel Vadot
76*d5b0e70fSEmmanuel Vadotexamples:
77*d5b0e70fSEmmanuel Vadot  - |
78*d5b0e70fSEmmanuel Vadot    bus {
79*d5b0e70fSEmmanuel Vadot        gic: interrupt-controller {
80*d5b0e70fSEmmanuel Vadot            interrupt-controller;
81*d5b0e70fSEmmanuel Vadot            #interrupt-cells = <3>;
82*d5b0e70fSEmmanuel Vadot        };
83*d5b0e70fSEmmanuel Vadot    };
84*d5b0e70fSEmmanuel Vadot
85*d5b0e70fSEmmanuel Vadot    pcie: pcie@66000000 {
86*d5b0e70fSEmmanuel Vadot        compatible = "socionext,uniphier-pcie";
87*d5b0e70fSEmmanuel Vadot        reg-names = "dbi", "link", "config";
88*d5b0e70fSEmmanuel Vadot        reg = <0x66000000 0x1000>, <0x66010000 0x10000>, <0x2fff0000 0x10000>;
89*d5b0e70fSEmmanuel Vadot        #address-cells = <3>;
90*d5b0e70fSEmmanuel Vadot        #size-cells = <2>;
91*d5b0e70fSEmmanuel Vadot        clocks = <&sys_clk 24>;
92*d5b0e70fSEmmanuel Vadot        resets = <&sys_rst 24>;
93*d5b0e70fSEmmanuel Vadot        num-lanes = <1>;
94*d5b0e70fSEmmanuel Vadot        num-viewport = <1>;
95*d5b0e70fSEmmanuel Vadot        bus-range = <0x0 0xff>;
96*d5b0e70fSEmmanuel Vadot        device_type = "pci";
97*d5b0e70fSEmmanuel Vadot        ranges = <0x81000000 0 0x00000000  0x2ffe0000  0 0x00010000>,
98*d5b0e70fSEmmanuel Vadot                 <0x82000000 0 0x00000000  0x20000000  0 0x0ffe0000>;
99*d5b0e70fSEmmanuel Vadot        phy-names = "pcie-phy";
100*d5b0e70fSEmmanuel Vadot        phys = <&pcie_phy>;
101*d5b0e70fSEmmanuel Vadot        #interrupt-cells = <1>;
102*d5b0e70fSEmmanuel Vadot        interrupt-names = "dma", "msi";
103*d5b0e70fSEmmanuel Vadot        interrupt-parent = <&gic>;
104*d5b0e70fSEmmanuel Vadot        interrupts = <0 224 4>, <0 225 4>;
105*d5b0e70fSEmmanuel Vadot        interrupt-map-mask = <0 0 0  7>;
106*d5b0e70fSEmmanuel Vadot        interrupt-map = <0 0 0  1  &pcie_intc 0>,
107*d5b0e70fSEmmanuel Vadot                        <0 0 0  2  &pcie_intc 1>,
108*d5b0e70fSEmmanuel Vadot                        <0 0 0  3  &pcie_intc 2>,
109*d5b0e70fSEmmanuel Vadot                        <0 0 0  4  &pcie_intc 3>;
110*d5b0e70fSEmmanuel Vadot
111*d5b0e70fSEmmanuel Vadot        pcie_intc: interrupt-controller {
112*d5b0e70fSEmmanuel Vadot            interrupt-controller;
113*d5b0e70fSEmmanuel Vadot            #interrupt-cells = <1>;
114*d5b0e70fSEmmanuel Vadot            interrupt-parent = <&gic>;
115*d5b0e70fSEmmanuel Vadot            interrupts = <0 226 4>;
116*d5b0e70fSEmmanuel Vadot        };
117*d5b0e70fSEmmanuel Vadot    };
118