xref: /freebsd/sys/contrib/device-tree/Bindings/pci/qcom,pcie.txt (revision 8cc087a1eee9ec1ca9f7ac1e63ad51bdb5a682eb)
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
15*8cc087a1SEmmanuel Vadot			- "qcom,pcie-sc8180x" for sc8180x
16c66ec88fSEmmanuel Vadot			- "qcom,pcie-sdm845" for sdm845
175def4c47SEmmanuel Vadot			- "qcom,pcie-sm8250" for sm8250
185956d97fSEmmanuel Vadot			- "qcom,pcie-ipq6018" for ipq6018
19c66ec88fSEmmanuel Vadot
20c66ec88fSEmmanuel Vadot- reg:
21c66ec88fSEmmanuel Vadot	Usage: required
22c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
23c66ec88fSEmmanuel Vadot	Definition: Register ranges as listed in the reg-names property
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot- reg-names:
26c66ec88fSEmmanuel Vadot	Usage: required
27c66ec88fSEmmanuel Vadot	Value type: <stringlist>
28c66ec88fSEmmanuel Vadot	Definition: Must include the following entries
29c66ec88fSEmmanuel Vadot			- "parf"   Qualcomm specific registers
30c66ec88fSEmmanuel Vadot			- "dbi"	   DesignWare PCIe registers
31c66ec88fSEmmanuel Vadot			- "elbi"   External local bus interface registers
32c66ec88fSEmmanuel Vadot			- "config" PCIe configuration space
335def4c47SEmmanuel Vadot			- "atu"    ATU address space (optional)
34c66ec88fSEmmanuel Vadot
35c66ec88fSEmmanuel Vadot- device_type:
36c66ec88fSEmmanuel Vadot	Usage: required
37c66ec88fSEmmanuel Vadot	Value type: <string>
38354d7675SEmmanuel Vadot	Definition: Should be "pci". As specified in snps,dw-pcie.yaml
39c66ec88fSEmmanuel Vadot
40c66ec88fSEmmanuel Vadot- #address-cells:
41c66ec88fSEmmanuel Vadot	Usage: required
42c66ec88fSEmmanuel Vadot	Value type: <u32>
43354d7675SEmmanuel Vadot	Definition: Should be 3. As specified in snps,dw-pcie.yaml
44c66ec88fSEmmanuel Vadot
45c66ec88fSEmmanuel Vadot- #size-cells:
46c66ec88fSEmmanuel Vadot	Usage: required
47c66ec88fSEmmanuel Vadot	Value type: <u32>
48354d7675SEmmanuel Vadot	Definition: Should be 2. As specified in snps,dw-pcie.yaml
49c66ec88fSEmmanuel Vadot
50c66ec88fSEmmanuel Vadot- ranges:
51c66ec88fSEmmanuel Vadot	Usage: required
52c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
53354d7675SEmmanuel Vadot	Definition: As specified in snps,dw-pcie.yaml
54c66ec88fSEmmanuel Vadot
55c66ec88fSEmmanuel Vadot- interrupts:
56c66ec88fSEmmanuel Vadot	Usage: required
57c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
58c66ec88fSEmmanuel Vadot	Definition: MSI interrupt
59c66ec88fSEmmanuel Vadot
60c66ec88fSEmmanuel Vadot- interrupt-names:
61c66ec88fSEmmanuel Vadot	Usage: required
62c66ec88fSEmmanuel Vadot	Value type: <stringlist>
63c66ec88fSEmmanuel Vadot	Definition: Should contain "msi"
64c66ec88fSEmmanuel Vadot
65c66ec88fSEmmanuel Vadot- #interrupt-cells:
66c66ec88fSEmmanuel Vadot	Usage: required
67c66ec88fSEmmanuel Vadot	Value type: <u32>
68354d7675SEmmanuel Vadot	Definition: Should be 1. As specified in snps,dw-pcie.yaml
69c66ec88fSEmmanuel Vadot
70c66ec88fSEmmanuel Vadot- interrupt-map-mask:
71c66ec88fSEmmanuel Vadot	Usage: required
72c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
73354d7675SEmmanuel Vadot	Definition: As specified in snps,dw-pcie.yaml
74c66ec88fSEmmanuel Vadot
75c66ec88fSEmmanuel Vadot- interrupt-map:
76c66ec88fSEmmanuel Vadot	Usage: required
77c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
78354d7675SEmmanuel Vadot	Definition: As specified in snps,dw-pcie.yaml
79c66ec88fSEmmanuel Vadot
80c66ec88fSEmmanuel Vadot- clocks:
81c66ec88fSEmmanuel Vadot	Usage: required
82c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
83c66ec88fSEmmanuel Vadot	Definition: List of phandle and clock specifier pairs as listed
84c66ec88fSEmmanuel Vadot		    in clock-names property
85c66ec88fSEmmanuel Vadot
86c66ec88fSEmmanuel Vadot- clock-names:
87c66ec88fSEmmanuel Vadot	Usage: required
88c66ec88fSEmmanuel Vadot	Value type: <stringlist>
89c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
90c66ec88fSEmmanuel Vadot			- "iface"	Configuration AHB clock
91c66ec88fSEmmanuel Vadot
92c66ec88fSEmmanuel Vadot- clock-names:
93c66ec88fSEmmanuel Vadot	Usage: required for ipq/apq8064
94c66ec88fSEmmanuel Vadot	Value type: <stringlist>
95c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
96c66ec88fSEmmanuel Vadot			- "core"	Clocks the pcie hw block
97c66ec88fSEmmanuel Vadot			- "phy"		Clocks the pcie PHY block
98c66ec88fSEmmanuel Vadot			- "aux" 	Clocks the pcie AUX block
99c66ec88fSEmmanuel Vadot			- "ref" 	Clocks the pcie ref block
100c66ec88fSEmmanuel Vadot- clock-names:
101c66ec88fSEmmanuel Vadot	Usage: required for apq8084/ipq4019
102c66ec88fSEmmanuel Vadot	Value type: <stringlist>
103c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
104c66ec88fSEmmanuel Vadot			- "aux"		Auxiliary (AUX) clock
105c66ec88fSEmmanuel Vadot			- "bus_master"	Master AXI clock
106c66ec88fSEmmanuel Vadot			- "bus_slave"	Slave AXI clock
107c66ec88fSEmmanuel Vadot
108c66ec88fSEmmanuel Vadot- clock-names:
109c66ec88fSEmmanuel Vadot	Usage: required for msm8996/apq8096
110c66ec88fSEmmanuel Vadot	Value type: <stringlist>
111c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
112c66ec88fSEmmanuel Vadot			- "pipe"	Pipe Clock driving internal logic
113c66ec88fSEmmanuel Vadot			- "aux"		Auxiliary (AUX) clock
114c66ec88fSEmmanuel Vadot			- "cfg"		Configuration clock
115c66ec88fSEmmanuel Vadot			- "bus_master"	Master AXI clock
116c66ec88fSEmmanuel Vadot			- "bus_slave"	Slave AXI clock
117c66ec88fSEmmanuel Vadot
118c66ec88fSEmmanuel Vadot- clock-names:
119c66ec88fSEmmanuel Vadot	Usage: required for ipq8074
120c66ec88fSEmmanuel Vadot	Value type: <stringlist>
121c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
122c66ec88fSEmmanuel Vadot			- "iface"	PCIe to SysNOC BIU clock
123c66ec88fSEmmanuel Vadot			- "axi_m"	AXI Master clock
124c66ec88fSEmmanuel Vadot			- "axi_s"	AXI Slave clock
125c66ec88fSEmmanuel Vadot			- "ahb"		AHB clock
126c66ec88fSEmmanuel Vadot			- "aux"		Auxiliary clock
127c66ec88fSEmmanuel Vadot
128c66ec88fSEmmanuel Vadot- clock-names:
1295956d97fSEmmanuel Vadot	Usage: required for ipq6018
1305956d97fSEmmanuel Vadot	Value type: <stringlist>
1315956d97fSEmmanuel Vadot	Definition: Should contain the following entries
1325956d97fSEmmanuel Vadot			- "iface"	PCIe to SysNOC BIU clock
1335956d97fSEmmanuel Vadot			- "axi_m"	AXI Master clock
1345956d97fSEmmanuel Vadot			- "axi_s"	AXI Slave clock
1355956d97fSEmmanuel Vadot			- "axi_bridge"	AXI bridge clock
1365956d97fSEmmanuel Vadot			- "rchng"
1375956d97fSEmmanuel Vadot
1385956d97fSEmmanuel Vadot- clock-names:
139c66ec88fSEmmanuel Vadot	Usage: required for qcs404
140c66ec88fSEmmanuel Vadot	Value type: <stringlist>
141c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
142c66ec88fSEmmanuel Vadot			- "iface"	AHB clock
143c66ec88fSEmmanuel Vadot			- "aux"		Auxiliary clock
144c66ec88fSEmmanuel Vadot			- "master_bus"	AXI Master clock
145c66ec88fSEmmanuel Vadot			- "slave_bus"	AXI Slave clock
146c66ec88fSEmmanuel Vadot
147c66ec88fSEmmanuel Vadot- clock-names:
148c66ec88fSEmmanuel Vadot	Usage: required for sdm845
149c66ec88fSEmmanuel Vadot	Value type: <stringlist>
150c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
151c66ec88fSEmmanuel Vadot			- "aux"		Auxiliary clock
152c66ec88fSEmmanuel Vadot			- "cfg"		Configuration clock
153c66ec88fSEmmanuel Vadot			- "bus_master"	Master AXI clock
154c66ec88fSEmmanuel Vadot			- "bus_slave"	Slave AXI clock
155c66ec88fSEmmanuel Vadot			- "slave_q2a"	Slave Q2A clock
156c66ec88fSEmmanuel Vadot			- "tbu"		PCIe TBU clock
157c66ec88fSEmmanuel Vadot			- "pipe"	PIPE clock
158c66ec88fSEmmanuel Vadot
1595def4c47SEmmanuel Vadot- clock-names:
160*8cc087a1SEmmanuel Vadot	Usage: required for sc8180x and sm8250
1615def4c47SEmmanuel Vadot	Value type: <stringlist>
1625def4c47SEmmanuel Vadot	Definition: Should contain the following entries
1635def4c47SEmmanuel Vadot			- "aux"		Auxiliary clock
1645def4c47SEmmanuel Vadot			- "cfg"		Configuration clock
1655def4c47SEmmanuel Vadot			- "bus_master"	Master AXI clock
1665def4c47SEmmanuel Vadot			- "bus_slave"	Slave AXI clock
1675def4c47SEmmanuel Vadot			- "slave_q2a"	Slave Q2A clock
1685def4c47SEmmanuel Vadot			- "tbu"		PCIe TBU clock
1695def4c47SEmmanuel Vadot			- "ddrss_sf_tbu" PCIe SF TBU clock
1705def4c47SEmmanuel Vadot			- "pipe"	PIPE clock
1715def4c47SEmmanuel Vadot
172c66ec88fSEmmanuel Vadot- resets:
173c66ec88fSEmmanuel Vadot	Usage: required
174c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
175c66ec88fSEmmanuel Vadot	Definition: List of phandle and reset specifier pairs as listed
176c66ec88fSEmmanuel Vadot		    in reset-names property
177c66ec88fSEmmanuel Vadot
178c66ec88fSEmmanuel Vadot- reset-names:
179c66ec88fSEmmanuel Vadot	Usage: required for ipq/apq8064
180c66ec88fSEmmanuel Vadot	Value type: <stringlist>
181c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
182c66ec88fSEmmanuel Vadot			- "axi"  AXI reset
183c66ec88fSEmmanuel Vadot			- "ahb"  AHB reset
184c66ec88fSEmmanuel Vadot			- "por"  POR reset
185c66ec88fSEmmanuel Vadot			- "pci"  PCI reset
186c66ec88fSEmmanuel Vadot			- "phy"  PHY reset
187c66ec88fSEmmanuel Vadot
188c66ec88fSEmmanuel Vadot- reset-names:
189c66ec88fSEmmanuel Vadot	Usage: required for apq8084
190c66ec88fSEmmanuel Vadot	Value type: <stringlist>
191c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
192c66ec88fSEmmanuel Vadot			- "core" Core reset
193c66ec88fSEmmanuel Vadot
194c66ec88fSEmmanuel Vadot- reset-names:
195c66ec88fSEmmanuel Vadot	Usage: required for ipq/apq8064
196c66ec88fSEmmanuel Vadot	Value type: <stringlist>
197c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
198c66ec88fSEmmanuel Vadot			- "axi_m"		AXI master reset
199c66ec88fSEmmanuel Vadot			- "axi_s"		AXI slave reset
200c66ec88fSEmmanuel Vadot			- "pipe"		PIPE reset
201c66ec88fSEmmanuel Vadot			- "axi_m_vmid"		VMID reset
202c66ec88fSEmmanuel Vadot			- "axi_s_xpu"		XPU reset
203c66ec88fSEmmanuel Vadot			- "parf"		PARF reset
204c66ec88fSEmmanuel Vadot			- "phy"			PHY reset
205c66ec88fSEmmanuel Vadot			- "axi_m_sticky"	AXI sticky reset
206c66ec88fSEmmanuel Vadot			- "pipe_sticky"		PIPE sticky reset
207c66ec88fSEmmanuel Vadot			- "pwr"			PWR reset
208c66ec88fSEmmanuel Vadot			- "ahb"			AHB reset
209c66ec88fSEmmanuel Vadot			- "phy_ahb"		PHY AHB reset
210c66ec88fSEmmanuel Vadot			- "ext"			EXT reset
211c66ec88fSEmmanuel Vadot
212c66ec88fSEmmanuel Vadot- reset-names:
213c66ec88fSEmmanuel Vadot	Usage: required for ipq8074
214c66ec88fSEmmanuel Vadot	Value type: <stringlist>
215c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
216c66ec88fSEmmanuel Vadot			- "pipe"		PIPE reset
217c66ec88fSEmmanuel Vadot			- "sleep"		Sleep reset
218c66ec88fSEmmanuel Vadot			- "sticky"		Core Sticky reset
219c66ec88fSEmmanuel Vadot			- "axi_m"		AXI Master reset
220c66ec88fSEmmanuel Vadot			- "axi_s"		AXI Slave reset
221c66ec88fSEmmanuel Vadot			- "ahb"			AHB Reset
222c66ec88fSEmmanuel Vadot			- "axi_m_sticky"	AXI Master Sticky reset
223c66ec88fSEmmanuel Vadot
224c66ec88fSEmmanuel Vadot- reset-names:
2255956d97fSEmmanuel Vadot	Usage: required for ipq6018
2265956d97fSEmmanuel Vadot	Value type: <stringlist>
2275956d97fSEmmanuel Vadot	Definition: Should contain the following entries
2285956d97fSEmmanuel Vadot			- "pipe"		PIPE reset
2295956d97fSEmmanuel Vadot			- "sleep"		Sleep reset
2305956d97fSEmmanuel Vadot			- "sticky"		Core Sticky reset
2315956d97fSEmmanuel Vadot			- "axi_m"		AXI Master reset
2325956d97fSEmmanuel Vadot			- "axi_s"		AXI Slave reset
2335956d97fSEmmanuel Vadot			- "ahb"			AHB Reset
2345956d97fSEmmanuel Vadot			- "axi_m_sticky"	AXI Master Sticky reset
2355956d97fSEmmanuel Vadot			- "axi_s_sticky"	AXI Slave Sticky reset
2365956d97fSEmmanuel Vadot
2375956d97fSEmmanuel Vadot- reset-names:
238c66ec88fSEmmanuel Vadot	Usage: required for qcs404
239c66ec88fSEmmanuel Vadot	Value type: <stringlist>
240c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
241c66ec88fSEmmanuel Vadot			- "axi_m"		AXI Master reset
242c66ec88fSEmmanuel Vadot			- "axi_s"		AXI Slave reset
243c66ec88fSEmmanuel Vadot			- "axi_m_sticky"	AXI Master Sticky reset
244c66ec88fSEmmanuel Vadot			- "pipe_sticky"		PIPE sticky reset
245c66ec88fSEmmanuel Vadot			- "pwr"			PWR reset
246c66ec88fSEmmanuel Vadot			- "ahb"			AHB reset
247c66ec88fSEmmanuel Vadot
248c66ec88fSEmmanuel Vadot- reset-names:
249*8cc087a1SEmmanuel Vadot	Usage: required for sc8180x, sdm845 and sm8250
250c66ec88fSEmmanuel Vadot	Value type: <stringlist>
251c66ec88fSEmmanuel Vadot	Definition: Should contain the following entries
252c66ec88fSEmmanuel Vadot			- "pci"			PCIe core reset
253c66ec88fSEmmanuel Vadot
254c66ec88fSEmmanuel Vadot- power-domains:
255c66ec88fSEmmanuel Vadot	Usage: required for apq8084 and msm8996/apq8096
256c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
257c66ec88fSEmmanuel Vadot	Definition: A phandle and power domain specifier pair to the
258c66ec88fSEmmanuel Vadot		    power domain which is responsible for collapsing
259c66ec88fSEmmanuel Vadot		    and restoring power to the peripheral
260c66ec88fSEmmanuel Vadot
261c66ec88fSEmmanuel Vadot- vdda-supply:
262c66ec88fSEmmanuel Vadot	Usage: required
263c66ec88fSEmmanuel Vadot	Value type: <phandle>
264c66ec88fSEmmanuel Vadot	Definition: A phandle to the core analog power supply
265c66ec88fSEmmanuel Vadot
266c66ec88fSEmmanuel Vadot- vdda_phy-supply:
267c66ec88fSEmmanuel Vadot	Usage: required for ipq/apq8064
268c66ec88fSEmmanuel Vadot	Value type: <phandle>
269c66ec88fSEmmanuel Vadot	Definition: A phandle to the analog power supply for PHY
270c66ec88fSEmmanuel Vadot
271c66ec88fSEmmanuel Vadot- vdda_refclk-supply:
272c66ec88fSEmmanuel Vadot	Usage: required for ipq/apq8064
273c66ec88fSEmmanuel Vadot	Value type: <phandle>
274c66ec88fSEmmanuel Vadot	Definition: A phandle to the analog power supply for IC which generates
275c66ec88fSEmmanuel Vadot		    reference clock
276c66ec88fSEmmanuel Vadot- vddpe-3v3-supply:
277c66ec88fSEmmanuel Vadot	Usage: optional
278c66ec88fSEmmanuel Vadot	Value type: <phandle>
279c66ec88fSEmmanuel Vadot	Definition: A phandle to the PCIe endpoint power supply
280c66ec88fSEmmanuel Vadot
281c66ec88fSEmmanuel Vadot- phys:
282c66ec88fSEmmanuel Vadot	Usage: required for apq8084 and qcs404
283c66ec88fSEmmanuel Vadot	Value type: <phandle>
284c66ec88fSEmmanuel Vadot	Definition: List of phandle(s) as listed in phy-names property
285c66ec88fSEmmanuel Vadot
286c66ec88fSEmmanuel Vadot- phy-names:
287c66ec88fSEmmanuel Vadot	Usage: required for apq8084 and qcs404
288c66ec88fSEmmanuel Vadot	Value type: <stringlist>
289c66ec88fSEmmanuel Vadot	Definition: Should contain "pciephy"
290c66ec88fSEmmanuel Vadot
291c66ec88fSEmmanuel Vadot- <name>-gpios:
292c66ec88fSEmmanuel Vadot	Usage: optional
293c66ec88fSEmmanuel Vadot	Value type: <prop-encoded-array>
294c66ec88fSEmmanuel Vadot	Definition: List of phandle and GPIO specifier pairs. Should contain
295c66ec88fSEmmanuel Vadot			- "perst-gpios"	PCIe endpoint reset signal line
296c66ec88fSEmmanuel Vadot			- "wake-gpios"	PCIe endpoint wake signal line
297c66ec88fSEmmanuel Vadot
298c66ec88fSEmmanuel Vadot* Example for ipq/apq8064
299c66ec88fSEmmanuel Vadot	pcie@1b500000 {
300c66ec88fSEmmanuel Vadot		compatible = "qcom,pcie-apq8064", "qcom,pcie-ipq8064", "snps,dw-pcie";
301c66ec88fSEmmanuel Vadot		reg = <0x1b500000 0x1000
302c66ec88fSEmmanuel Vadot		       0x1b502000 0x80
303c66ec88fSEmmanuel Vadot		       0x1b600000 0x100
304c66ec88fSEmmanuel Vadot		       0x0ff00000 0x100000>;
305c66ec88fSEmmanuel Vadot		reg-names = "dbi", "elbi", "parf", "config";
306c66ec88fSEmmanuel Vadot		device_type = "pci";
307c66ec88fSEmmanuel Vadot		linux,pci-domain = <0>;
308c66ec88fSEmmanuel Vadot		bus-range = <0x00 0xff>;
309c66ec88fSEmmanuel Vadot		num-lanes = <1>;
310c66ec88fSEmmanuel Vadot		#address-cells = <3>;
311c66ec88fSEmmanuel Vadot		#size-cells = <2>;
312c66ec88fSEmmanuel Vadot		ranges = <0x81000000 0 0 0x0fe00000 0 0x00100000   /* I/O */
313c66ec88fSEmmanuel Vadot			  0x82000000 0 0 0x08000000 0 0x07e00000>; /* memory */
314c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 238 IRQ_TYPE_NONE>;
315c66ec88fSEmmanuel Vadot		interrupt-names = "msi";
316c66ec88fSEmmanuel Vadot		#interrupt-cells = <1>;
317c66ec88fSEmmanuel Vadot		interrupt-map-mask = <0 0 0 0x7>;
318c66ec88fSEmmanuel Vadot		interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
319c66ec88fSEmmanuel Vadot				<0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
320c66ec88fSEmmanuel Vadot				<0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
321c66ec88fSEmmanuel Vadot				<0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
322c66ec88fSEmmanuel Vadot		clocks = <&gcc PCIE_A_CLK>,
323c66ec88fSEmmanuel Vadot			 <&gcc PCIE_H_CLK>,
324c66ec88fSEmmanuel Vadot			 <&gcc PCIE_PHY_CLK>,
325c66ec88fSEmmanuel Vadot			 <&gcc PCIE_AUX_CLK>,
326c66ec88fSEmmanuel Vadot			 <&gcc PCIE_ALT_REF_CLK>;
327c66ec88fSEmmanuel Vadot		clock-names = "core", "iface", "phy", "aux", "ref";
328c66ec88fSEmmanuel Vadot		resets = <&gcc PCIE_ACLK_RESET>,
329c66ec88fSEmmanuel Vadot			 <&gcc PCIE_HCLK_RESET>,
330c66ec88fSEmmanuel Vadot			 <&gcc PCIE_POR_RESET>,
331c66ec88fSEmmanuel Vadot			 <&gcc PCIE_PCI_RESET>,
332c66ec88fSEmmanuel Vadot			 <&gcc PCIE_PHY_RESET>,
333c66ec88fSEmmanuel Vadot			 <&gcc PCIE_EXT_RESET>;
334c66ec88fSEmmanuel Vadot		reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
335c66ec88fSEmmanuel Vadot		pinctrl-0 = <&pcie_pins_default>;
336c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
337c66ec88fSEmmanuel Vadot	};
338c66ec88fSEmmanuel Vadot
339c66ec88fSEmmanuel Vadot* Example for apq8084
340c66ec88fSEmmanuel Vadot	pcie0@fc520000 {
341c66ec88fSEmmanuel Vadot		compatible = "qcom,pcie-apq8084", "snps,dw-pcie";
342c66ec88fSEmmanuel Vadot		reg = <0xfc520000 0x2000>,
343c66ec88fSEmmanuel Vadot		      <0xff000000 0x1000>,
344c66ec88fSEmmanuel Vadot		      <0xff001000 0x1000>,
345c66ec88fSEmmanuel Vadot		      <0xff002000 0x2000>;
346c66ec88fSEmmanuel Vadot		reg-names = "parf", "dbi", "elbi", "config";
347c66ec88fSEmmanuel Vadot		device_type = "pci";
348c66ec88fSEmmanuel Vadot		linux,pci-domain = <0>;
349c66ec88fSEmmanuel Vadot		bus-range = <0x00 0xff>;
350c66ec88fSEmmanuel Vadot		num-lanes = <1>;
351c66ec88fSEmmanuel Vadot		#address-cells = <3>;
352c66ec88fSEmmanuel Vadot		#size-cells = <2>;
353c66ec88fSEmmanuel Vadot		ranges = <0x81000000 0 0          0xff200000 0 0x00100000   /* I/O */
354c66ec88fSEmmanuel Vadot			  0x82000000 0 0x00300000 0xff300000 0 0x00d00000>; /* memory */
355c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 243 IRQ_TYPE_NONE>;
356c66ec88fSEmmanuel Vadot		interrupt-names = "msi";
357c66ec88fSEmmanuel Vadot		#interrupt-cells = <1>;
358c66ec88fSEmmanuel Vadot		interrupt-map-mask = <0 0 0 0x7>;
359c66ec88fSEmmanuel Vadot		interrupt-map = <0 0 0 1 &intc 0 244 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
360c66ec88fSEmmanuel Vadot				<0 0 0 2 &intc 0 245 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
361c66ec88fSEmmanuel Vadot				<0 0 0 3 &intc 0 247 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
362c66ec88fSEmmanuel Vadot				<0 0 0 4 &intc 0 248 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
363c66ec88fSEmmanuel Vadot		clocks = <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
364c66ec88fSEmmanuel Vadot			 <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
365c66ec88fSEmmanuel Vadot			 <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
366c66ec88fSEmmanuel Vadot			 <&gcc GCC_PCIE_0_AUX_CLK>;
367c66ec88fSEmmanuel Vadot		clock-names = "iface", "master_bus", "slave_bus", "aux";
368c66ec88fSEmmanuel Vadot		resets = <&gcc GCC_PCIE_0_BCR>;
369c66ec88fSEmmanuel Vadot		reset-names = "core";
370c66ec88fSEmmanuel Vadot		power-domains = <&gcc PCIE0_GDSC>;
371c66ec88fSEmmanuel Vadot		vdda-supply = <&pma8084_l3>;
372c66ec88fSEmmanuel Vadot		phys = <&pciephy0>;
373c66ec88fSEmmanuel Vadot		phy-names = "pciephy";
374c66ec88fSEmmanuel Vadot		perst-gpio = <&tlmm 70 GPIO_ACTIVE_LOW>;
375c66ec88fSEmmanuel Vadot		pinctrl-0 = <&pcie0_pins_default>;
376c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
377c66ec88fSEmmanuel Vadot	};
378