xref: /linux/Documentation/devicetree/bindings/pci/sophgo,sg2044-pcie.yaml (revision 0bd0a41a5120f78685a132834865b0a631b9026a)
1*a202f09eSInochi Amaoto# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*a202f09eSInochi Amaoto%YAML 1.2
3*a202f09eSInochi Amaoto---
4*a202f09eSInochi Amaoto$id: http://devicetree.org/schemas/pci/sophgo,sg2044-pcie.yaml#
5*a202f09eSInochi Amaoto$schema: http://devicetree.org/meta-schemas/core.yaml#
6*a202f09eSInochi Amaoto
7*a202f09eSInochi Amaototitle: DesignWare based PCIe Root Complex controller on Sophgo SoCs
8*a202f09eSInochi Amaoto
9*a202f09eSInochi Amaotomaintainers:
10*a202f09eSInochi Amaoto  - Inochi Amaoto <inochiama@gmail.com>
11*a202f09eSInochi Amaoto
12*a202f09eSInochi Amaotodescription:
13*a202f09eSInochi Amaoto  SG2044 SoC PCIe Root Complex controller is based on the Synopsys DesignWare
14*a202f09eSInochi Amaoto  PCIe IP and thus inherits all the common properties defined in
15*a202f09eSInochi Amaoto  snps,dw-pcie.yaml.
16*a202f09eSInochi Amaoto
17*a202f09eSInochi AmaotoallOf:
18*a202f09eSInochi Amaoto  - $ref: /schemas/pci/pci-host-bridge.yaml#
19*a202f09eSInochi Amaoto  - $ref: /schemas/pci/snps,dw-pcie.yaml#
20*a202f09eSInochi Amaoto
21*a202f09eSInochi Amaotoproperties:
22*a202f09eSInochi Amaoto  compatible:
23*a202f09eSInochi Amaoto    const: sophgo,sg2044-pcie
24*a202f09eSInochi Amaoto
25*a202f09eSInochi Amaoto  reg:
26*a202f09eSInochi Amaoto    items:
27*a202f09eSInochi Amaoto      - description: Data Bus Interface (DBI) registers
28*a202f09eSInochi Amaoto      - description: iATU registers
29*a202f09eSInochi Amaoto      - description: Config registers
30*a202f09eSInochi Amaoto      - description: Sophgo designed configuration registers
31*a202f09eSInochi Amaoto
32*a202f09eSInochi Amaoto  reg-names:
33*a202f09eSInochi Amaoto    items:
34*a202f09eSInochi Amaoto      - const: dbi
35*a202f09eSInochi Amaoto      - const: atu
36*a202f09eSInochi Amaoto      - const: config
37*a202f09eSInochi Amaoto      - const: app
38*a202f09eSInochi Amaoto
39*a202f09eSInochi Amaoto  clocks:
40*a202f09eSInochi Amaoto    items:
41*a202f09eSInochi Amaoto      - description: core clk
42*a202f09eSInochi Amaoto
43*a202f09eSInochi Amaoto  clock-names:
44*a202f09eSInochi Amaoto    items:
45*a202f09eSInochi Amaoto      - const: core
46*a202f09eSInochi Amaoto
47*a202f09eSInochi Amaoto  interrupt-controller:
48*a202f09eSInochi Amaoto    description: Interrupt controller node for handling legacy PCI interrupts.
49*a202f09eSInochi Amaoto    type: object
50*a202f09eSInochi Amaoto
51*a202f09eSInochi Amaoto    properties:
52*a202f09eSInochi Amaoto      "#address-cells":
53*a202f09eSInochi Amaoto        const: 0
54*a202f09eSInochi Amaoto
55*a202f09eSInochi Amaoto      "#interrupt-cells":
56*a202f09eSInochi Amaoto        const: 1
57*a202f09eSInochi Amaoto
58*a202f09eSInochi Amaoto      interrupt-controller: true
59*a202f09eSInochi Amaoto
60*a202f09eSInochi Amaoto      interrupts:
61*a202f09eSInochi Amaoto        items:
62*a202f09eSInochi Amaoto          - description: combined legacy interrupt
63*a202f09eSInochi Amaoto
64*a202f09eSInochi Amaoto    required:
65*a202f09eSInochi Amaoto      - "#address-cells"
66*a202f09eSInochi Amaoto      - "#interrupt-cells"
67*a202f09eSInochi Amaoto      - interrupt-controller
68*a202f09eSInochi Amaoto      - interrupts
69*a202f09eSInochi Amaoto
70*a202f09eSInochi Amaoto    additionalProperties: false
71*a202f09eSInochi Amaoto
72*a202f09eSInochi Amaoto  msi-parent: true
73*a202f09eSInochi Amaoto
74*a202f09eSInochi Amaoto  ranges:
75*a202f09eSInochi Amaoto    maxItems: 5
76*a202f09eSInochi Amaoto
77*a202f09eSInochi Amaotorequired:
78*a202f09eSInochi Amaoto  - compatible
79*a202f09eSInochi Amaoto  - reg
80*a202f09eSInochi Amaoto  - clocks
81*a202f09eSInochi Amaoto
82*a202f09eSInochi AmaotounevaluatedProperties: false
83*a202f09eSInochi Amaoto
84*a202f09eSInochi Amaotoexamples:
85*a202f09eSInochi Amaoto  - |
86*a202f09eSInochi Amaoto    #include <dt-bindings/interrupt-controller/irq.h>
87*a202f09eSInochi Amaoto
88*a202f09eSInochi Amaoto    soc {
89*a202f09eSInochi Amaoto      #address-cells = <2>;
90*a202f09eSInochi Amaoto      #size-cells = <2>;
91*a202f09eSInochi Amaoto
92*a202f09eSInochi Amaoto      pcie@6c00400000 {
93*a202f09eSInochi Amaoto        compatible = "sophgo,sg2044-pcie";
94*a202f09eSInochi Amaoto        reg = <0x6c 0x00400000 0x0 0x00001000>,
95*a202f09eSInochi Amaoto              <0x6c 0x00700000 0x0 0x00004000>,
96*a202f09eSInochi Amaoto              <0x40 0x00000000 0x0 0x00001000>,
97*a202f09eSInochi Amaoto              <0x6c 0x00780c00 0x0 0x00000400>;
98*a202f09eSInochi Amaoto        reg-names = "dbi", "atu", "config", "app";
99*a202f09eSInochi Amaoto        #address-cells = <3>;
100*a202f09eSInochi Amaoto        #size-cells = <2>;
101*a202f09eSInochi Amaoto        bus-range = <0x00 0xff>;
102*a202f09eSInochi Amaoto        clocks = <&clk 0>;
103*a202f09eSInochi Amaoto        clock-names = "core";
104*a202f09eSInochi Amaoto        device_type = "pci";
105*a202f09eSInochi Amaoto        linux,pci-domain = <0>;
106*a202f09eSInochi Amaoto        msi-parent = <&msi>;
107*a202f09eSInochi Amaoto        ranges = <0x01000000 0x0  0x00000000  0x40 0x10000000  0x0 0x00200000>,
108*a202f09eSInochi Amaoto                 <0x42000000 0x0  0x00000000  0x0  0x00000000  0x0 0x04000000>,
109*a202f09eSInochi Amaoto                 <0x02000000 0x0  0x04000000  0x0  0x04000000  0x0 0x04000000>,
110*a202f09eSInochi Amaoto                 <0x43000000 0x42 0x00000000  0x42 0x00000000  0x2 0x00000000>,
111*a202f09eSInochi Amaoto                 <0x03000000 0x41 0x00000000  0x41 0x00000000  0x1 0x00000000>;
112*a202f09eSInochi Amaoto
113*a202f09eSInochi Amaoto        interrupt-controller {
114*a202f09eSInochi Amaoto          #address-cells = <0>;
115*a202f09eSInochi Amaoto          #interrupt-cells = <1>;
116*a202f09eSInochi Amaoto          interrupt-controller;
117*a202f09eSInochi Amaoto          interrupt-parent = <&intc>;
118*a202f09eSInochi Amaoto          interrupts = <64 IRQ_TYPE_LEVEL_HIGH>;
119*a202f09eSInochi Amaoto        };
120*a202f09eSInochi Amaoto      };
121*a202f09eSInochi Amaoto    };
122*a202f09eSInochi Amaoto...
123