xref: /linux/Documentation/devicetree/bindings/pci/amlogic,axg-pcie.yaml (revision c771600c6af14749609b49565ffb4cac2959710d)
1b80b848bSNeil Armstrong# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2b80b848bSNeil Armstrong%YAML 1.2
3b80b848bSNeil Armstrong---
4b80b848bSNeil Armstrong$id: http://devicetree.org/schemas/pci/amlogic,axg-pcie.yaml#
5b80b848bSNeil Armstrong$schema: http://devicetree.org/meta-schemas/core.yaml#
6b80b848bSNeil Armstrong
7b80b848bSNeil Armstrongtitle: Amlogic Meson AXG DWC PCIe SoC controller
8b80b848bSNeil Armstrong
9b80b848bSNeil Armstrongmaintainers:
10b80b848bSNeil Armstrong  - Neil Armstrong <neil.armstrong@linaro.org>
11b80b848bSNeil Armstrong
12b80b848bSNeil Armstrongdescription:
13b80b848bSNeil Armstrong  Amlogic Meson PCIe host controller is based on the Synopsys DesignWare PCI core.
14b80b848bSNeil Armstrong
15b80b848bSNeil ArmstrongallOf:
16*5db62b7dSKrzysztof Kozlowski  - $ref: /schemas/pci/pci-host-bridge.yaml#
17b80b848bSNeil Armstrong  - $ref: /schemas/pci/snps,dw-pcie-common.yaml#
18b80b848bSNeil Armstrong
19b80b848bSNeil Armstrong# We need a select here so we don't match all nodes with 'snps,dw-pcie'
20b80b848bSNeil Armstrongselect:
21b80b848bSNeil Armstrong  properties:
22b80b848bSNeil Armstrong    compatible:
23b80b848bSNeil Armstrong      enum:
24b80b848bSNeil Armstrong        - amlogic,axg-pcie
25b80b848bSNeil Armstrong        - amlogic,g12a-pcie
26b80b848bSNeil Armstrong  required:
27b80b848bSNeil Armstrong    - compatible
28b80b848bSNeil Armstrong
29b80b848bSNeil Armstrongproperties:
30b80b848bSNeil Armstrong  compatible:
31b80b848bSNeil Armstrong    items:
32b80b848bSNeil Armstrong      - enum:
33b80b848bSNeil Armstrong          - amlogic,axg-pcie
34b80b848bSNeil Armstrong          - amlogic,g12a-pcie
35b80b848bSNeil Armstrong      - const: snps,dw-pcie
36b80b848bSNeil Armstrong
37b80b848bSNeil Armstrong  reg:
38b80b848bSNeil Armstrong    items:
39b80b848bSNeil Armstrong      - description: External local bus interface registers
40b80b848bSNeil Armstrong      - description: Meson designed configuration registers
41b80b848bSNeil Armstrong      - description: PCIe configuration space
42b80b848bSNeil Armstrong
43b80b848bSNeil Armstrong  reg-names:
44b80b848bSNeil Armstrong    items:
45b80b848bSNeil Armstrong      - const: elbi
46b80b848bSNeil Armstrong      - const: cfg
47b80b848bSNeil Armstrong      - const: config
48b80b848bSNeil Armstrong
49b80b848bSNeil Armstrong  interrupts:
50b80b848bSNeil Armstrong    maxItems: 1
51b80b848bSNeil Armstrong
52b80b848bSNeil Armstrong  clocks:
53b80b848bSNeil Armstrong    items:
54b80b848bSNeil Armstrong      - description: PCIe GEN 100M PLL clock
55b80b848bSNeil Armstrong      - description: PCIe RC clock gate
56b80b848bSNeil Armstrong      - description: PCIe PHY clock
57b80b848bSNeil Armstrong
58b80b848bSNeil Armstrong  clock-names:
59b80b848bSNeil Armstrong    items:
60b80b848bSNeil Armstrong      - const: pclk
61b80b848bSNeil Armstrong      - const: port
62b80b848bSNeil Armstrong      - const: general
63b80b848bSNeil Armstrong
64b80b848bSNeil Armstrong  phys:
65b80b848bSNeil Armstrong    maxItems: 1
66b80b848bSNeil Armstrong
67b80b848bSNeil Armstrong  phy-names:
68b80b848bSNeil Armstrong    const: pcie
69b80b848bSNeil Armstrong
70b80b848bSNeil Armstrong  resets:
71b80b848bSNeil Armstrong    items:
72b80b848bSNeil Armstrong      - description: Port Reset
73b80b848bSNeil Armstrong      - description: Shared APB reset
74b80b848bSNeil Armstrong
75b80b848bSNeil Armstrong  reset-names:
76b80b848bSNeil Armstrong    items:
77b80b848bSNeil Armstrong      - const: port
78b80b848bSNeil Armstrong      - const: apb
79b80b848bSNeil Armstrong
80b80b848bSNeil Armstrong  num-lanes:
81b80b848bSNeil Armstrong    const: 1
82b80b848bSNeil Armstrong
83b80b848bSNeil Armstrong  power-domains:
84b80b848bSNeil Armstrong    maxItems: 1
85b80b848bSNeil Armstrong
86b80b848bSNeil Armstrongrequired:
87b80b848bSNeil Armstrong  - compatible
88b80b848bSNeil Armstrong  - reg
89b80b848bSNeil Armstrong  - reg-names
90b80b848bSNeil Armstrong  - interrupts
91b80b848bSNeil Armstrong  - clock
92b80b848bSNeil Armstrong  - clock-names
93b80b848bSNeil Armstrong  - "#address-cells"
94b80b848bSNeil Armstrong  - "#size-cells"
95b80b848bSNeil Armstrong  - "#interrupt-cells"
96b80b848bSNeil Armstrong  - interrupt-map
97b80b848bSNeil Armstrong  - interrupt-map-mask
98b80b848bSNeil Armstrong  - ranges
99b80b848bSNeil Armstrong  - bus-range
100b80b848bSNeil Armstrong  - device_type
101b80b848bSNeil Armstrong  - num-lanes
102b80b848bSNeil Armstrong  - phys
103b80b848bSNeil Armstrong  - phy-names
104b80b848bSNeil Armstrong  - resets
105b80b848bSNeil Armstrong  - reset-names
106b80b848bSNeil Armstrong
107b80b848bSNeil ArmstrongunevaluatedProperties: false
108b80b848bSNeil Armstrong
109b80b848bSNeil Armstrongexamples:
110b80b848bSNeil Armstrong  - |
111b80b848bSNeil Armstrong    #include <dt-bindings/interrupt-controller/irq.h>
112b80b848bSNeil Armstrong    #include <dt-bindings/interrupt-controller/arm-gic.h>
113b80b848bSNeil Armstrong    pcie: pcie@f9800000 {
114b80b848bSNeil Armstrong        compatible = "amlogic,axg-pcie", "snps,dw-pcie";
115b80b848bSNeil Armstrong        reg = <0xf9800000 0x400000>, <0xff646000 0x2000>, <0xf9f00000 0x100000>;
116b80b848bSNeil Armstrong        reg-names = "elbi", "cfg", "config";
117b80b848bSNeil Armstrong        interrupts = <GIC_SPI 177 IRQ_TYPE_EDGE_RISING>;
118b80b848bSNeil Armstrong        clocks = <&pclk>, <&clk_port>, <&clk_phy>;
119b80b848bSNeil Armstrong        clock-names = "pclk", "port", "general";
120b80b848bSNeil Armstrong        resets = <&reset_pcie_port>, <&reset_pcie_apb>;
121b80b848bSNeil Armstrong        reset-names = "port", "apb";
122b80b848bSNeil Armstrong        phys = <&pcie_phy>;
123b80b848bSNeil Armstrong        phy-names = "pcie";
124b80b848bSNeil Armstrong        #interrupt-cells = <1>;
125b80b848bSNeil Armstrong        interrupt-map-mask = <0 0 0 0>;
126b80b848bSNeil Armstrong        interrupt-map = <0 0 0 0 &gic GIC_SPI 179 IRQ_TYPE_EDGE_RISING>;
127b80b848bSNeil Armstrong        bus-range = <0x0 0xff>;
128b80b848bSNeil Armstrong        #address-cells = <3>;
129b80b848bSNeil Armstrong        #size-cells = <2>;
130b80b848bSNeil Armstrong        device_type = "pci";
131b80b848bSNeil Armstrong        num-lanes = <1>;
132b80b848bSNeil Armstrong        ranges = <0x82000000 0 0 0xf9c00000 0 0x00300000>;
133b80b848bSNeil Armstrong    };
134b80b848bSNeil Armstrong...
135