dt-bindings: PCI: qcom: Correct clocks for SC8180x
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / pci / qcom,pcie.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/pci/qcom,pcie.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Qualcomm PCI express root complex
8
9 maintainers:
10   - Bjorn Andersson <bjorn.andersson@linaro.org>
11   - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
12
13 description: |
14   Qualcomm PCIe root complex controller is based on the Synopsys DesignWare
15   PCIe IP.
16
17 properties:
18   compatible:
19     oneOf:
20       - enum:
21           - qcom,pcie-apq8064
22           - qcom,pcie-apq8084
23           - qcom,pcie-ipq4019
24           - qcom,pcie-ipq6018
25           - qcom,pcie-ipq8064
26           - qcom,pcie-ipq8064-v2
27           - qcom,pcie-ipq8074
28           - qcom,pcie-ipq8074-gen3
29           - qcom,pcie-msm8996
30           - qcom,pcie-qcs404
31           - qcom,pcie-sa8540p
32           - qcom,pcie-sa8775p
33           - qcom,pcie-sc7280
34           - qcom,pcie-sc8180x
35           - qcom,pcie-sc8280xp
36           - qcom,pcie-sdm845
37           - qcom,pcie-sdx55
38           - qcom,pcie-sm8150
39           - qcom,pcie-sm8250
40           - qcom,pcie-sm8350
41           - qcom,pcie-sm8450-pcie0
42           - qcom,pcie-sm8450-pcie1
43           - qcom,pcie-sm8550
44       - items:
45           - const: qcom,pcie-msm8998
46           - const: qcom,pcie-msm8996
47
48   reg:
49     minItems: 4
50     maxItems: 6
51
52   reg-names:
53     minItems: 4
54     maxItems: 6
55
56   interrupts:
57     minItems: 1
58     maxItems: 8
59
60   interrupt-names:
61     minItems: 1
62     maxItems: 8
63
64   iommu-map:
65     minItems: 1
66     maxItems: 16
67
68   # Common definitions for clocks, clock-names and reset.
69   # Platform constraints are described later.
70   clocks:
71     minItems: 3
72     maxItems: 13
73
74   clock-names:
75     minItems: 3
76     maxItems: 13
77
78   dma-coherent: true
79
80   interconnects:
81     maxItems: 2
82
83   interconnect-names:
84     items:
85       - const: pcie-mem
86       - const: cpu-pcie
87
88   resets:
89     minItems: 1
90     maxItems: 12
91
92   resets-names:
93     minItems: 1
94     maxItems: 12
95
96   vdda-supply:
97     description: A phandle to the core analog power supply
98
99   vdda_phy-supply:
100     description: A phandle to the core analog power supply for PHY
101
102   vdda_refclk-supply:
103     description: A phandle to the core analog power supply for IC which generates reference clock
104
105   vddpe-3v3-supply:
106     description: A phandle to the PCIe endpoint power supply
107
108   phys:
109     maxItems: 1
110
111   phy-names:
112     items:
113       - const: pciephy
114
115   power-domains:
116     maxItems: 1
117
118   perst-gpios:
119     description: GPIO controlled connection to PERST# signal
120     maxItems: 1
121
122   wake-gpios:
123     description: GPIO controlled connection to WAKE# signal
124     maxItems: 1
125
126 required:
127   - compatible
128   - reg
129   - reg-names
130   - interrupt-map-mask
131   - interrupt-map
132   - clocks
133   - clock-names
134
135 anyOf:
136   - required:
137       - interrupts
138       - interrupt-names
139       - "#interrupt-cells"
140   - required:
141       - msi-map
142       - msi-map-mask
143
144 allOf:
145   - $ref: /schemas/pci/pci-bus.yaml#
146   - if:
147       properties:
148         compatible:
149           contains:
150             enum:
151               - qcom,pcie-apq8064
152               - qcom,pcie-ipq4019
153               - qcom,pcie-ipq8064
154               - qcom,pcie-ipq8064v2
155               - qcom,pcie-ipq8074
156               - qcom,pcie-qcs404
157     then:
158       properties:
159         reg:
160           minItems: 4
161           maxItems: 4
162         reg-names:
163           items:
164             - const: dbi # DesignWare PCIe registers
165             - const: elbi # External local bus interface registers
166             - const: parf # Qualcomm specific registers
167             - const: config # PCIe configuration space
168
169   - if:
170       properties:
171         compatible:
172           contains:
173             enum:
174               - qcom,pcie-ipq6018
175               - qcom,pcie-ipq8074-gen3
176     then:
177       properties:
178         reg:
179           minItems: 5
180           maxItems: 5
181         reg-names:
182           items:
183             - const: dbi # DesignWare PCIe registers
184             - const: elbi # External local bus interface registers
185             - const: atu # ATU address space
186             - const: parf # Qualcomm specific registers
187             - const: config # PCIe configuration space
188
189   - if:
190       properties:
191         compatible:
192           contains:
193             enum:
194               - qcom,pcie-apq8084
195               - qcom,pcie-msm8996
196               - qcom,pcie-sdm845
197     then:
198       properties:
199         reg:
200           minItems: 4
201           maxItems: 5
202         reg-names:
203           minItems: 4
204           items:
205             - const: parf # Qualcomm specific registers
206             - const: dbi # DesignWare PCIe registers
207             - const: elbi # External local bus interface registers
208             - const: config # PCIe configuration space
209             - const: mhi # MHI registers
210
211   - if:
212       properties:
213         compatible:
214           contains:
215             enum:
216               - qcom,pcie-sa8775p
217               - qcom,pcie-sc7280
218               - qcom,pcie-sc8180x
219               - qcom,pcie-sc8280xp
220               - qcom,pcie-sdx55
221               - qcom,pcie-sm8250
222               - qcom,pcie-sm8350
223               - qcom,pcie-sm8450-pcie0
224               - qcom,pcie-sm8450-pcie1
225               - qcom,pcie-sm8550
226     then:
227       properties:
228         reg:
229           minItems: 5
230           maxItems: 6
231         reg-names:
232           minItems: 5
233           items:
234             - const: parf # Qualcomm specific registers
235             - const: dbi # DesignWare PCIe registers
236             - const: elbi # External local bus interface registers
237             - const: atu # ATU address space
238             - const: config # PCIe configuration space
239             - const: mhi # MHI registers
240
241   - if:
242       properties:
243         compatible:
244           contains:
245             enum:
246               - qcom,pcie-apq8064
247               - qcom,pcie-ipq8064
248               - qcom,pcie-ipq8064v2
249     then:
250       properties:
251         clocks:
252           minItems: 3
253           maxItems: 5
254         clock-names:
255           minItems: 3
256           items:
257             - const: core # Clocks the pcie hw block
258             - const: iface # Configuration AHB clock
259             - const: phy # Clocks the pcie PHY block
260             - const: aux # Clocks the pcie AUX block, not on apq8064
261             - const: ref # Clocks the pcie ref block, not on apq8064
262         resets:
263           minItems: 5
264           maxItems: 6
265         reset-names:
266           minItems: 5
267           items:
268             - const: axi # AXI reset
269             - const: ahb # AHB reset
270             - const: por # POR reset
271             - const: pci # PCI reset
272             - const: phy # PHY reset
273             - const: ext # EXT reset, not on apq8064
274       required:
275         - vdda-supply
276         - vdda_phy-supply
277         - vdda_refclk-supply
278
279   - if:
280       properties:
281         compatible:
282           contains:
283             enum:
284               - qcom,pcie-apq8084
285     then:
286       properties:
287         clocks:
288           minItems: 4
289           maxItems: 4
290         clock-names:
291           items:
292             - const: iface # Configuration AHB clock
293             - const: master_bus # Master AXI clock
294             - const: slave_bus # Slave AXI clock
295             - const: aux # Auxiliary (AUX) clock
296         resets:
297           maxItems: 1
298         reset-names:
299           items:
300             - const: core # Core reset
301
302   - if:
303       properties:
304         compatible:
305           contains:
306             enum:
307               - qcom,pcie-ipq4019
308     then:
309       properties:
310         clocks:
311           minItems: 3
312           maxItems: 3
313         clock-names:
314           items:
315             - const: aux # Auxiliary (AUX) clock
316             - const: master_bus # Master AXI clock
317             - const: slave_bus # Slave AXI clock
318         resets:
319           minItems: 12
320           maxItems: 12
321         reset-names:
322           items:
323             - const: axi_m # AXI master reset
324             - const: axi_s # AXI slave reset
325             - const: pipe # PIPE reset
326             - const: axi_m_vmid # VMID reset
327             - const: axi_s_xpu # XPU reset
328             - const: parf # PARF reset
329             - const: phy # PHY reset
330             - const: axi_m_sticky # AXI sticky reset
331             - const: pipe_sticky # PIPE sticky reset
332             - const: pwr # PWR reset
333             - const: ahb # AHB reset
334             - const: phy_ahb # PHY AHB reset
335
336   - if:
337       properties:
338         compatible:
339           contains:
340             enum:
341               - qcom,pcie-msm8996
342     then:
343       properties:
344         clocks:
345           minItems: 5
346           maxItems: 5
347         clock-names:
348           items:
349             - const: pipe # Pipe Clock driving internal logic
350             - const: aux # Auxiliary (AUX) clock
351             - const: cfg # Configuration clock
352             - const: bus_master # Master AXI clock
353             - const: bus_slave # Slave AXI clock
354         resets: false
355         reset-names: false
356
357   - if:
358       properties:
359         compatible:
360           contains:
361             enum:
362               - qcom,pcie-ipq8074
363     then:
364       properties:
365         clocks:
366           minItems: 5
367           maxItems: 5
368         clock-names:
369           items:
370             - const: iface # PCIe to SysNOC BIU clock
371             - const: axi_m # AXI Master clock
372             - const: axi_s # AXI Slave clock
373             - const: ahb # AHB clock
374             - const: aux # Auxiliary clock
375         resets:
376           minItems: 7
377           maxItems: 7
378         reset-names:
379           items:
380             - const: pipe # PIPE reset
381             - const: sleep # Sleep reset
382             - const: sticky # Core Sticky reset
383             - const: axi_m # AXI Master reset
384             - const: axi_s # AXI Slave reset
385             - const: ahb # AHB Reset
386             - const: axi_m_sticky # AXI Master Sticky reset
387
388   - if:
389       properties:
390         compatible:
391           contains:
392             enum:
393               - qcom,pcie-ipq6018
394               - qcom,pcie-ipq8074-gen3
395     then:
396       properties:
397         clocks:
398           minItems: 5
399           maxItems: 5
400         clock-names:
401           items:
402             - const: iface # PCIe to SysNOC BIU clock
403             - const: axi_m # AXI Master clock
404             - const: axi_s # AXI Slave clock
405             - const: axi_bridge # AXI bridge clock
406             - const: rchng
407         resets:
408           minItems: 8
409           maxItems: 8
410         reset-names:
411           items:
412             - const: pipe # PIPE reset
413             - const: sleep # Sleep reset
414             - const: sticky # Core Sticky reset
415             - const: axi_m # AXI Master reset
416             - const: axi_s # AXI Slave reset
417             - const: ahb # AHB Reset
418             - const: axi_m_sticky # AXI Master Sticky reset
419             - const: axi_s_sticky # AXI Slave Sticky reset
420
421   - if:
422       properties:
423         compatible:
424           contains:
425             enum:
426               - qcom,pcie-qcs404
427     then:
428       properties:
429         clocks:
430           minItems: 4
431           maxItems: 4
432         clock-names:
433           items:
434             - const: iface # AHB clock
435             - const: aux # Auxiliary clock
436             - const: master_bus # AXI Master clock
437             - const: slave_bus # AXI Slave clock
438         resets:
439           minItems: 6
440           maxItems: 6
441         reset-names:
442           items:
443             - const: axi_m # AXI Master reset
444             - const: axi_s # AXI Slave reset
445             - const: axi_m_sticky # AXI Master Sticky reset
446             - const: pipe_sticky # PIPE sticky reset
447             - const: pwr # PWR reset
448             - const: ahb # AHB reset
449
450   - if:
451       properties:
452         compatible:
453           contains:
454             enum:
455               - qcom,pcie-sc7280
456     then:
457       properties:
458         clocks:
459           minItems: 13
460           maxItems: 13
461         clock-names:
462           items:
463             - const: pipe # PIPE clock
464             - const: pipe_mux # PIPE MUX
465             - const: phy_pipe # PIPE output clock
466             - const: ref # REFERENCE clock
467             - const: aux # Auxiliary clock
468             - const: cfg # Configuration clock
469             - const: bus_master # Master AXI clock
470             - const: bus_slave # Slave AXI clock
471             - const: slave_q2a # Slave Q2A clock
472             - const: tbu # PCIe TBU clock
473             - const: ddrss_sf_tbu # PCIe SF TBU clock
474             - const: aggre0 # Aggre NoC PCIe CENTER SF AXI clock
475             - const: aggre1 # Aggre NoC PCIe1 AXI clock
476         resets:
477           maxItems: 1
478         reset-names:
479           items:
480             - const: pci # PCIe core reset
481
482   - if:
483       properties:
484         compatible:
485           contains:
486             enum:
487               - qcom,pcie-sc8180x
488     then:
489       properties:
490         clocks:
491           minItems: 8
492           maxItems: 8
493         clock-names:
494           items:
495             - const: pipe # PIPE clock
496             - const: aux # Auxiliary clock
497             - const: cfg # Configuration clock
498             - const: bus_master # Master AXI clock
499             - const: bus_slave # Slave AXI clock
500             - const: slave_q2a # Slave Q2A clock
501             - const: ref # REFERENCE clock
502             - const: tbu # PCIe TBU clock
503         resets:
504           maxItems: 1
505         reset-names:
506           items:
507             - const: pci # PCIe core reset
508
509   - if:
510       properties:
511         compatible:
512           contains:
513             enum:
514               - qcom,pcie-sdm845
515     then:
516       oneOf:
517           # Unfortunately the "optional" ref clock is used in the middle of the list
518         - properties:
519             clocks:
520               minItems: 8
521               maxItems: 8
522             clock-names:
523               items:
524                 - const: pipe # PIPE clock
525                 - const: aux # Auxiliary clock
526                 - const: cfg # Configuration clock
527                 - const: bus_master # Master AXI clock
528                 - const: bus_slave # Slave AXI clock
529                 - const: slave_q2a # Slave Q2A clock
530                 - const: ref # REFERENCE clock
531                 - const: tbu # PCIe TBU clock
532         - properties:
533             clocks:
534               minItems: 7
535               maxItems: 7
536             clock-names:
537               items:
538                 - const: pipe # PIPE clock
539                 - const: aux # Auxiliary clock
540                 - const: cfg # Configuration clock
541                 - const: bus_master # Master AXI clock
542                 - const: bus_slave # Slave AXI clock
543                 - const: slave_q2a # Slave Q2A clock
544                 - const: tbu # PCIe TBU clock
545       properties:
546         resets:
547           maxItems: 1
548         reset-names:
549           items:
550             - const: pci # PCIe core reset
551
552   - if:
553       properties:
554         compatible:
555           contains:
556             enum:
557               - qcom,pcie-sm8150
558               - qcom,pcie-sm8250
559     then:
560       oneOf:
561           # Unfortunately the "optional" ref clock is used in the middle of the list
562         - properties:
563             clocks:
564               minItems: 9
565               maxItems: 9
566             clock-names:
567               items:
568                 - const: pipe # PIPE clock
569                 - const: aux # Auxiliary clock
570                 - const: cfg # Configuration clock
571                 - const: bus_master # Master AXI clock
572                 - const: bus_slave # Slave AXI clock
573                 - const: slave_q2a # Slave Q2A clock
574                 - const: ref # REFERENCE clock
575                 - const: tbu # PCIe TBU clock
576                 - const: ddrss_sf_tbu # PCIe SF TBU clock
577         - properties:
578             clocks:
579               minItems: 8
580               maxItems: 8
581             clock-names:
582               items:
583                 - const: pipe # PIPE clock
584                 - const: aux # Auxiliary clock
585                 - const: cfg # Configuration clock
586                 - const: bus_master # Master AXI clock
587                 - const: bus_slave # Slave AXI clock
588                 - const: slave_q2a # Slave Q2A clock
589                 - const: tbu # PCIe TBU clock
590                 - const: ddrss_sf_tbu # PCIe SF TBU clock
591       properties:
592         resets:
593           maxItems: 1
594         reset-names:
595           items:
596             - const: pci # PCIe core reset
597
598   - if:
599       properties:
600         compatible:
601           contains:
602             enum:
603               - qcom,pcie-sm8350
604     then:
605       properties:
606         clocks:
607           minItems: 8
608           maxItems: 9
609         clock-names:
610           minItems: 8
611           items:
612             - const: aux # Auxiliary clock
613             - const: cfg # Configuration clock
614             - const: bus_master # Master AXI clock
615             - const: bus_slave # Slave AXI clock
616             - const: slave_q2a # Slave Q2A clock
617             - const: tbu # PCIe TBU clock
618             - const: ddrss_sf_tbu # PCIe SF TBU clock
619             - const: aggre1 # Aggre NoC PCIe1 AXI clock
620             - const: aggre0 # Aggre NoC PCIe0 AXI clock
621         resets:
622           maxItems: 1
623         reset-names:
624           items:
625             - const: pci # PCIe core reset
626
627   - if:
628       properties:
629         compatible:
630           contains:
631             enum:
632               - qcom,pcie-sm8450-pcie0
633     then:
634       properties:
635         clocks:
636           minItems: 12
637           maxItems: 12
638         clock-names:
639           items:
640             - const: pipe # PIPE clock
641             - const: pipe_mux # PIPE MUX
642             - const: phy_pipe # PIPE output clock
643             - const: ref # REFERENCE clock
644             - const: aux # Auxiliary clock
645             - const: cfg # Configuration clock
646             - const: bus_master # Master AXI clock
647             - const: bus_slave # Slave AXI clock
648             - const: slave_q2a # Slave Q2A clock
649             - const: ddrss_sf_tbu # PCIe SF TBU clock
650             - const: aggre0 # Aggre NoC PCIe0 AXI clock
651             - const: aggre1 # Aggre NoC PCIe1 AXI clock
652         resets:
653           maxItems: 1
654         reset-names:
655           items:
656             - const: pci # PCIe core reset
657
658   - if:
659       properties:
660         compatible:
661           contains:
662             enum:
663               - qcom,pcie-sm8450-pcie1
664     then:
665       properties:
666         clocks:
667           minItems: 11
668           maxItems: 11
669         clock-names:
670           items:
671             - const: pipe # PIPE clock
672             - const: pipe_mux # PIPE MUX
673             - const: phy_pipe # PIPE output clock
674             - const: ref # REFERENCE clock
675             - const: aux # Auxiliary clock
676             - const: cfg # Configuration clock
677             - const: bus_master # Master AXI clock
678             - const: bus_slave # Slave AXI clock
679             - const: slave_q2a # Slave Q2A clock
680             - const: ddrss_sf_tbu # PCIe SF TBU clock
681             - const: aggre1 # Aggre NoC PCIe1 AXI clock
682         resets:
683           maxItems: 1
684         reset-names:
685           items:
686             - const: pci # PCIe core reset
687
688   - if:
689       properties:
690         compatible:
691           contains:
692             enum:
693               - qcom,pcie-sm8550
694     then:
695       properties:
696         clocks:
697           minItems: 7
698           maxItems: 8
699         clock-names:
700           minItems: 7
701           items:
702             - const: aux # Auxiliary clock
703             - const: cfg # Configuration clock
704             - const: bus_master # Master AXI clock
705             - const: bus_slave # Slave AXI clock
706             - const: slave_q2a # Slave Q2A clock
707             - const: ddrss_sf_tbu # PCIe SF TBU clock
708             - const: noc_aggr # Aggre NoC PCIe AXI clock
709             - const: cnoc_sf_axi # Config NoC PCIe1 AXI clock
710         resets:
711           minItems: 1
712           maxItems: 2
713         reset-names:
714           minItems: 1
715           items:
716             - const: pci # PCIe core reset
717             - const: link_down # PCIe link down reset
718
719   - if:
720       properties:
721         compatible:
722           contains:
723             enum:
724               - qcom,pcie-sa8540p
725               - qcom,pcie-sc8280xp
726     then:
727       properties:
728         clocks:
729           minItems: 8
730           maxItems: 9
731         clock-names:
732           minItems: 8
733           items:
734             - const: aux # Auxiliary clock
735             - const: cfg # Configuration clock
736             - const: bus_master # Master AXI clock
737             - const: bus_slave # Slave AXI clock
738             - const: slave_q2a # Slave Q2A clock
739             - const: ddrss_sf_tbu # PCIe SF TBU clock
740             - const: noc_aggr_4 # NoC aggregate 4 clock
741             - const: noc_aggr_south_sf # NoC aggregate South SF clock
742             - const: cnoc_qx # Configuration NoC QX clock
743         resets:
744           maxItems: 1
745         reset-names:
746           items:
747             - const: pci # PCIe core reset
748
749   - if:
750       properties:
751         compatible:
752           contains:
753             enum:
754               - qcom,pcie-sdx55
755     then:
756       properties:
757         clocks:
758           minItems: 7
759           maxItems: 7
760         clock-names:
761           items:
762             - const: pipe # PIPE clock
763             - const: aux # Auxiliary clock
764             - const: cfg # Configuration clock
765             - const: bus_master # Master AXI clock
766             - const: bus_slave # Slave AXI clock
767             - const: slave_q2a # Slave Q2A clock
768             - const: sleep # PCIe Sleep clock
769         resets:
770           maxItems: 1
771         reset-names:
772           items:
773             - const: pci # PCIe core reset
774
775   - if:
776       properties:
777         compatible:
778           contains:
779             enum:
780               - qcom,pcie-sa8775p
781     then:
782       properties:
783         clocks:
784           minItems: 5
785           maxItems: 5
786         clock-names:
787           items:
788             - const: aux # Auxiliary clock
789             - const: cfg # Configuration clock
790             - const: bus_master # Master AXI clock
791             - const: bus_slave # Slave AXI clock
792             - const: slave_q2a # Slave Q2A clock
793         resets:
794           maxItems: 1
795         reset-names:
796           items:
797             - const: pci # PCIe core reset
798
799   - if:
800       properties:
801         compatible:
802           contains:
803             enum:
804               - qcom,pcie-sa8540p
805               - qcom,pcie-sa8775p
806               - qcom,pcie-sc8280xp
807     then:
808       required:
809         - interconnects
810         - interconnect-names
811
812   - if:
813       not:
814         properties:
815           compatible:
816             contains:
817               enum:
818                 - qcom,pcie-apq8064
819                 - qcom,pcie-ipq4019
820                 - qcom,pcie-ipq8064
821                 - qcom,pcie-ipq8064v2
822                 - qcom,pcie-ipq8074
823                 - qcom,pcie-ipq8074-gen3
824                 - qcom,pcie-qcs404
825     then:
826       required:
827         - power-domains
828
829   - if:
830       not:
831         properties:
832           compatible:
833             contains:
834               enum:
835                 - qcom,pcie-msm8996
836     then:
837       required:
838         - resets
839         - reset-names
840
841   - if:
842       properties:
843         compatible:
844           contains:
845             enum:
846               - qcom,pcie-msm8996
847               - qcom,pcie-sa8775p
848               - qcom,pcie-sc7280
849               - qcom,pcie-sc8180x
850               - qcom,pcie-sdm845
851               - qcom,pcie-sm8150
852               - qcom,pcie-sm8250
853               - qcom,pcie-sm8350
854               - qcom,pcie-sm8450-pcie0
855               - qcom,pcie-sm8450-pcie1
856               - qcom,pcie-sm8550
857     then:
858       oneOf:
859         - properties:
860             interrupts:
861               maxItems: 1
862             interrupt-names:
863               items:
864                 - const: msi
865         - properties:
866             interrupts:
867               minItems: 8
868             interrupt-names:
869               items:
870                 - const: msi0
871                 - const: msi1
872                 - const: msi2
873                 - const: msi3
874                 - const: msi4
875                 - const: msi5
876                 - const: msi6
877                 - const: msi7
878
879   - if:
880       properties:
881         compatible:
882           contains:
883             enum:
884               - qcom,pcie-sc8280xp
885     then:
886       properties:
887         interrupts:
888           minItems: 4
889           maxItems: 4
890         interrupt-names:
891           items:
892             - const: msi0
893             - const: msi1
894             - const: msi2
895             - const: msi3
896
897   - if:
898       properties:
899         compatible:
900           contains:
901             enum:
902               - qcom,pcie-apq8064
903               - qcom,pcie-apq8084
904               - qcom,pcie-ipq4019
905               - qcom,pcie-ipq6018
906               - qcom,pcie-ipq8064
907               - qcom,pcie-ipq8064-v2
908               - qcom,pcie-ipq8074
909               - qcom,pcie-ipq8074-gen3
910               - qcom,pcie-qcs404
911               - qcom,pcie-sa8540p
912     then:
913       properties:
914         interrupts:
915           maxItems: 1
916         interrupt-names:
917           items:
918             - const: msi
919
920 unevaluatedProperties: false
921
922 examples:
923   - |
924     #include <dt-bindings/interrupt-controller/arm-gic.h>
925     pcie@1b500000 {
926       compatible = "qcom,pcie-ipq8064";
927       reg = <0x1b500000 0x1000>,
928             <0x1b502000 0x80>,
929             <0x1b600000 0x100>,
930             <0x0ff00000 0x100000>;
931       reg-names = "dbi", "elbi", "parf", "config";
932       device_type = "pci";
933       linux,pci-domain = <0>;
934       bus-range = <0x00 0xff>;
935       num-lanes = <1>;
936       #address-cells = <3>;
937       #size-cells = <2>;
938       ranges = <0x81000000 0 0 0x0fe00000 0 0x00100000>,
939                <0x82000000 0 0 0x08000000 0 0x07e00000>;
940       interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
941       interrupt-names = "msi";
942       #interrupt-cells = <1>;
943       interrupt-map-mask = <0 0 0 0x7>;
944       interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>,
945                       <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>,
946                       <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>,
947                       <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>;
948       clocks = <&gcc 41>,
949                <&gcc 43>,
950                <&gcc 44>,
951                <&gcc 42>,
952                <&gcc 248>;
953       clock-names = "core", "iface", "phy", "aux", "ref";
954       resets = <&gcc 27>,
955                <&gcc 26>,
956                <&gcc 25>,
957                <&gcc 24>,
958                <&gcc 23>,
959                <&gcc 22>;
960       reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
961       pinctrl-0 = <&pcie_pins_default>;
962       pinctrl-names = "default";
963       vdda-supply = <&pm8921_s3>;
964       vdda_phy-supply = <&pm8921_lvs6>;
965       vdda_refclk-supply = <&ext_3p3v>;
966     };
967   - |
968     #include <dt-bindings/interrupt-controller/arm-gic.h>
969     #include <dt-bindings/gpio/gpio.h>
970     pcie@fc520000 {
971       compatible = "qcom,pcie-apq8084";
972       reg = <0xfc520000 0x2000>,
973             <0xff000000 0x1000>,
974             <0xff001000 0x1000>,
975             <0xff002000 0x2000>;
976       reg-names = "parf", "dbi", "elbi", "config";
977       device_type = "pci";
978       linux,pci-domain = <0>;
979       bus-range = <0x00 0xff>;
980       num-lanes = <1>;
981       #address-cells = <3>;
982       #size-cells = <2>;
983       ranges = <0x81000000 0 0          0xff200000 0 0x00100000>,
984                <0x82000000 0 0x00300000 0xff300000 0 0x00d00000>;
985       interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>;
986       interrupt-names = "msi";
987       #interrupt-cells = <1>;
988       interrupt-map-mask = <0 0 0 0x7>;
989       interrupt-map = <0 0 0 1 &intc 0 244 IRQ_TYPE_LEVEL_HIGH>,
990                       <0 0 0 2 &intc 0 245 IRQ_TYPE_LEVEL_HIGH>,
991                       <0 0 0 3 &intc 0 247 IRQ_TYPE_LEVEL_HIGH>,
992                       <0 0 0 4 &intc 0 248 IRQ_TYPE_LEVEL_HIGH>;
993       clocks = <&gcc 324>,
994                <&gcc 325>,
995                <&gcc 327>,
996                <&gcc 323>;
997       clock-names = "iface", "master_bus", "slave_bus", "aux";
998       resets = <&gcc 81>;
999       reset-names = "core";
1000       power-domains = <&gcc 1>;
1001       vdda-supply = <&pma8084_l3>;
1002       phys = <&pciephy0>;
1003       phy-names = "pciephy";
1004       perst-gpios = <&tlmm 70 GPIO_ACTIVE_LOW>;
1005       pinctrl-0 = <&pcie0_pins_default>;
1006       pinctrl-names = "default";
1007     };
1008 ...