xref: /linux/Documentation/devicetree/bindings/pci/qcom,pcie-apq8064.yaml (revision c17ee635fd3a482b2ad2bf5e269755c2eae5f25e)
1*b673d06eSKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*b673d06eSKrzysztof Kozlowski%YAML 1.2
3*b673d06eSKrzysztof Kozlowski---
4*b673d06eSKrzysztof Kozlowski$id: http://devicetree.org/schemas/pci/qcom,pcie-apq8064.yaml#
5*b673d06eSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*b673d06eSKrzysztof Kozlowski
7*b673d06eSKrzysztof Kozlowskititle: Qualcomm APQ8064/IPQ8064 PCI Express Root Complex
8*b673d06eSKrzysztof Kozlowski
9*b673d06eSKrzysztof Kozlowskimaintainers:
10*b673d06eSKrzysztof Kozlowski  - Bjorn Andersson <andersson@kernel.org>
11*b673d06eSKrzysztof Kozlowski  - Manivannan Sadhasivam <mani@kernel.org>
12*b673d06eSKrzysztof Kozlowski
13*b673d06eSKrzysztof Kozlowskiproperties:
14*b673d06eSKrzysztof Kozlowski  compatible:
15*b673d06eSKrzysztof Kozlowski    enum:
16*b673d06eSKrzysztof Kozlowski      - qcom,pcie-apq8064
17*b673d06eSKrzysztof Kozlowski      - qcom,pcie-ipq8064
18*b673d06eSKrzysztof Kozlowski      - qcom,pcie-ipq8064-v2
19*b673d06eSKrzysztof Kozlowski
20*b673d06eSKrzysztof Kozlowski  reg:
21*b673d06eSKrzysztof Kozlowski    maxItems: 4
22*b673d06eSKrzysztof Kozlowski
23*b673d06eSKrzysztof Kozlowski  reg-names:
24*b673d06eSKrzysztof Kozlowski    items:
25*b673d06eSKrzysztof Kozlowski      - const: dbi
26*b673d06eSKrzysztof Kozlowski      - const: elbi
27*b673d06eSKrzysztof Kozlowski      - const: parf
28*b673d06eSKrzysztof Kozlowski      - const: config
29*b673d06eSKrzysztof Kozlowski
30*b673d06eSKrzysztof Kozlowski  clocks:
31*b673d06eSKrzysztof Kozlowski    minItems: 3
32*b673d06eSKrzysztof Kozlowski    maxItems: 5
33*b673d06eSKrzysztof Kozlowski
34*b673d06eSKrzysztof Kozlowski  clock-names:
35*b673d06eSKrzysztof Kozlowski    minItems: 3
36*b673d06eSKrzysztof Kozlowski    items:
37*b673d06eSKrzysztof Kozlowski      - const: core # Clocks the pcie hw block
38*b673d06eSKrzysztof Kozlowski      - const: iface # Configuration AHB clock
39*b673d06eSKrzysztof Kozlowski      - const: phy
40*b673d06eSKrzysztof Kozlowski      - const: aux
41*b673d06eSKrzysztof Kozlowski      - const: ref
42*b673d06eSKrzysztof Kozlowski
43*b673d06eSKrzysztof Kozlowski  interrupts:
44*b673d06eSKrzysztof Kozlowski    maxItems: 1
45*b673d06eSKrzysztof Kozlowski
46*b673d06eSKrzysztof Kozlowski  interrupt-names:
47*b673d06eSKrzysztof Kozlowski    items:
48*b673d06eSKrzysztof Kozlowski      - const: msi
49*b673d06eSKrzysztof Kozlowski
50*b673d06eSKrzysztof Kozlowski  resets:
51*b673d06eSKrzysztof Kozlowski    minItems: 5
52*b673d06eSKrzysztof Kozlowski    maxItems: 6
53*b673d06eSKrzysztof Kozlowski
54*b673d06eSKrzysztof Kozlowski  reset-names:
55*b673d06eSKrzysztof Kozlowski    minItems: 5
56*b673d06eSKrzysztof Kozlowski    items:
57*b673d06eSKrzysztof Kozlowski      - const: axi
58*b673d06eSKrzysztof Kozlowski      - const: ahb
59*b673d06eSKrzysztof Kozlowski      - const: por
60*b673d06eSKrzysztof Kozlowski      - const: pci
61*b673d06eSKrzysztof Kozlowski      - const: phy
62*b673d06eSKrzysztof Kozlowski      - const: ext
63*b673d06eSKrzysztof Kozlowski
64*b673d06eSKrzysztof Kozlowski  vdda-supply:
65*b673d06eSKrzysztof Kozlowski    description: A phandle to the core analog power supply
66*b673d06eSKrzysztof Kozlowski
67*b673d06eSKrzysztof Kozlowski  vdda_phy-supply:
68*b673d06eSKrzysztof Kozlowski    description: A phandle to the core analog power supply for PHY
69*b673d06eSKrzysztof Kozlowski
70*b673d06eSKrzysztof Kozlowski  vdda_refclk-supply:
71*b673d06eSKrzysztof Kozlowski    description: A phandle to the core analog power supply for IC which generates reference clock
72*b673d06eSKrzysztof Kozlowski
73*b673d06eSKrzysztof Kozlowskirequired:
74*b673d06eSKrzysztof Kozlowski  - resets
75*b673d06eSKrzysztof Kozlowski  - reset-names
76*b673d06eSKrzysztof Kozlowski  - vdda-supply
77*b673d06eSKrzysztof Kozlowski  - vdda_phy-supply
78*b673d06eSKrzysztof Kozlowski  - vdda_refclk-supply
79*b673d06eSKrzysztof Kozlowski
80*b673d06eSKrzysztof KozlowskiallOf:
81*b673d06eSKrzysztof Kozlowski  - $ref: qcom,pcie-common.yaml#
82*b673d06eSKrzysztof Kozlowski  - if:
83*b673d06eSKrzysztof Kozlowski      properties:
84*b673d06eSKrzysztof Kozlowski        compatible:
85*b673d06eSKrzysztof Kozlowski          contains:
86*b673d06eSKrzysztof Kozlowski            enum:
87*b673d06eSKrzysztof Kozlowski              - qcom,pcie-apq8064
88*b673d06eSKrzysztof Kozlowski    then:
89*b673d06eSKrzysztof Kozlowski      properties:
90*b673d06eSKrzysztof Kozlowski        clocks:
91*b673d06eSKrzysztof Kozlowski          maxItems: 3
92*b673d06eSKrzysztof Kozlowski        clock-names:
93*b673d06eSKrzysztof Kozlowski          maxItems: 3
94*b673d06eSKrzysztof Kozlowski        resets:
95*b673d06eSKrzysztof Kozlowski          maxItems: 5
96*b673d06eSKrzysztof Kozlowski        reset-names:
97*b673d06eSKrzysztof Kozlowski          maxItems: 5
98*b673d06eSKrzysztof Kozlowski    else:
99*b673d06eSKrzysztof Kozlowski      properties:
100*b673d06eSKrzysztof Kozlowski        clocks:
101*b673d06eSKrzysztof Kozlowski          minItems: 5
102*b673d06eSKrzysztof Kozlowski        clock-names:
103*b673d06eSKrzysztof Kozlowski          minItems: 5
104*b673d06eSKrzysztof Kozlowski        resets:
105*b673d06eSKrzysztof Kozlowski          minItems: 6
106*b673d06eSKrzysztof Kozlowski        reset-names:
107*b673d06eSKrzysztof Kozlowski          minItems: 6
108*b673d06eSKrzysztof Kozlowski
109*b673d06eSKrzysztof KozlowskiunevaluatedProperties: false
110*b673d06eSKrzysztof Kozlowski
111*b673d06eSKrzysztof Kozlowskiexamples:
112*b673d06eSKrzysztof Kozlowski  - |
113*b673d06eSKrzysztof Kozlowski    #include <dt-bindings/clock/qcom,gcc-msm8960.h>
114*b673d06eSKrzysztof Kozlowski    #include <dt-bindings/gpio/gpio.h>
115*b673d06eSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
116*b673d06eSKrzysztof Kozlowski    #include <dt-bindings/reset/qcom,gcc-msm8960.h>
117*b673d06eSKrzysztof Kozlowski
118*b673d06eSKrzysztof Kozlowski    pcie@1b500000 {
119*b673d06eSKrzysztof Kozlowski        compatible = "qcom,pcie-apq8064";
120*b673d06eSKrzysztof Kozlowski        reg = <0x1b500000 0x1000>,
121*b673d06eSKrzysztof Kozlowski              <0x1b502000 0x80>,
122*b673d06eSKrzysztof Kozlowski              <0x1b600000 0x100>,
123*b673d06eSKrzysztof Kozlowski              <0x0ff00000 0x100000>;
124*b673d06eSKrzysztof Kozlowski        reg-names = "dbi", "elbi", "parf", "config";
125*b673d06eSKrzysztof Kozlowski        ranges = <0x81000000 0x0 0x00000000 0x0fe00000 0x0 0x00100000>, /* I/O */
126*b673d06eSKrzysztof Kozlowski                 <0x82000000 0x0 0x08000000 0x08000000 0x0 0x07e00000>; /* mem */
127*b673d06eSKrzysztof Kozlowski
128*b673d06eSKrzysztof Kozlowski        device_type = "pci";
129*b673d06eSKrzysztof Kozlowski        linux,pci-domain = <0>;
130*b673d06eSKrzysztof Kozlowski        bus-range = <0x00 0xff>;
131*b673d06eSKrzysztof Kozlowski        num-lanes = <1>;
132*b673d06eSKrzysztof Kozlowski        #address-cells = <3>;
133*b673d06eSKrzysztof Kozlowski        #size-cells = <2>;
134*b673d06eSKrzysztof Kozlowski
135*b673d06eSKrzysztof Kozlowski        clocks = <&gcc PCIE_A_CLK>,
136*b673d06eSKrzysztof Kozlowski                 <&gcc PCIE_H_CLK>,
137*b673d06eSKrzysztof Kozlowski                 <&gcc PCIE_PHY_REF_CLK>;
138*b673d06eSKrzysztof Kozlowski        clock-names = "core", "iface", "phy";
139*b673d06eSKrzysztof Kozlowski
140*b673d06eSKrzysztof Kozlowski        interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
141*b673d06eSKrzysztof Kozlowski        interrupt-names = "msi";
142*b673d06eSKrzysztof Kozlowski        #interrupt-cells = <1>;
143*b673d06eSKrzysztof Kozlowski        interrupt-map-mask = <0 0 0 0x7>;
144*b673d06eSKrzysztof Kozlowski        interrupt-map = <0 0 0 1 &intc GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
145*b673d06eSKrzysztof Kozlowski                        <0 0 0 2 &intc GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
146*b673d06eSKrzysztof Kozlowski                        <0 0 0 3 &intc GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
147*b673d06eSKrzysztof Kozlowski                        <0 0 0 4 &intc GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
148*b673d06eSKrzysztof Kozlowski
149*b673d06eSKrzysztof Kozlowski        resets = <&gcc PCIE_ACLK_RESET>,
150*b673d06eSKrzysztof Kozlowski                 <&gcc PCIE_HCLK_RESET>,
151*b673d06eSKrzysztof Kozlowski                 <&gcc PCIE_POR_RESET>,
152*b673d06eSKrzysztof Kozlowski                 <&gcc PCIE_PCI_RESET>,
153*b673d06eSKrzysztof Kozlowski                 <&gcc PCIE_PHY_RESET>;
154*b673d06eSKrzysztof Kozlowski        reset-names = "axi", "ahb", "por", "pci", "phy";
155*b673d06eSKrzysztof Kozlowski
156*b673d06eSKrzysztof Kozlowski        perst-gpios = <&tlmm_pinmux 27 GPIO_ACTIVE_LOW>;
157*b673d06eSKrzysztof Kozlowski        vdda-supply = <&pm8921_s3>;
158*b673d06eSKrzysztof Kozlowski        vdda_phy-supply = <&pm8921_lvs6>;
159*b673d06eSKrzysztof Kozlowski        vdda_refclk-supply = <&v3p3_fixed>;
160*b673d06eSKrzysztof Kozlowski
161*b673d06eSKrzysztof Kozlowski        pcie@0 {
162*b673d06eSKrzysztof Kozlowski            device_type = "pci";
163*b673d06eSKrzysztof Kozlowski            reg = <0x0 0x0 0x0 0x0 0x0>;
164*b673d06eSKrzysztof Kozlowski            bus-range = <0x01 0xff>;
165*b673d06eSKrzysztof Kozlowski
166*b673d06eSKrzysztof Kozlowski            #address-cells = <3>;
167*b673d06eSKrzysztof Kozlowski            #size-cells = <2>;
168*b673d06eSKrzysztof Kozlowski            ranges;
169*b673d06eSKrzysztof Kozlowski        };
170*b673d06eSKrzysztof Kozlowski    };
171