xref: /linux/Documentation/devicetree/bindings/pci/rockchip,rk3399-pcie.yaml (revision c771600c6af14749609b49565ffb4cac2959710d)
1aa222f93SRob Herring# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2aa222f93SRob Herring%YAML 1.2
3aa222f93SRob Herring---
4aa222f93SRob Herring$id: http://devicetree.org/schemas/pci/rockchip,rk3399-pcie.yaml#
5aa222f93SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
6aa222f93SRob Herring
7aa222f93SRob Herringtitle: Rockchip AXI PCIe Root Port Bridge Host
8aa222f93SRob Herring
9aa222f93SRob Herringmaintainers:
10aa222f93SRob Herring  - Shawn Lin <shawn.lin@rock-chips.com>
11aa222f93SRob Herring
12aa222f93SRob HerringallOf:
135db62b7dSKrzysztof Kozlowski  - $ref: /schemas/pci/pci-host-bridge.yaml#
14aa222f93SRob Herring  - $ref: rockchip,rk3399-pcie-common.yaml#
15aa222f93SRob Herring
16aa222f93SRob Herringproperties:
17aa222f93SRob Herring  compatible:
18aa222f93SRob Herring    const: rockchip,rk3399-pcie
19aa222f93SRob Herring
20aa222f93SRob Herring  reg: true
21aa222f93SRob Herring
22aa222f93SRob Herring  reg-names:
23aa222f93SRob Herring    items:
24aa222f93SRob Herring      - const: axi-base
25aa222f93SRob Herring      - const: apb-base
26aa222f93SRob Herring
27aa222f93SRob Herring  interrupts:
28aa222f93SRob Herring    maxItems: 3
29aa222f93SRob Herring
30aa222f93SRob Herring  interrupt-names:
31aa222f93SRob Herring    items:
32aa222f93SRob Herring      - const: sys
33aa222f93SRob Herring      - const: legacy
34aa222f93SRob Herring      - const: client
35aa222f93SRob Herring
36aa222f93SRob Herring  aspm-no-l0s:
37aa222f93SRob Herring    description: This property is needed if using 24MHz OSC for RC's PHY.
38aa222f93SRob Herring
39aa222f93SRob Herring  ep-gpios:
40*52d06636SKrzysztof Kozlowski    maxItems: 1
41aa222f93SRob Herring    description: pre-reset GPIO
42aa222f93SRob Herring
43aa222f93SRob Herring  vpcie12v-supply:
44aa222f93SRob Herring    description: The 12v regulator to use for PCIe.
45aa222f93SRob Herring
46aa222f93SRob Herring  vpcie3v3-supply:
47aa222f93SRob Herring    description: The 3.3v regulator to use for PCIe.
48aa222f93SRob Herring
49aa222f93SRob Herring  vpcie1v8-supply:
50aa222f93SRob Herring    description: The 1.8v regulator to use for PCIe.
51aa222f93SRob Herring
52aa222f93SRob Herring  vpcie0v9-supply:
53aa222f93SRob Herring    description: The 0.9v regulator to use for PCIe.
54aa222f93SRob Herring
55aa222f93SRob Herring  interrupt-controller:
56aa222f93SRob Herring    type: object
57aa222f93SRob Herring    additionalProperties: false
58aa222f93SRob Herring
59aa222f93SRob Herring    properties:
60aa222f93SRob Herring      '#address-cells':
61aa222f93SRob Herring        const: 0
62aa222f93SRob Herring
63aa222f93SRob Herring      '#interrupt-cells':
64aa222f93SRob Herring        const: 1
65aa222f93SRob Herring
66aa222f93SRob Herring      interrupt-controller: true
67aa222f93SRob Herring
68aa222f93SRob Herringrequired:
69aa222f93SRob Herring  - ranges
70aa222f93SRob Herring  - "#interrupt-cells"
71aa222f93SRob Herring  - interrupts
72aa222f93SRob Herring  - interrupt-controller
73aa222f93SRob Herring  - interrupt-map
74aa222f93SRob Herring  - interrupt-map-mask
75aa222f93SRob Herring  - msi-map
76aa222f93SRob Herring
77aa222f93SRob HerringunevaluatedProperties: false
78aa222f93SRob Herring
79aa222f93SRob Herringexamples:
80aa222f93SRob Herring  - |
81aa222f93SRob Herring    #include <dt-bindings/interrupt-controller/arm-gic.h>
82aa222f93SRob Herring    #include <dt-bindings/gpio/gpio.h>
83aa222f93SRob Herring    #include <dt-bindings/clock/rk3399-cru.h>
84aa222f93SRob Herring
85aa222f93SRob Herring    bus {
86aa222f93SRob Herring        #address-cells = <2>;
87aa222f93SRob Herring        #size-cells = <2>;
88aa222f93SRob Herring
89aa222f93SRob Herring        pcie@f8000000 {
90aa222f93SRob Herring            compatible = "rockchip,rk3399-pcie";
91aa222f93SRob Herring            device_type = "pci";
92aa222f93SRob Herring            #address-cells = <3>;
93aa222f93SRob Herring            #size-cells = <2>;
94aa222f93SRob Herring            clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
95aa222f93SRob Herring              <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
96aa222f93SRob Herring            clock-names = "aclk", "aclk-perf",
97aa222f93SRob Herring                    "hclk", "pm";
98aa222f93SRob Herring            interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>,
99aa222f93SRob Herring                  <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>,
100aa222f93SRob Herring                  <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>;
101aa222f93SRob Herring            interrupt-names = "sys", "legacy", "client";
102aa222f93SRob Herring            ep-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
103aa222f93SRob Herring            ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x600000
104aa222f93SRob Herring                0x81000000 0x0 0xfa600000 0x0 0xfa600000 0x0 0x100000>;
105aa222f93SRob Herring            num-lanes = <4>;
106aa222f93SRob Herring            msi-map = <0x0 &its 0x0 0x1000>;
107aa222f93SRob Herring            reg = <0x0 0xf8000000 0x0 0x2000000>, <0x0 0xfd000000 0x0 0x1000000>;
108aa222f93SRob Herring            reg-names = "axi-base", "apb-base";
109aa222f93SRob Herring            resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
110aa222f93SRob Herring              <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE> ,
111aa222f93SRob Herring              <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>, <&cru SRST_A_PCIE>;
112aa222f93SRob Herring            reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
113aa222f93SRob Herring                    "pm", "pclk", "aclk";
114aa222f93SRob Herring            /* deprecated legacy PHY model */
115aa222f93SRob Herring            phys = <&pcie_phy>;
116aa222f93SRob Herring            phy-names = "pcie-phy";
117aa222f93SRob Herring            pinctrl-names = "default";
118aa222f93SRob Herring            pinctrl-0 = <&pcie_clkreq>;
119aa222f93SRob Herring            #interrupt-cells = <1>;
120aa222f93SRob Herring            interrupt-map-mask = <0 0 0 7>;
121aa222f93SRob Herring            interrupt-map = <0 0 0 1 &pcie0_intc 0>,
122aa222f93SRob Herring                <0 0 0 2 &pcie0_intc 1>,
123aa222f93SRob Herring                <0 0 0 3 &pcie0_intc 2>,
124aa222f93SRob Herring                <0 0 0 4 &pcie0_intc 3>;
125aa222f93SRob Herring
126aa222f93SRob Herring            pcie0_intc: interrupt-controller {
127aa222f93SRob Herring                interrupt-controller;
128aa222f93SRob Herring                #address-cells = <0>;
129aa222f93SRob Herring                #interrupt-cells = <1>;
130aa222f93SRob Herring            };
131aa222f93SRob Herring        };
132aa222f93SRob Herring    };
133aa222f93SRob Herring...
134