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