xref: /freebsd/sys/contrib/device-tree/Bindings/pci/qcom,pcie.txt (revision c9ccf3a32da427475985b85d7df023ccfb138c27)
1c66ec88fSEmmanuel Vadot* Qualcomm PCI express root complex
2c66ec88fSEmmanuel Vadot
3c66ec88fSEmmanuel Vadot- compatible:
4c66ec88fSEmmanuel Vadot	Usage: required
5c66ec88fSEmmanuel Vadot	Value type: <stringlist>
6c66ec88fSEmmanuel Vadot	Definition: Value should contain
7c66ec88fSEmmanuel Vadot			- "qcom,pcie-ipq8064" for ipq8064
8c66ec88fSEmmanuel Vadot			- "qcom,pcie-ipq8064-v2" for ipq8064 rev 2 or ipq8065
9c66ec88fSEmmanuel Vadot			- "qcom,pcie-apq8064" for apq8064
10c66ec88fSEmmanuel Vadot			- "qcom,pcie-apq8084" for apq8084
11c66ec88fSEmmanuel Vadot			- "qcom,pcie-msm8996" for msm8996 or apq8096
12c66ec88fSEmmanuel Vadot			- "qcom,pcie-ipq4019" for ipq4019
13c66ec88fSEmmanuel Vadot			- "qcom,pcie-ipq8074" for ipq8074
14c66ec88fSEmmanuel Vadot			- "qcom,pcie-qcs404" for qcs404
158cc087a1SEmmanuel Vadot			- "qcom,pcie-sc8180x" for sc8180x
16c66ec88fSEmmanuel Vadot			- "qcom,pcie-sdm845" for sdm845
175def4c47SEmmanuel Vadot			- "qcom,pcie-sm8250" for sm8250
18*c9ccf3a3SEmmanuel Vadot			- "qcom,pcie-sm8450-pcie0" for PCIe0 on sm8450
19*c9ccf3a3SEmmanuel Vadot			- "qcom,pcie-sm8450-pcie1" for PCIe1 on sm8450
205956d97fSEmmanuel Vadot			- "qcom,pcie-ipq6018" for ipq6018
21c66ec88fSEmmanuel Vadot
22c66ec88fSEmmanuel Vadot- reg:
23c66ec88fSEmmanuel Vadot	Usage: required
24c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
25c66ec88fSEmmanuel Vadot	Definition: Register ranges as listed in the reg-names property
26c66ec88fSEmmanuel Vadot
27c66ec88fSEmmanuel Vadot- reg-names:
28c66ec88fSEmmanuel Vadot	Usage: required
29c66ec88fSEmmanuel Vadot	Value type: <stringlist>
30c66ec88fSEmmanuel Vadot	Definition: Must include the following entries
31c66ec88fSEmmanuel Vadot			- "parf"   Qualcomm specific registers
32c66ec88fSEmmanuel Vadot			- "dbi"	   DesignWare PCIe registers
33c66ec88fSEmmanuel Vadot			- "elbi"   External local bus interface registers
34c66ec88fSEmmanuel Vadot			- "config" PCIe configuration space
355def4c47SEmmanuel Vadot			- "atu"    ATU address space (optional)
36c66ec88fSEmmanuel Vadot
37c66ec88fSEmmanuel Vadot- device_type:
38c66ec88fSEmmanuel Vadot	Usage: required
39c66ec88fSEmmanuel Vadot	Value type: <string>
40354d7675SEmmanuel Vadot	Definition: Should be "pci". As specified in snps,dw-pcie.yaml
41c66ec88fSEmmanuel Vadot
42c66ec88fSEmmanuel Vadot- #address-cells:
43c66ec88fSEmmanuel Vadot	Usage: required
44c66ec88fSEmmanuel Vadot	Value type: <u32>
45354d7675SEmmanuel Vadot	Definition: Should be 3. As specified in snps,dw-pcie.yaml
46c66ec88fSEmmanuel Vadot
47c66ec88fSEmmanuel Vadot- #size-cells:
48c66ec88fSEmmanuel Vadot	Usage: required
49c66ec88fSEmmanuel Vadot	Value type: <u32>
50354d7675SEmmanuel Vadot	Definition: Should be 2. As specified in snps,dw-pcie.yaml
51c66ec88fSEmmanuel Vadot
52c66ec88fSEmmanuel Vadot- ranges:
53c66ec88fSEmmanuel Vadot	Usage: required
54c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
55354d7675SEmmanuel Vadot	Definition: As specified in snps,dw-pcie.yaml
56c66ec88fSEmmanuel Vadot
57c66ec88fSEmmanuel Vadot- interrupts:
58c66ec88fSEmmanuel Vadot	Usage: required
59c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
60c66ec88fSEmmanuel Vadot	Definition: MSI interrupt
61c66ec88fSEmmanuel Vadot
62c66ec88fSEmmanuel Vadot- interrupt-names:
63c66ec88fSEmmanuel Vadot	Usage: required
64c66ec88fSEmmanuel Vadot	Value type: <stringlist>
65c66ec88fSEmmanuel Vadot	Definition: Should contain "msi"
66c66ec88fSEmmanuel Vadot
67c66ec88fSEmmanuel Vadot- #interrupt-cells:
68c66ec88fSEmmanuel Vadot	Usage: required
69c66ec88fSEmmanuel Vadot	Value type: <u32>
70354d7675SEmmanuel Vadot	Definition: Should be 1. As specified in snps,dw-pcie.yaml
71c66ec88fSEmmanuel Vadot
72c66ec88fSEmmanuel Vadot- interrupt-map-mask:
73c66ec88fSEmmanuel Vadot	Usage: required
74c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
75354d7675SEmmanuel Vadot	Definition: As specified in snps,dw-pcie.yaml
76c66ec88fSEmmanuel Vadot
77c66ec88fSEmmanuel Vadot- interrupt-map:
78c66ec88fSEmmanuel Vadot	Usage: required
79c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
80354d7675SEmmanuel Vadot	Definition: As specified in snps,dw-pcie.yaml
81c66ec88fSEmmanuel Vadot
82c66ec88fSEmmanuel Vadot- clocks:
83c66ec88fSEmmanuel Vadot	Usage: required
84c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
85c66ec88fSEmmanuel Vadot	Definition: List of phandle and clock specifier pairs as listed
86c66ec88fSEmmanuel Vadot		    in clock-names property
87c66ec88fSEmmanuel Vadot
88c66ec88fSEmmanuel Vadot- clock-names:
89c66ec88fSEmmanuel Vadot	Usage: required
90c66ec88fSEmmanuel Vadot	Value type: <stringlist>
91c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
92c66ec88fSEmmanuel Vadot			- "iface"	Configuration AHB clock
93c66ec88fSEmmanuel Vadot
94c66ec88fSEmmanuel Vadot- clock-names:
95c66ec88fSEmmanuel Vadot	Usage: required for ipq/apq8064
96c66ec88fSEmmanuel Vadot	Value type: <stringlist>
97c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
98c66ec88fSEmmanuel Vadot			- "core"	Clocks the pcie hw block
99c66ec88fSEmmanuel Vadot			- "phy"		Clocks the pcie PHY block
100c66ec88fSEmmanuel Vadot			- "aux" 	Clocks the pcie AUX block
101c66ec88fSEmmanuel Vadot			- "ref" 	Clocks the pcie ref block
102c66ec88fSEmmanuel Vadot- clock-names:
103c66ec88fSEmmanuel Vadot	Usage: required for apq8084/ipq4019
104c66ec88fSEmmanuel Vadot	Value type: <stringlist>
105c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
106c66ec88fSEmmanuel Vadot			- "aux"		Auxiliary (AUX) clock
107c66ec88fSEmmanuel Vadot			- "bus_master"	Master AXI clock
108c66ec88fSEmmanuel Vadot			- "bus_slave"	Slave AXI clock
109c66ec88fSEmmanuel Vadot
110c66ec88fSEmmanuel Vadot- clock-names:
111c66ec88fSEmmanuel Vadot	Usage: required for msm8996/apq8096
112c66ec88fSEmmanuel Vadot	Value type: <stringlist>
113c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
114c66ec88fSEmmanuel Vadot			- "pipe"	Pipe Clock driving internal logic
115c66ec88fSEmmanuel Vadot			- "aux"		Auxiliary (AUX) clock
116c66ec88fSEmmanuel Vadot			- "cfg"		Configuration clock
117c66ec88fSEmmanuel Vadot			- "bus_master"	Master AXI clock
118c66ec88fSEmmanuel Vadot			- "bus_slave"	Slave AXI clock
119c66ec88fSEmmanuel Vadot
120c66ec88fSEmmanuel Vadot- clock-names:
121c66ec88fSEmmanuel Vadot	Usage: required for ipq8074
122c66ec88fSEmmanuel Vadot	Value type: <stringlist>
123c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
124c66ec88fSEmmanuel Vadot			- "iface"	PCIe to SysNOC BIU clock
125c66ec88fSEmmanuel Vadot			- "axi_m"	AXI Master clock
126c66ec88fSEmmanuel Vadot			- "axi_s"	AXI Slave clock
127c66ec88fSEmmanuel Vadot			- "ahb"		AHB clock
128c66ec88fSEmmanuel Vadot			- "aux"		Auxiliary clock
129c66ec88fSEmmanuel Vadot
130c66ec88fSEmmanuel Vadot- clock-names:
1315956d97fSEmmanuel Vadot	Usage: required for ipq6018
1325956d97fSEmmanuel Vadot	Value type: <stringlist>
1335956d97fSEmmanuel Vadot	Definition: Should contain the following entries
1345956d97fSEmmanuel Vadot			- "iface"	PCIe to SysNOC BIU clock
1355956d97fSEmmanuel Vadot			- "axi_m"	AXI Master clock
1365956d97fSEmmanuel Vadot			- "axi_s"	AXI Slave clock
1375956d97fSEmmanuel Vadot			- "axi_bridge"	AXI bridge clock
1385956d97fSEmmanuel Vadot			- "rchng"
1395956d97fSEmmanuel Vadot
1405956d97fSEmmanuel Vadot- clock-names:
141c66ec88fSEmmanuel Vadot	Usage: required for qcs404
142c66ec88fSEmmanuel Vadot	Value type: <stringlist>
143c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
144c66ec88fSEmmanuel Vadot			- "iface"	AHB clock
145c66ec88fSEmmanuel Vadot			- "aux"		Auxiliary clock
146c66ec88fSEmmanuel Vadot			- "master_bus"	AXI Master clock
147c66ec88fSEmmanuel Vadot			- "slave_bus"	AXI Slave clock
148c66ec88fSEmmanuel Vadot
149c66ec88fSEmmanuel Vadot- clock-names:
150c66ec88fSEmmanuel Vadot	Usage: required for sdm845
151c66ec88fSEmmanuel Vadot	Value type: <stringlist>
152c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
153c66ec88fSEmmanuel Vadot			- "aux"		Auxiliary clock
154c66ec88fSEmmanuel Vadot			- "cfg"		Configuration clock
155c66ec88fSEmmanuel Vadot			- "bus_master"	Master AXI clock
156c66ec88fSEmmanuel Vadot			- "bus_slave"	Slave AXI clock
157c66ec88fSEmmanuel Vadot			- "slave_q2a"	Slave Q2A clock
158c66ec88fSEmmanuel Vadot			- "tbu"		PCIe TBU clock
159c66ec88fSEmmanuel Vadot			- "pipe"	PIPE clock
160c66ec88fSEmmanuel Vadot
1615def4c47SEmmanuel Vadot- clock-names:
1628cc087a1SEmmanuel Vadot	Usage: required for sc8180x and sm8250
1635def4c47SEmmanuel Vadot	Value type: <stringlist>
1645def4c47SEmmanuel Vadot	Definition: Should contain the following entries
1655def4c47SEmmanuel Vadot			- "aux"		Auxiliary clock
1665def4c47SEmmanuel Vadot			- "cfg"		Configuration clock
1675def4c47SEmmanuel Vadot			- "bus_master"	Master AXI clock
1685def4c47SEmmanuel Vadot			- "bus_slave"	Slave AXI clock
1695def4c47SEmmanuel Vadot			- "slave_q2a"	Slave Q2A clock
1705def4c47SEmmanuel Vadot			- "tbu"		PCIe TBU clock
1715def4c47SEmmanuel Vadot			- "ddrss_sf_tbu" PCIe SF TBU clock
1725def4c47SEmmanuel Vadot			- "pipe"	PIPE clock
1735def4c47SEmmanuel Vadot
174*c9ccf3a3SEmmanuel Vadot- clock-names:
175*c9ccf3a3SEmmanuel Vadot	Usage: required for sm8450-pcie0 and sm8450-pcie1
176*c9ccf3a3SEmmanuel Vadot	Value type: <stringlist>
177*c9ccf3a3SEmmanuel Vadot	Definition: Should contain the following entries
178*c9ccf3a3SEmmanuel Vadot			- "aux"         Auxiliary clock
179*c9ccf3a3SEmmanuel Vadot			- "cfg"         Configuration clock
180*c9ccf3a3SEmmanuel Vadot			- "bus_master"  Master AXI clock
181*c9ccf3a3SEmmanuel Vadot			- "bus_slave"   Slave AXI clock
182*c9ccf3a3SEmmanuel Vadot			- "slave_q2a"   Slave Q2A clock
183*c9ccf3a3SEmmanuel Vadot			- "tbu"         PCIe TBU clock
184*c9ccf3a3SEmmanuel Vadot			- "ddrss_sf_tbu" PCIe SF TBU clock
185*c9ccf3a3SEmmanuel Vadot			- "pipe"        PIPE clock
186*c9ccf3a3SEmmanuel Vadot			- "pipe_mux"    PIPE MUX
187*c9ccf3a3SEmmanuel Vadot			- "phy_pipe"    PIPE output clock
188*c9ccf3a3SEmmanuel Vadot			- "ref"         REFERENCE clock
189*c9ccf3a3SEmmanuel Vadot			- "aggre0"	Aggre NoC PCIe0 AXI clock, only for sm8450-pcie0
190*c9ccf3a3SEmmanuel Vadot			- "aggre1"	Aggre NoC PCIe1 AXI clock
191*c9ccf3a3SEmmanuel Vadot
192c66ec88fSEmmanuel Vadot- resets:
193c66ec88fSEmmanuel Vadot	Usage: required
194c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
195c66ec88fSEmmanuel Vadot	Definition: List of phandle and reset specifier pairs as listed
196c66ec88fSEmmanuel Vadot		    in reset-names property
197c66ec88fSEmmanuel Vadot
198c66ec88fSEmmanuel Vadot- reset-names:
199c66ec88fSEmmanuel Vadot	Usage: required for ipq/apq8064
200c66ec88fSEmmanuel Vadot	Value type: <stringlist>
201c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
202c66ec88fSEmmanuel Vadot			- "axi"  AXI reset
203c66ec88fSEmmanuel Vadot			- "ahb"  AHB reset
204c66ec88fSEmmanuel Vadot			- "por"  POR reset
205c66ec88fSEmmanuel Vadot			- "pci"  PCI reset
206c66ec88fSEmmanuel Vadot			- "phy"  PHY reset
207c66ec88fSEmmanuel Vadot
208c66ec88fSEmmanuel Vadot- reset-names:
209c66ec88fSEmmanuel Vadot	Usage: required for apq8084
210c66ec88fSEmmanuel Vadot	Value type: <stringlist>
211c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
212c66ec88fSEmmanuel Vadot			- "core" Core reset
213c66ec88fSEmmanuel Vadot
214c66ec88fSEmmanuel Vadot- reset-names:
215c66ec88fSEmmanuel Vadot	Usage: required for ipq/apq8064
216c66ec88fSEmmanuel Vadot	Value type: <stringlist>
217c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
218c66ec88fSEmmanuel Vadot			- "axi_m"		AXI master reset
219c66ec88fSEmmanuel Vadot			- "axi_s"		AXI slave reset
220c66ec88fSEmmanuel Vadot			- "pipe"		PIPE reset
221c66ec88fSEmmanuel Vadot			- "axi_m_vmid"		VMID reset
222c66ec88fSEmmanuel Vadot			- "axi_s_xpu"		XPU reset
223c66ec88fSEmmanuel Vadot			- "parf"		PARF reset
224c66ec88fSEmmanuel Vadot			- "phy"			PHY reset
225c66ec88fSEmmanuel Vadot			- "axi_m_sticky"	AXI sticky reset
226c66ec88fSEmmanuel Vadot			- "pipe_sticky"		PIPE sticky reset
227c66ec88fSEmmanuel Vadot			- "pwr"			PWR reset
228c66ec88fSEmmanuel Vadot			- "ahb"			AHB reset
229c66ec88fSEmmanuel Vadot			- "phy_ahb"		PHY AHB reset
230c66ec88fSEmmanuel Vadot			- "ext"			EXT reset
231c66ec88fSEmmanuel Vadot
232c66ec88fSEmmanuel Vadot- reset-names:
233c66ec88fSEmmanuel Vadot	Usage: required for ipq8074
234c66ec88fSEmmanuel Vadot	Value type: <stringlist>
235c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
236c66ec88fSEmmanuel Vadot			- "pipe"		PIPE reset
237c66ec88fSEmmanuel Vadot			- "sleep"		Sleep reset
238c66ec88fSEmmanuel Vadot			- "sticky"		Core Sticky reset
239c66ec88fSEmmanuel Vadot			- "axi_m"		AXI Master reset
240c66ec88fSEmmanuel Vadot			- "axi_s"		AXI Slave reset
241c66ec88fSEmmanuel Vadot			- "ahb"			AHB Reset
242c66ec88fSEmmanuel Vadot			- "axi_m_sticky"	AXI Master Sticky reset
243c66ec88fSEmmanuel Vadot
244c66ec88fSEmmanuel Vadot- reset-names:
2455956d97fSEmmanuel Vadot	Usage: required for ipq6018
2465956d97fSEmmanuel Vadot	Value type: <stringlist>
2475956d97fSEmmanuel Vadot	Definition: Should contain the following entries
2485956d97fSEmmanuel Vadot			- "pipe"		PIPE reset
2495956d97fSEmmanuel Vadot			- "sleep"		Sleep reset
2505956d97fSEmmanuel Vadot			- "sticky"		Core Sticky reset
2515956d97fSEmmanuel Vadot			- "axi_m"		AXI Master reset
2525956d97fSEmmanuel Vadot			- "axi_s"		AXI Slave reset
2535956d97fSEmmanuel Vadot			- "ahb"			AHB Reset
2545956d97fSEmmanuel Vadot			- "axi_m_sticky"	AXI Master Sticky reset
2555956d97fSEmmanuel Vadot			- "axi_s_sticky"	AXI Slave Sticky reset
2565956d97fSEmmanuel Vadot
2575956d97fSEmmanuel Vadot- reset-names:
258c66ec88fSEmmanuel Vadot	Usage: required for qcs404
259c66ec88fSEmmanuel Vadot	Value type: <stringlist>
260c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
261c66ec88fSEmmanuel Vadot			- "axi_m"		AXI Master reset
262c66ec88fSEmmanuel Vadot			- "axi_s"		AXI Slave reset
263c66ec88fSEmmanuel Vadot			- "axi_m_sticky"	AXI Master Sticky reset
264c66ec88fSEmmanuel Vadot			- "pipe_sticky"		PIPE sticky reset
265c66ec88fSEmmanuel Vadot			- "pwr"			PWR reset
266c66ec88fSEmmanuel Vadot			- "ahb"			AHB reset
267c66ec88fSEmmanuel Vadot
268c66ec88fSEmmanuel Vadot- reset-names:
269*c9ccf3a3SEmmanuel Vadot	Usage: required for sc8180x, sdm845, sm8250 and sm8450
270c66ec88fSEmmanuel Vadot	Value type: <stringlist>
271c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
272c66ec88fSEmmanuel Vadot			- "pci"			PCIe core reset
273c66ec88fSEmmanuel Vadot
274c66ec88fSEmmanuel Vadot- power-domains:
275c66ec88fSEmmanuel Vadot	Usage: required for apq8084 and msm8996/apq8096
276c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
277c66ec88fSEmmanuel Vadot	Definition: A phandle and power domain specifier pair to the
278c66ec88fSEmmanuel Vadot		    power domain which is responsible for collapsing
279c66ec88fSEmmanuel Vadot		    and restoring power to the peripheral
280c66ec88fSEmmanuel Vadot
281c66ec88fSEmmanuel Vadot- vdda-supply:
282c66ec88fSEmmanuel Vadot	Usage: required
283c66ec88fSEmmanuel Vadot	Value type: <phandle>
284c66ec88fSEmmanuel Vadot	Definition: A phandle to the core analog power supply
285c66ec88fSEmmanuel Vadot
286c66ec88fSEmmanuel Vadot- vdda_phy-supply:
287c66ec88fSEmmanuel Vadot	Usage: required for ipq/apq8064
288c66ec88fSEmmanuel Vadot	Value type: <phandle>
289c66ec88fSEmmanuel Vadot	Definition: A phandle to the analog power supply for PHY
290c66ec88fSEmmanuel Vadot
291c66ec88fSEmmanuel Vadot- vdda_refclk-supply:
292c66ec88fSEmmanuel Vadot	Usage: required for ipq/apq8064
293c66ec88fSEmmanuel Vadot	Value type: <phandle>
294c66ec88fSEmmanuel Vadot	Definition: A phandle to the analog power supply for IC which generates
295c66ec88fSEmmanuel Vadot		    reference clock
296c66ec88fSEmmanuel Vadot- vddpe-3v3-supply:
297c66ec88fSEmmanuel Vadot	Usage: optional
298c66ec88fSEmmanuel Vadot	Value type: <phandle>
299c66ec88fSEmmanuel Vadot	Definition: A phandle to the PCIe endpoint power supply
300c66ec88fSEmmanuel Vadot
301c66ec88fSEmmanuel Vadot- phys:
302c66ec88fSEmmanuel Vadot	Usage: required for apq8084 and qcs404
303c66ec88fSEmmanuel Vadot	Value type: <phandle>
304c66ec88fSEmmanuel Vadot	Definition: List of phandle(s) as listed in phy-names property
305c66ec88fSEmmanuel Vadot
306c66ec88fSEmmanuel Vadot- phy-names:
307c66ec88fSEmmanuel Vadot	Usage: required for apq8084 and qcs404
308c66ec88fSEmmanuel Vadot	Value type: <stringlist>
309c66ec88fSEmmanuel Vadot	Definition: Should contain "pciephy"
310c66ec88fSEmmanuel Vadot
311c66ec88fSEmmanuel Vadot- <name>-gpios:
312c66ec88fSEmmanuel Vadot	Usage: optional
313c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
314c66ec88fSEmmanuel Vadot	Definition: List of phandle and GPIO specifier pairs. Should contain
315c66ec88fSEmmanuel Vadot			- "perst-gpios"	PCIe endpoint reset signal line
316c66ec88fSEmmanuel Vadot			- "wake-gpios"	PCIe endpoint wake signal line
317c66ec88fSEmmanuel Vadot
318c66ec88fSEmmanuel Vadot* Example for ipq/apq8064
319c66ec88fSEmmanuel Vadot	pcie@1b500000 {
320c66ec88fSEmmanuel Vadot		compatible = "qcom,pcie-apq8064", "qcom,pcie-ipq8064", "snps,dw-pcie";
321c66ec88fSEmmanuel Vadot		reg = <0x1b500000 0x1000
322c66ec88fSEmmanuel Vadot		       0x1b502000 0x80
323c66ec88fSEmmanuel Vadot		       0x1b600000 0x100
324c66ec88fSEmmanuel Vadot		       0x0ff00000 0x100000>;
325c66ec88fSEmmanuel Vadot		reg-names = "dbi", "elbi", "parf", "config";
326c66ec88fSEmmanuel Vadot		device_type = "pci";
327c66ec88fSEmmanuel Vadot		linux,pci-domain = <0>;
328c66ec88fSEmmanuel Vadot		bus-range = <0x00 0xff>;
329c66ec88fSEmmanuel Vadot		num-lanes = <1>;
330c66ec88fSEmmanuel Vadot		#address-cells = <3>;
331c66ec88fSEmmanuel Vadot		#size-cells = <2>;
332c66ec88fSEmmanuel Vadot		ranges = <0x81000000 0 0 0x0fe00000 0 0x00100000   /* I/O */
333c66ec88fSEmmanuel Vadot			  0x82000000 0 0 0x08000000 0 0x07e00000>; /* memory */
334c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 238 IRQ_TYPE_NONE>;
335c66ec88fSEmmanuel Vadot		interrupt-names = "msi";
336c66ec88fSEmmanuel Vadot		#interrupt-cells = <1>;
337c66ec88fSEmmanuel Vadot		interrupt-map-mask = <0 0 0 0x7>;
338c66ec88fSEmmanuel Vadot		interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
339c66ec88fSEmmanuel Vadot				<0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
340c66ec88fSEmmanuel Vadot				<0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
341c66ec88fSEmmanuel Vadot				<0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
342c66ec88fSEmmanuel Vadot		clocks = <&gcc PCIE_A_CLK>,
343c66ec88fSEmmanuel Vadot			 <&gcc PCIE_H_CLK>,
344c66ec88fSEmmanuel Vadot			 <&gcc PCIE_PHY_CLK>,
345c66ec88fSEmmanuel Vadot			 <&gcc PCIE_AUX_CLK>,
346c66ec88fSEmmanuel Vadot			 <&gcc PCIE_ALT_REF_CLK>;
347c66ec88fSEmmanuel Vadot		clock-names = "core", "iface", "phy", "aux", "ref";
348c66ec88fSEmmanuel Vadot		resets = <&gcc PCIE_ACLK_RESET>,
349c66ec88fSEmmanuel Vadot			 <&gcc PCIE_HCLK_RESET>,
350c66ec88fSEmmanuel Vadot			 <&gcc PCIE_POR_RESET>,
351c66ec88fSEmmanuel Vadot			 <&gcc PCIE_PCI_RESET>,
352c66ec88fSEmmanuel Vadot			 <&gcc PCIE_PHY_RESET>,
353c66ec88fSEmmanuel Vadot			 <&gcc PCIE_EXT_RESET>;
354c66ec88fSEmmanuel Vadot		reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
355c66ec88fSEmmanuel Vadot		pinctrl-0 = <&pcie_pins_default>;
356c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
357c66ec88fSEmmanuel Vadot	};
358c66ec88fSEmmanuel Vadot
359c66ec88fSEmmanuel Vadot* Example for apq8084
360c66ec88fSEmmanuel Vadot	pcie0@fc520000 {
361c66ec88fSEmmanuel Vadot		compatible = "qcom,pcie-apq8084", "snps,dw-pcie";
362c66ec88fSEmmanuel Vadot		reg = <0xfc520000 0x2000>,
363c66ec88fSEmmanuel Vadot		      <0xff000000 0x1000>,
364c66ec88fSEmmanuel Vadot		      <0xff001000 0x1000>,
365c66ec88fSEmmanuel Vadot		      <0xff002000 0x2000>;
366c66ec88fSEmmanuel Vadot		reg-names = "parf", "dbi", "elbi", "config";
367c66ec88fSEmmanuel Vadot		device_type = "pci";
368c66ec88fSEmmanuel Vadot		linux,pci-domain = <0>;
369c66ec88fSEmmanuel Vadot		bus-range = <0x00 0xff>;
370c66ec88fSEmmanuel Vadot		num-lanes = <1>;
371c66ec88fSEmmanuel Vadot		#address-cells = <3>;
372c66ec88fSEmmanuel Vadot		#size-cells = <2>;
373c66ec88fSEmmanuel Vadot		ranges = <0x81000000 0 0          0xff200000 0 0x00100000   /* I/O */
374c66ec88fSEmmanuel Vadot			  0x82000000 0 0x00300000 0xff300000 0 0x00d00000>; /* memory */
375c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 243 IRQ_TYPE_NONE>;
376c66ec88fSEmmanuel Vadot		interrupt-names = "msi";
377c66ec88fSEmmanuel Vadot		#interrupt-cells = <1>;
378c66ec88fSEmmanuel Vadot		interrupt-map-mask = <0 0 0 0x7>;
379c66ec88fSEmmanuel Vadot		interrupt-map = <0 0 0 1 &intc 0 244 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
380c66ec88fSEmmanuel Vadot				<0 0 0 2 &intc 0 245 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
381c66ec88fSEmmanuel Vadot				<0 0 0 3 &intc 0 247 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
382c66ec88fSEmmanuel Vadot				<0 0 0 4 &intc 0 248 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
383c66ec88fSEmmanuel Vadot		clocks = <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
384c66ec88fSEmmanuel Vadot			 <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
385c66ec88fSEmmanuel Vadot			 <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
386c66ec88fSEmmanuel Vadot			 <&gcc GCC_PCIE_0_AUX_CLK>;
387c66ec88fSEmmanuel Vadot		clock-names = "iface", "master_bus", "slave_bus", "aux";
388c66ec88fSEmmanuel Vadot		resets = <&gcc GCC_PCIE_0_BCR>;
389c66ec88fSEmmanuel Vadot		reset-names = "core";
390c66ec88fSEmmanuel Vadot		power-domains = <&gcc PCIE0_GDSC>;
391c66ec88fSEmmanuel Vadot		vdda-supply = <&pma8084_l3>;
392c66ec88fSEmmanuel Vadot		phys = <&pciephy0>;
393c66ec88fSEmmanuel Vadot		phy-names = "pciephy";
394c66ec88fSEmmanuel Vadot		perst-gpio = <&tlmm 70 GPIO_ACTIVE_LOW>;
395c66ec88fSEmmanuel Vadot		pinctrl-0 = <&pcie0_pins_default>;
396c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
397c66ec88fSEmmanuel Vadot	};
398