xref: /freebsd-src/sys/contrib/device-tree/src/arm/qcom/qcom-sdx55.dtsi (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
1f126890aSEmmanuel Vadot// SPDX-License-Identifier: BSD-3-Clause
2f126890aSEmmanuel Vadot/*
3f126890aSEmmanuel Vadot * SDX55 SoC device tree source
4f126890aSEmmanuel Vadot *
5f126890aSEmmanuel Vadot * Copyright (c) 2018, The Linux Foundation. All rights reserved.
6f126890aSEmmanuel Vadot * Copyright (c) 2020, Linaro Ltd.
7f126890aSEmmanuel Vadot */
8f126890aSEmmanuel Vadot
9f126890aSEmmanuel Vadot#include <dt-bindings/clock/qcom,gcc-sdx55.h>
10f126890aSEmmanuel Vadot#include <dt-bindings/clock/qcom,rpmh.h>
11f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
12f126890aSEmmanuel Vadot#include <dt-bindings/interconnect/qcom,sdx55.h>
13f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
14f126890aSEmmanuel Vadot#include <dt-bindings/power/qcom-rpmpd.h>
15f126890aSEmmanuel Vadot#include <dt-bindings/soc/qcom,rpmh-rsc.h>
16f126890aSEmmanuel Vadot
17f126890aSEmmanuel Vadot/ {
18f126890aSEmmanuel Vadot	#address-cells = <1>;
19f126890aSEmmanuel Vadot	#size-cells = <1>;
20f126890aSEmmanuel Vadot	qcom,msm-id = <357 0x10000>, <368 0x10000>, <418 0x10000>;
21f126890aSEmmanuel Vadot	interrupt-parent = <&intc>;
22f126890aSEmmanuel Vadot
23f126890aSEmmanuel Vadot	memory {
24f126890aSEmmanuel Vadot		device_type = "memory";
25f126890aSEmmanuel Vadot		reg = <0 0>;
26f126890aSEmmanuel Vadot	};
27f126890aSEmmanuel Vadot
28f126890aSEmmanuel Vadot	clocks {
29f126890aSEmmanuel Vadot		xo_board: xo-board {
30f126890aSEmmanuel Vadot			compatible = "fixed-clock";
31f126890aSEmmanuel Vadot			#clock-cells = <0>;
32f126890aSEmmanuel Vadot			clock-frequency = <38400000>;
33f126890aSEmmanuel Vadot			clock-output-names = "xo_board";
34f126890aSEmmanuel Vadot		};
35f126890aSEmmanuel Vadot
36f126890aSEmmanuel Vadot		sleep_clk: sleep-clk {
37f126890aSEmmanuel Vadot			compatible = "fixed-clock";
38f126890aSEmmanuel Vadot			#clock-cells = <0>;
39f126890aSEmmanuel Vadot			clock-frequency = <32000>;
40f126890aSEmmanuel Vadot		};
41f126890aSEmmanuel Vadot
42f126890aSEmmanuel Vadot		nand_clk_dummy: nand-clk-dummy {
43f126890aSEmmanuel Vadot			compatible = "fixed-clock";
44f126890aSEmmanuel Vadot			#clock-cells = <0>;
45f126890aSEmmanuel Vadot			clock-frequency = <32000>;
46f126890aSEmmanuel Vadot		};
47f126890aSEmmanuel Vadot	};
48f126890aSEmmanuel Vadot
49f126890aSEmmanuel Vadot	cpus {
50f126890aSEmmanuel Vadot		#address-cells = <1>;
51f126890aSEmmanuel Vadot		#size-cells = <0>;
52f126890aSEmmanuel Vadot
53f126890aSEmmanuel Vadot		cpu0: cpu@0 {
54f126890aSEmmanuel Vadot			device_type = "cpu";
55f126890aSEmmanuel Vadot			compatible = "arm,cortex-a7";
56f126890aSEmmanuel Vadot			reg = <0x0>;
57f126890aSEmmanuel Vadot			enable-method = "psci";
58f126890aSEmmanuel Vadot			clocks = <&apcs>;
59f126890aSEmmanuel Vadot			power-domains = <&rpmhpd SDX55_CX>;
60f126890aSEmmanuel Vadot			power-domain-names = "rpmhpd";
61f126890aSEmmanuel Vadot			operating-points-v2 = <&cpu_opp_table>;
62f126890aSEmmanuel Vadot		};
63f126890aSEmmanuel Vadot	};
64f126890aSEmmanuel Vadot
65f126890aSEmmanuel Vadot	firmware {
66f126890aSEmmanuel Vadot		scm {
67f126890aSEmmanuel Vadot			compatible = "qcom,scm-sdx55", "qcom,scm";
68f126890aSEmmanuel Vadot		};
69f126890aSEmmanuel Vadot	};
70f126890aSEmmanuel Vadot
71f126890aSEmmanuel Vadot	cpu_opp_table: opp-table-cpu {
72f126890aSEmmanuel Vadot		compatible = "operating-points-v2";
73f126890aSEmmanuel Vadot		opp-shared;
74f126890aSEmmanuel Vadot
75f126890aSEmmanuel Vadot		opp-345600000 {
76f126890aSEmmanuel Vadot			opp-hz = /bits/ 64 <345600000>;
77f126890aSEmmanuel Vadot			required-opps = <&rpmhpd_opp_low_svs>;
78f126890aSEmmanuel Vadot		};
79f126890aSEmmanuel Vadot
80f126890aSEmmanuel Vadot		opp-576000000 {
81f126890aSEmmanuel Vadot			opp-hz = /bits/ 64 <576000000>;
82f126890aSEmmanuel Vadot			required-opps = <&rpmhpd_opp_svs>;
83f126890aSEmmanuel Vadot		};
84f126890aSEmmanuel Vadot
85f126890aSEmmanuel Vadot		opp-1094400000 {
86f126890aSEmmanuel Vadot			opp-hz = /bits/ 64 <1094400000>;
87f126890aSEmmanuel Vadot			required-opps = <&rpmhpd_opp_nom>;
88f126890aSEmmanuel Vadot		};
89f126890aSEmmanuel Vadot
90f126890aSEmmanuel Vadot		opp-1555200000 {
91f126890aSEmmanuel Vadot			opp-hz = /bits/ 64 <1555200000>;
92f126890aSEmmanuel Vadot			required-opps = <&rpmhpd_opp_turbo>;
93f126890aSEmmanuel Vadot		};
94f126890aSEmmanuel Vadot	};
95f126890aSEmmanuel Vadot
96f126890aSEmmanuel Vadot	psci {
97f126890aSEmmanuel Vadot		compatible = "arm,psci-1.0";
98f126890aSEmmanuel Vadot		method = "smc";
99f126890aSEmmanuel Vadot	};
100f126890aSEmmanuel Vadot
101f126890aSEmmanuel Vadot	reserved-memory {
102f126890aSEmmanuel Vadot		#address-cells = <1>;
103f126890aSEmmanuel Vadot		#size-cells = <1>;
104f126890aSEmmanuel Vadot		ranges;
105f126890aSEmmanuel Vadot
106f126890aSEmmanuel Vadot		hyp_mem: memory@8fc00000 {
107f126890aSEmmanuel Vadot			no-map;
108f126890aSEmmanuel Vadot			reg = <0x8fc00000 0x80000>;
109f126890aSEmmanuel Vadot		};
110f126890aSEmmanuel Vadot
111f126890aSEmmanuel Vadot		ac_db_mem: memory@8fc80000 {
112f126890aSEmmanuel Vadot			no-map;
113f126890aSEmmanuel Vadot			reg = <0x8fc80000 0x40000>;
114f126890aSEmmanuel Vadot		};
115f126890aSEmmanuel Vadot
116f126890aSEmmanuel Vadot		secdata_mem: memory@8fcfd000 {
117f126890aSEmmanuel Vadot			no-map;
118f126890aSEmmanuel Vadot			reg = <0x8fcfd000 0x1000>;
119f126890aSEmmanuel Vadot		};
120f126890aSEmmanuel Vadot
121f126890aSEmmanuel Vadot		sbl_mem: memory@8fd00000 {
122f126890aSEmmanuel Vadot			no-map;
123f126890aSEmmanuel Vadot			reg = <0x8fd00000 0x100000>;
124f126890aSEmmanuel Vadot		};
125f126890aSEmmanuel Vadot
126f126890aSEmmanuel Vadot		aop_image: memory@8fe00000 {
127f126890aSEmmanuel Vadot			no-map;
128f126890aSEmmanuel Vadot			reg = <0x8fe00000 0x20000>;
129f126890aSEmmanuel Vadot		};
130f126890aSEmmanuel Vadot
131f126890aSEmmanuel Vadot		aop_cmd_db: memory@8fe20000 {
132f126890aSEmmanuel Vadot			compatible = "qcom,cmd-db";
133f126890aSEmmanuel Vadot			reg = <0x8fe20000 0x20000>;
134f126890aSEmmanuel Vadot			no-map;
135f126890aSEmmanuel Vadot		};
136f126890aSEmmanuel Vadot
137f126890aSEmmanuel Vadot		smem_mem: memory@8fe40000 {
138f126890aSEmmanuel Vadot			no-map;
139f126890aSEmmanuel Vadot			reg = <0x8fe40000 0xc0000>;
140f126890aSEmmanuel Vadot		};
141f126890aSEmmanuel Vadot
142f126890aSEmmanuel Vadot		tz_mem: memory@8ff00000 {
143f126890aSEmmanuel Vadot			no-map;
144f126890aSEmmanuel Vadot			reg = <0x8ff00000 0x100000>;
145f126890aSEmmanuel Vadot		};
146f126890aSEmmanuel Vadot
147f126890aSEmmanuel Vadot		tz_apps_mem: memory@90000000 {
148f126890aSEmmanuel Vadot			no-map;
149f126890aSEmmanuel Vadot			reg = <0x90000000 0x500000>;
150f126890aSEmmanuel Vadot		};
151f126890aSEmmanuel Vadot	};
152f126890aSEmmanuel Vadot
153f126890aSEmmanuel Vadot	smem {
154f126890aSEmmanuel Vadot		compatible = "qcom,smem";
155f126890aSEmmanuel Vadot		memory-region = <&smem_mem>;
156f126890aSEmmanuel Vadot		hwlocks = <&tcsr_mutex 3>;
157f126890aSEmmanuel Vadot	};
158f126890aSEmmanuel Vadot
159f126890aSEmmanuel Vadot	smp2p-mpss {
160f126890aSEmmanuel Vadot		compatible = "qcom,smp2p";
161f126890aSEmmanuel Vadot		qcom,smem = <435>, <428>;
162f126890aSEmmanuel Vadot		interrupts = <GIC_SPI 113 IRQ_TYPE_EDGE_RISING>;
163f126890aSEmmanuel Vadot		mboxes = <&apcs 14>;
164f126890aSEmmanuel Vadot		qcom,local-pid = <0>;
165f126890aSEmmanuel Vadot		qcom,remote-pid = <1>;
166f126890aSEmmanuel Vadot
167f126890aSEmmanuel Vadot		modem_smp2p_out: master-kernel {
168f126890aSEmmanuel Vadot			qcom,entry-name = "master-kernel";
169f126890aSEmmanuel Vadot			#qcom,smem-state-cells = <1>;
170f126890aSEmmanuel Vadot		};
171f126890aSEmmanuel Vadot
172f126890aSEmmanuel Vadot		modem_smp2p_in: slave-kernel {
173f126890aSEmmanuel Vadot			qcom,entry-name = "slave-kernel";
174f126890aSEmmanuel Vadot			interrupt-controller;
175f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
176f126890aSEmmanuel Vadot		};
177f126890aSEmmanuel Vadot
178f126890aSEmmanuel Vadot		ipa_smp2p_out: ipa-ap-to-modem {
179f126890aSEmmanuel Vadot			qcom,entry-name = "ipa";
180f126890aSEmmanuel Vadot			#qcom,smem-state-cells = <1>;
181f126890aSEmmanuel Vadot		};
182f126890aSEmmanuel Vadot
183f126890aSEmmanuel Vadot		ipa_smp2p_in: ipa-modem-to-ap {
184f126890aSEmmanuel Vadot			qcom,entry-name = "ipa";
185f126890aSEmmanuel Vadot			interrupt-controller;
186f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
187f126890aSEmmanuel Vadot		};
188f126890aSEmmanuel Vadot	};
189f126890aSEmmanuel Vadot
190f126890aSEmmanuel Vadot	soc: soc {
191f126890aSEmmanuel Vadot		#address-cells = <1>;
192f126890aSEmmanuel Vadot		#size-cells = <1>;
193f126890aSEmmanuel Vadot		ranges;
194f126890aSEmmanuel Vadot		compatible = "simple-bus";
195f126890aSEmmanuel Vadot
196f126890aSEmmanuel Vadot		gcc: clock-controller@100000 {
197f126890aSEmmanuel Vadot			compatible = "qcom,gcc-sdx55";
198f126890aSEmmanuel Vadot			reg = <0x100000 0x1f0000>;
199f126890aSEmmanuel Vadot			#clock-cells = <1>;
200f126890aSEmmanuel Vadot			#reset-cells = <1>;
201f126890aSEmmanuel Vadot			#power-domain-cells = <1>;
202f126890aSEmmanuel Vadot			clock-names = "bi_tcxo", "sleep_clk";
203f126890aSEmmanuel Vadot			clocks = <&rpmhcc RPMH_CXO_CLK>, <&sleep_clk>;
204f126890aSEmmanuel Vadot		};
205f126890aSEmmanuel Vadot
206f126890aSEmmanuel Vadot		blsp1_uart3: serial@831000 {
207f126890aSEmmanuel Vadot			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
208f126890aSEmmanuel Vadot			reg = <0x00831000 0x200>;
209f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
210f126890aSEmmanuel Vadot			clocks = <&gcc 30>,
211f126890aSEmmanuel Vadot				 <&gcc 9>;
212f126890aSEmmanuel Vadot			clock-names = "core", "iface";
213f126890aSEmmanuel Vadot			status = "disabled";
214f126890aSEmmanuel Vadot		};
215f126890aSEmmanuel Vadot
216f126890aSEmmanuel Vadot		usb_hsphy: phy@ff4000 {
217f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-usb-hs-phy",
218f126890aSEmmanuel Vadot				     "qcom,usb-snps-hs-7nm-phy";
219f126890aSEmmanuel Vadot			reg = <0x00ff4000 0x114>;
220f126890aSEmmanuel Vadot			status = "disabled";
221f126890aSEmmanuel Vadot			#phy-cells = <0>;
222f126890aSEmmanuel Vadot
223f126890aSEmmanuel Vadot			clocks = <&rpmhcc RPMH_CXO_CLK>;
224f126890aSEmmanuel Vadot			clock-names = "ref";
225f126890aSEmmanuel Vadot
226f126890aSEmmanuel Vadot			resets = <&gcc GCC_QUSB2PHY_BCR>;
227f126890aSEmmanuel Vadot		};
228f126890aSEmmanuel Vadot
229f126890aSEmmanuel Vadot		usb_qmpphy: phy@ff6000 {
230f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-qmp-usb3-uni-phy";
2318d13bc63SEmmanuel Vadot			reg = <0x00ff6000 0x1000>;
232f126890aSEmmanuel Vadot
233f126890aSEmmanuel Vadot			clocks = <&gcc GCC_USB3_PHY_AUX_CLK>,
2348d13bc63SEmmanuel Vadot				 <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
235f126890aSEmmanuel Vadot				 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
2368d13bc63SEmmanuel Vadot				 <&gcc GCC_USB3_PHY_PIPE_CLK>;
2378d13bc63SEmmanuel Vadot			clock-names = "aux",
2388d13bc63SEmmanuel Vadot				      "ref",
2398d13bc63SEmmanuel Vadot				      "cfg_ahb",
2408d13bc63SEmmanuel Vadot				      "pipe";
241f126890aSEmmanuel Vadot			clock-output-names = "usb3_uni_phy_pipe_clk_src";
2428d13bc63SEmmanuel Vadot			#clock-cells = <0>;
2438d13bc63SEmmanuel Vadot			#phy-cells = <0>;
2448d13bc63SEmmanuel Vadot
2458d13bc63SEmmanuel Vadot			resets = <&gcc GCC_USB3_PHY_BCR>,
2468d13bc63SEmmanuel Vadot				 <&gcc GCC_USB3PHY_PHY_BCR>;
2478d13bc63SEmmanuel Vadot			reset-names = "phy",
2488d13bc63SEmmanuel Vadot				      "phy_phy";
2498d13bc63SEmmanuel Vadot
2508d13bc63SEmmanuel Vadot			status = "disabled";
251f126890aSEmmanuel Vadot		};
252f126890aSEmmanuel Vadot
253f126890aSEmmanuel Vadot		mc_virt: interconnect@1100000 {
254f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-mc-virt";
255f126890aSEmmanuel Vadot			reg = <0x01100000 0x400000>;
256f126890aSEmmanuel Vadot			#interconnect-cells = <1>;
257f126890aSEmmanuel Vadot			qcom,bcm-voters = <&apps_bcm_voter>;
258f126890aSEmmanuel Vadot		};
259f126890aSEmmanuel Vadot
260f126890aSEmmanuel Vadot		mem_noc: interconnect@9680000 {
261f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-mem-noc";
262f126890aSEmmanuel Vadot			reg = <0x09680000 0x40000>;
263f126890aSEmmanuel Vadot			#interconnect-cells = <1>;
264f126890aSEmmanuel Vadot			qcom,bcm-voters = <&apps_bcm_voter>;
265f126890aSEmmanuel Vadot		};
266f126890aSEmmanuel Vadot
267f126890aSEmmanuel Vadot		system_noc: interconnect@162c000 {
268f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-system-noc";
269f126890aSEmmanuel Vadot			reg = <0x0162c000 0x31200>;
270f126890aSEmmanuel Vadot			#interconnect-cells = <1>;
271f126890aSEmmanuel Vadot			qcom,bcm-voters = <&apps_bcm_voter>;
272f126890aSEmmanuel Vadot		};
273f126890aSEmmanuel Vadot
274f126890aSEmmanuel Vadot		qpic_bam: dma-controller@1b04000 {
275f126890aSEmmanuel Vadot			compatible = "qcom,bam-v1.7.0";
276f126890aSEmmanuel Vadot			reg = <0x01b04000 0x1c000>;
277f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
278f126890aSEmmanuel Vadot			clocks = <&rpmhcc RPMH_QPIC_CLK>;
279f126890aSEmmanuel Vadot			clock-names = "bam_clk";
280f126890aSEmmanuel Vadot			#dma-cells = <1>;
281f126890aSEmmanuel Vadot			qcom,ee = <0>;
282f126890aSEmmanuel Vadot			qcom,controlled-remotely;
283f126890aSEmmanuel Vadot			status = "disabled";
284f126890aSEmmanuel Vadot		};
285f126890aSEmmanuel Vadot
286f126890aSEmmanuel Vadot		qpic_nand: nand-controller@1b30000 {
287f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-nand";
288f126890aSEmmanuel Vadot			reg = <0x01b30000 0x10000>;
289f126890aSEmmanuel Vadot			#address-cells = <1>;
290f126890aSEmmanuel Vadot			#size-cells = <0>;
291f126890aSEmmanuel Vadot			clocks = <&rpmhcc RPMH_QPIC_CLK>,
292f126890aSEmmanuel Vadot				 <&nand_clk_dummy>;
293f126890aSEmmanuel Vadot			clock-names = "core", "aon";
294f126890aSEmmanuel Vadot
295f126890aSEmmanuel Vadot			dmas = <&qpic_bam 0>,
296f126890aSEmmanuel Vadot			       <&qpic_bam 1>,
297f126890aSEmmanuel Vadot			       <&qpic_bam 2>;
298f126890aSEmmanuel Vadot			dma-names = "tx", "rx", "cmd";
299f126890aSEmmanuel Vadot			status = "disabled";
300f126890aSEmmanuel Vadot		};
301f126890aSEmmanuel Vadot
302f126890aSEmmanuel Vadot		pcie_rc: pcie@1c00000 {
303f126890aSEmmanuel Vadot			compatible = "qcom,pcie-sdx55";
304f126890aSEmmanuel Vadot			reg = <0x01c00000 0x3000>,
305f126890aSEmmanuel Vadot			      <0x40000000 0xf1d>,
306f126890aSEmmanuel Vadot			      <0x40000f20 0xc8>,
307f126890aSEmmanuel Vadot			      <0x40001000 0x1000>,
308f126890aSEmmanuel Vadot			      <0x40100000 0x100000>;
309f126890aSEmmanuel Vadot			reg-names = "parf",
310f126890aSEmmanuel Vadot				    "dbi",
311f126890aSEmmanuel Vadot				    "elbi",
312f126890aSEmmanuel Vadot				    "atu",
313f126890aSEmmanuel Vadot				    "config";
314f126890aSEmmanuel Vadot			device_type = "pci";
315f126890aSEmmanuel Vadot			linux,pci-domain = <0>;
316f126890aSEmmanuel Vadot			bus-range = <0x00 0xff>;
317f126890aSEmmanuel Vadot			num-lanes = <1>;
318f126890aSEmmanuel Vadot
319f126890aSEmmanuel Vadot			#address-cells = <3>;
320f126890aSEmmanuel Vadot			#size-cells = <2>;
321f126890aSEmmanuel Vadot
322f126890aSEmmanuel Vadot			ranges = <0x01000000 0x0 0x00000000 0x40200000 0x0 0x100000>,
323f126890aSEmmanuel Vadot				 <0x02000000 0x0 0x40300000 0x40300000 0x0 0x3fd00000>;
324f126890aSEmmanuel Vadot
325f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
326f126890aSEmmanuel Vadot				     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
327f126890aSEmmanuel Vadot				     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
328f126890aSEmmanuel Vadot				     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
329f126890aSEmmanuel Vadot				     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
330f126890aSEmmanuel Vadot				     <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
331f126890aSEmmanuel Vadot				     <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
332f126890aSEmmanuel Vadot				     <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
333f126890aSEmmanuel Vadot			interrupt-names = "msi",
334f126890aSEmmanuel Vadot					  "msi2",
335f126890aSEmmanuel Vadot					  "msi3",
336f126890aSEmmanuel Vadot					  "msi4",
337f126890aSEmmanuel Vadot					  "msi5",
338f126890aSEmmanuel Vadot					  "msi6",
339f126890aSEmmanuel Vadot					  "msi7",
340f126890aSEmmanuel Vadot					  "msi8";
341f126890aSEmmanuel Vadot			#interrupt-cells = <1>;
342f126890aSEmmanuel Vadot			interrupt-map-mask = <0 0 0 0x7>;
3438d13bc63SEmmanuel Vadot			interrupt-map = <0 0 0 1 &intc 0 141 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
3448d13bc63SEmmanuel Vadot					<0 0 0 2 &intc 0 142 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
3458d13bc63SEmmanuel Vadot					<0 0 0 3 &intc 0 143 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
3468d13bc63SEmmanuel Vadot					<0 0 0 4 &intc 0 144 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
347f126890aSEmmanuel Vadot
348f126890aSEmmanuel Vadot			clocks = <&gcc GCC_PCIE_PIPE_CLK>,
349f126890aSEmmanuel Vadot				 <&gcc GCC_PCIE_AUX_CLK>,
350f126890aSEmmanuel Vadot				 <&gcc GCC_PCIE_CFG_AHB_CLK>,
351f126890aSEmmanuel Vadot				 <&gcc GCC_PCIE_MSTR_AXI_CLK>,
352f126890aSEmmanuel Vadot				 <&gcc GCC_PCIE_SLV_AXI_CLK>,
353f126890aSEmmanuel Vadot				 <&gcc GCC_PCIE_SLV_Q2A_AXI_CLK>,
354f126890aSEmmanuel Vadot				 <&gcc GCC_PCIE_SLEEP_CLK>;
355f126890aSEmmanuel Vadot			clock-names = "pipe",
356f126890aSEmmanuel Vadot				      "aux",
357f126890aSEmmanuel Vadot				      "cfg",
358f126890aSEmmanuel Vadot				      "bus_master",
359f126890aSEmmanuel Vadot				      "bus_slave",
360f126890aSEmmanuel Vadot				      "slave_q2a",
361f126890aSEmmanuel Vadot				      "sleep";
362f126890aSEmmanuel Vadot
363f126890aSEmmanuel Vadot			assigned-clocks = <&gcc GCC_PCIE_AUX_CLK>;
364f126890aSEmmanuel Vadot			assigned-clock-rates = <19200000>;
365f126890aSEmmanuel Vadot
366f126890aSEmmanuel Vadot			iommu-map = <0x0   &apps_smmu 0x0200 0x1>,
367f126890aSEmmanuel Vadot				    <0x100 &apps_smmu 0x0201 0x1>,
368f126890aSEmmanuel Vadot				    <0x200 &apps_smmu 0x0202 0x1>,
369f126890aSEmmanuel Vadot				    <0x300 &apps_smmu 0x0203 0x1>,
370f126890aSEmmanuel Vadot				    <0x400 &apps_smmu 0x0204 0x1>;
371f126890aSEmmanuel Vadot
372f126890aSEmmanuel Vadot			resets = <&gcc GCC_PCIE_BCR>;
373f126890aSEmmanuel Vadot			reset-names = "pci";
374f126890aSEmmanuel Vadot
375f126890aSEmmanuel Vadot			power-domains = <&gcc PCIE_GDSC>;
376f126890aSEmmanuel Vadot
37784943d6fSEmmanuel Vadot			phys = <&pcie_phy>;
378f126890aSEmmanuel Vadot			phy-names = "pciephy";
379f126890aSEmmanuel Vadot
380f126890aSEmmanuel Vadot			status = "disabled";
381*7d0873ebSEmmanuel Vadot
382*7d0873ebSEmmanuel Vadot			pcie@0 {
383*7d0873ebSEmmanuel Vadot				device_type = "pci";
384*7d0873ebSEmmanuel Vadot				reg = <0x0 0x0 0x0 0x0 0x0>;
385*7d0873ebSEmmanuel Vadot				bus-range = <0x01 0xff>;
386*7d0873ebSEmmanuel Vadot
387*7d0873ebSEmmanuel Vadot				#address-cells = <3>;
388*7d0873ebSEmmanuel Vadot				#size-cells = <2>;
389*7d0873ebSEmmanuel Vadot				ranges;
390*7d0873ebSEmmanuel Vadot			};
391f126890aSEmmanuel Vadot		};
392f126890aSEmmanuel Vadot
393f126890aSEmmanuel Vadot		pcie_ep: pcie-ep@1c00000 {
394f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-pcie-ep";
395f126890aSEmmanuel Vadot			reg = <0x01c00000 0x3000>,
396f126890aSEmmanuel Vadot			      <0x40000000 0xf1d>,
397f126890aSEmmanuel Vadot			      <0x40000f20 0xc8>,
398f126890aSEmmanuel Vadot			      <0x40001000 0x1000>,
399f126890aSEmmanuel Vadot			      <0x40200000 0x100000>,
400f126890aSEmmanuel Vadot			      <0x01c03000 0x3000>;
401f126890aSEmmanuel Vadot			reg-names = "parf",
402f126890aSEmmanuel Vadot				    "dbi",
403f126890aSEmmanuel Vadot				    "elbi",
404f126890aSEmmanuel Vadot				    "atu",
405f126890aSEmmanuel Vadot				    "addr_space",
406f126890aSEmmanuel Vadot				    "mmio";
407f126890aSEmmanuel Vadot
408f126890aSEmmanuel Vadot			qcom,perst-regs = <&tcsr 0xb258 0xb270>;
409f126890aSEmmanuel Vadot
410f126890aSEmmanuel Vadot			clocks = <&gcc GCC_PCIE_AUX_CLK>,
411f126890aSEmmanuel Vadot				 <&gcc GCC_PCIE_CFG_AHB_CLK>,
412f126890aSEmmanuel Vadot				 <&gcc GCC_PCIE_MSTR_AXI_CLK>,
413f126890aSEmmanuel Vadot				 <&gcc GCC_PCIE_SLV_AXI_CLK>,
414f126890aSEmmanuel Vadot				 <&gcc GCC_PCIE_SLV_Q2A_AXI_CLK>,
415f126890aSEmmanuel Vadot				 <&gcc GCC_PCIE_SLEEP_CLK>,
416f126890aSEmmanuel Vadot				 <&gcc GCC_PCIE_0_CLKREF_CLK>;
417f126890aSEmmanuel Vadot			clock-names = "aux",
418f126890aSEmmanuel Vadot				      "cfg",
419f126890aSEmmanuel Vadot				      "bus_master",
420f126890aSEmmanuel Vadot				      "bus_slave",
421f126890aSEmmanuel Vadot				      "slave_q2a",
422f126890aSEmmanuel Vadot				      "sleep",
423f126890aSEmmanuel Vadot				      "ref";
424f126890aSEmmanuel Vadot
425f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
426f126890aSEmmanuel Vadot				     <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
427f126890aSEmmanuel Vadot			interrupt-names = "global",
428f126890aSEmmanuel Vadot					  "doorbell";
429f126890aSEmmanuel Vadot
430f126890aSEmmanuel Vadot			interconnects = <&system_noc MASTER_PCIE &mc_virt SLAVE_EBI_CH0>;
431f126890aSEmmanuel Vadot			interconnect-names = "pcie-mem";
432f126890aSEmmanuel Vadot
433f126890aSEmmanuel Vadot			resets = <&gcc GCC_PCIE_BCR>;
434f126890aSEmmanuel Vadot			reset-names = "core";
435f126890aSEmmanuel Vadot			power-domains = <&gcc PCIE_GDSC>;
43684943d6fSEmmanuel Vadot			phys = <&pcie_phy>;
437f126890aSEmmanuel Vadot			phy-names = "pciephy";
438f126890aSEmmanuel Vadot			max-link-speed = <3>;
439f126890aSEmmanuel Vadot			num-lanes = <2>;
440f126890aSEmmanuel Vadot
441f126890aSEmmanuel Vadot			status = "disabled";
442f126890aSEmmanuel Vadot		};
443f126890aSEmmanuel Vadot
4448d13bc63SEmmanuel Vadot		pcie_phy: phy@1c06000 {
445f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-qmp-pcie-phy";
4468d13bc63SEmmanuel Vadot			reg = <0x01c06000 0x2000>;
447f126890aSEmmanuel Vadot			#address-cells = <1>;
448f126890aSEmmanuel Vadot			#size-cells = <1>;
449f126890aSEmmanuel Vadot			ranges;
450f126890aSEmmanuel Vadot			clocks = <&gcc GCC_PCIE_AUX_PHY_CLK_SRC>,
451f126890aSEmmanuel Vadot				 <&gcc GCC_PCIE_CFG_AHB_CLK>,
452f126890aSEmmanuel Vadot				 <&gcc GCC_PCIE_0_CLKREF_CLK>,
45384943d6fSEmmanuel Vadot				 <&gcc GCC_PCIE_RCHNG_PHY_CLK>,
45484943d6fSEmmanuel Vadot				 <&gcc GCC_PCIE_PIPE_CLK>;
455f126890aSEmmanuel Vadot			clock-names = "aux",
456f126890aSEmmanuel Vadot				      "cfg_ahb",
457f126890aSEmmanuel Vadot				      "ref",
45884943d6fSEmmanuel Vadot				      "refgen",
45984943d6fSEmmanuel Vadot				      "pipe";
46084943d6fSEmmanuel Vadot
46184943d6fSEmmanuel Vadot			clock-output-names = "pcie_pipe_clk";
46284943d6fSEmmanuel Vadot			#clock-cells = <0>;
46384943d6fSEmmanuel Vadot
46484943d6fSEmmanuel Vadot			#phy-cells = <0>;
465f126890aSEmmanuel Vadot
466f126890aSEmmanuel Vadot			resets = <&gcc GCC_PCIE_PHY_BCR>;
467f126890aSEmmanuel Vadot			reset-names = "phy";
468f126890aSEmmanuel Vadot
469f126890aSEmmanuel Vadot			assigned-clocks = <&gcc GCC_PCIE_RCHNG_PHY_CLK>;
470f126890aSEmmanuel Vadot			assigned-clock-rates = <100000000>;
471f126890aSEmmanuel Vadot
472f126890aSEmmanuel Vadot			status = "disabled";
473f126890aSEmmanuel Vadot		};
474f126890aSEmmanuel Vadot
475f126890aSEmmanuel Vadot		ipa: ipa@1e40000 {
476f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-ipa";
477f126890aSEmmanuel Vadot
478f126890aSEmmanuel Vadot			iommus = <&apps_smmu 0x5e0 0x0>,
479f126890aSEmmanuel Vadot				 <&apps_smmu 0x5e2 0x0>;
480f126890aSEmmanuel Vadot			reg = <0x1e40000 0x7000>,
481f126890aSEmmanuel Vadot			      <0x1e50000 0x4b20>,
482f126890aSEmmanuel Vadot			      <0x1e04000 0x2c000>;
483f126890aSEmmanuel Vadot			reg-names = "ipa-reg",
484f126890aSEmmanuel Vadot				    "ipa-shared",
485f126890aSEmmanuel Vadot				    "gsi";
486f126890aSEmmanuel Vadot
487f126890aSEmmanuel Vadot			interrupts-extended = <&intc GIC_SPI 241 IRQ_TYPE_EDGE_RISING>,
488f126890aSEmmanuel Vadot					      <&intc GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
489f126890aSEmmanuel Vadot					      <&ipa_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
490f126890aSEmmanuel Vadot					      <&ipa_smp2p_in 1 IRQ_TYPE_EDGE_RISING>;
491f126890aSEmmanuel Vadot			interrupt-names = "ipa",
492f126890aSEmmanuel Vadot					  "gsi",
493f126890aSEmmanuel Vadot					  "ipa-clock-query",
494f126890aSEmmanuel Vadot					  "ipa-setup-ready";
495f126890aSEmmanuel Vadot
496f126890aSEmmanuel Vadot			clocks = <&rpmhcc RPMH_IPA_CLK>;
497f126890aSEmmanuel Vadot			clock-names = "core";
498f126890aSEmmanuel Vadot
499f126890aSEmmanuel Vadot			interconnects = <&system_noc MASTER_IPA &mc_virt SLAVE_EBI_CH0>,
500f126890aSEmmanuel Vadot					<&system_noc MASTER_IPA &system_noc SLAVE_OCIMEM>,
501f126890aSEmmanuel Vadot					<&mem_noc MASTER_AMPSS_M0 &system_noc SLAVE_IPA_CFG>;
502f126890aSEmmanuel Vadot			interconnect-names = "memory",
503f126890aSEmmanuel Vadot					     "imem",
504f126890aSEmmanuel Vadot					     "config";
505f126890aSEmmanuel Vadot
506f126890aSEmmanuel Vadot			qcom,smem-states = <&ipa_smp2p_out 0>,
507f126890aSEmmanuel Vadot					   <&ipa_smp2p_out 1>;
508f126890aSEmmanuel Vadot			qcom,smem-state-names = "ipa-clock-enabled-valid",
509f126890aSEmmanuel Vadot						"ipa-clock-enabled";
510f126890aSEmmanuel Vadot
511f126890aSEmmanuel Vadot			status = "disabled";
512f126890aSEmmanuel Vadot		};
513f126890aSEmmanuel Vadot
514f126890aSEmmanuel Vadot		tcsr_mutex: hwlock@1f40000 {
515f126890aSEmmanuel Vadot			compatible = "qcom,tcsr-mutex";
516f126890aSEmmanuel Vadot			reg = <0x01f40000 0x40000>;
517f126890aSEmmanuel Vadot			#hwlock-cells = <1>;
518f126890aSEmmanuel Vadot		};
519f126890aSEmmanuel Vadot
520f126890aSEmmanuel Vadot		tcsr: syscon@1fc0000 {
521f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-tcsr", "syscon";
522f126890aSEmmanuel Vadot			reg = <0x01fc0000 0x1000>;
523f126890aSEmmanuel Vadot		};
524f126890aSEmmanuel Vadot
525f126890aSEmmanuel Vadot		sdhc_1: mmc@8804000 {
526f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-sdhci", "qcom,sdhci-msm-v5";
527f126890aSEmmanuel Vadot			reg = <0x08804000 0x1000>;
528f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
529f126890aSEmmanuel Vadot				     <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
530f126890aSEmmanuel Vadot			interrupt-names = "hc_irq", "pwr_irq";
531f126890aSEmmanuel Vadot			clocks = <&gcc GCC_SDCC1_AHB_CLK>,
532f126890aSEmmanuel Vadot				 <&gcc GCC_SDCC1_APPS_CLK>;
533f126890aSEmmanuel Vadot			clock-names = "iface", "core";
534f126890aSEmmanuel Vadot			status = "disabled";
535f126890aSEmmanuel Vadot		};
536f126890aSEmmanuel Vadot
537f126890aSEmmanuel Vadot		remoteproc_mpss: remoteproc@4080000 {
538f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-mpss-pas";
539f126890aSEmmanuel Vadot			reg = <0x04080000 0x4040>;
540f126890aSEmmanuel Vadot
541f126890aSEmmanuel Vadot			interrupts-extended = <&intc GIC_SPI 250 IRQ_TYPE_EDGE_RISING>,
542f126890aSEmmanuel Vadot					      <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
543f126890aSEmmanuel Vadot					      <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
544f126890aSEmmanuel Vadot					      <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
545f126890aSEmmanuel Vadot					      <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
546f126890aSEmmanuel Vadot					      <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
547f126890aSEmmanuel Vadot			interrupt-names = "wdog", "fatal", "ready", "handover",
548f126890aSEmmanuel Vadot					  "stop-ack", "shutdown-ack";
549f126890aSEmmanuel Vadot
550f126890aSEmmanuel Vadot			clocks = <&rpmhcc RPMH_CXO_CLK>;
551f126890aSEmmanuel Vadot			clock-names = "xo";
552f126890aSEmmanuel Vadot
553f126890aSEmmanuel Vadot			power-domains = <&rpmhpd SDX55_CX>,
554f126890aSEmmanuel Vadot					<&rpmhpd SDX55_MSS>;
555f126890aSEmmanuel Vadot			power-domain-names = "cx", "mss";
556f126890aSEmmanuel Vadot
557f126890aSEmmanuel Vadot			qcom,smem-states = <&modem_smp2p_out 0>;
558f126890aSEmmanuel Vadot			qcom,smem-state-names = "stop";
559f126890aSEmmanuel Vadot
560f126890aSEmmanuel Vadot			status = "disabled";
561f126890aSEmmanuel Vadot
562f126890aSEmmanuel Vadot			glink-edge {
563f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 114 IRQ_TYPE_EDGE_RISING>;
564f126890aSEmmanuel Vadot				label = "mpss";
565f126890aSEmmanuel Vadot				qcom,remote-pid = <1>;
566f126890aSEmmanuel Vadot				mboxes = <&apcs 15>;
567f126890aSEmmanuel Vadot			};
568f126890aSEmmanuel Vadot		};
569f126890aSEmmanuel Vadot
570f126890aSEmmanuel Vadot		usb: usb@a6f8800 {
571f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-dwc3", "qcom,dwc3";
572f126890aSEmmanuel Vadot			reg = <0x0a6f8800 0x400>;
573f126890aSEmmanuel Vadot			status = "disabled";
574f126890aSEmmanuel Vadot			#address-cells = <1>;
575f126890aSEmmanuel Vadot			#size-cells = <1>;
576f126890aSEmmanuel Vadot			ranges;
577f126890aSEmmanuel Vadot
578f126890aSEmmanuel Vadot			clocks = <&gcc GCC_USB30_SLV_AHB_CLK>,
579f126890aSEmmanuel Vadot				 <&gcc GCC_USB30_MASTER_CLK>,
580f126890aSEmmanuel Vadot				 <&gcc GCC_USB30_MSTR_AXI_CLK>,
581f126890aSEmmanuel Vadot				 <&gcc GCC_USB30_SLEEP_CLK>,
582f126890aSEmmanuel Vadot				 <&gcc GCC_USB30_MOCK_UTMI_CLK>;
583f126890aSEmmanuel Vadot			clock-names = "cfg_noc",
584f126890aSEmmanuel Vadot				      "core",
585f126890aSEmmanuel Vadot				      "iface",
586f126890aSEmmanuel Vadot				      "sleep",
587f126890aSEmmanuel Vadot				      "mock_utmi";
588f126890aSEmmanuel Vadot
589f126890aSEmmanuel Vadot			assigned-clocks = <&gcc GCC_USB30_MOCK_UTMI_CLK>,
590f126890aSEmmanuel Vadot					  <&gcc GCC_USB30_MASTER_CLK>;
591f126890aSEmmanuel Vadot			assigned-clock-rates = <19200000>, <200000000>;
592f126890aSEmmanuel Vadot
59301950c46SEmmanuel Vadot			interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
59401950c46SEmmanuel Vadot					      <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
59501950c46SEmmanuel Vadot					      <&pdc 10 IRQ_TYPE_EDGE_BOTH>,
5968d13bc63SEmmanuel Vadot					      <&pdc 11 IRQ_TYPE_EDGE_BOTH>,
59701950c46SEmmanuel Vadot					      <&pdc 51 IRQ_TYPE_LEVEL_HIGH>;
59801950c46SEmmanuel Vadot			interrupt-names = "pwr_event",
59901950c46SEmmanuel Vadot					  "hs_phy_irq",
60001950c46SEmmanuel Vadot					  "dp_hs_phy_irq",
60101950c46SEmmanuel Vadot					  "dm_hs_phy_irq",
60201950c46SEmmanuel Vadot					  "ss_phy_irq";
603f126890aSEmmanuel Vadot
604f126890aSEmmanuel Vadot			power-domains = <&gcc USB30_GDSC>;
605f126890aSEmmanuel Vadot
606f126890aSEmmanuel Vadot			resets = <&gcc GCC_USB30_BCR>;
607f126890aSEmmanuel Vadot
608aa1a8ff2SEmmanuel Vadot			usb_dwc3: usb@a600000 {
609f126890aSEmmanuel Vadot				compatible = "snps,dwc3";
610f126890aSEmmanuel Vadot				reg = <0x0a600000 0xcd00>;
611f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
612f126890aSEmmanuel Vadot				iommus = <&apps_smmu 0x1a0 0x0>;
613f126890aSEmmanuel Vadot				snps,dis_u2_susphy_quirk;
614f126890aSEmmanuel Vadot				snps,dis_enblslpm_quirk;
6158d13bc63SEmmanuel Vadot				phys = <&usb_hsphy>, <&usb_qmpphy>;
616f126890aSEmmanuel Vadot				phy-names = "usb2-phy", "usb3-phy";
617f126890aSEmmanuel Vadot			};
618f126890aSEmmanuel Vadot		};
619f126890aSEmmanuel Vadot
620f126890aSEmmanuel Vadot		pdc: interrupt-controller@b210000 {
621f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-pdc", "qcom,pdc";
622f126890aSEmmanuel Vadot			reg = <0x0b210000 0x30000>;
623f126890aSEmmanuel Vadot			qcom,pdc-ranges = <0 179 52>;
6248d13bc63SEmmanuel Vadot			#interrupt-cells = <2>;
625f126890aSEmmanuel Vadot			interrupt-parent = <&intc>;
626f126890aSEmmanuel Vadot			interrupt-controller;
627f126890aSEmmanuel Vadot		};
628f126890aSEmmanuel Vadot
629f126890aSEmmanuel Vadot		restart@c264000 {
630f126890aSEmmanuel Vadot			compatible = "qcom,pshold";
631f126890aSEmmanuel Vadot			reg = <0x0c264000 0x1000>;
632f126890aSEmmanuel Vadot		};
633f126890aSEmmanuel Vadot
634f126890aSEmmanuel Vadot		spmi_bus: spmi@c440000 {
635f126890aSEmmanuel Vadot			compatible = "qcom,spmi-pmic-arb";
636f126890aSEmmanuel Vadot			reg = <0x0c440000 0x0000d00>,
637f126890aSEmmanuel Vadot			      <0x0c600000 0x2000000>,
638f126890aSEmmanuel Vadot			      <0x0e600000 0x0100000>,
639f126890aSEmmanuel Vadot			      <0x0e700000 0x00a0000>,
640f126890aSEmmanuel Vadot			      <0x0c40a000 0x0000700>;
641f126890aSEmmanuel Vadot			reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
642f126890aSEmmanuel Vadot			interrupt-names = "periph_irq";
643f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
644f126890aSEmmanuel Vadot			qcom,ee = <0>;
645f126890aSEmmanuel Vadot			qcom,channel = <0>;
646f126890aSEmmanuel Vadot			#address-cells = <2>;
647f126890aSEmmanuel Vadot			#size-cells = <0>;
648f126890aSEmmanuel Vadot			interrupt-controller;
649f126890aSEmmanuel Vadot			#interrupt-cells = <4>;
650f126890aSEmmanuel Vadot		};
651f126890aSEmmanuel Vadot
652f126890aSEmmanuel Vadot		tlmm: pinctrl@f100000 {
653f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-pinctrl";
654f126890aSEmmanuel Vadot			reg = <0xf100000 0x300000>;
655f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>;
656f126890aSEmmanuel Vadot			gpio-controller;
657f126890aSEmmanuel Vadot			#gpio-cells = <2>;
658f126890aSEmmanuel Vadot			interrupt-controller;
659f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
660f126890aSEmmanuel Vadot			gpio-ranges = <&tlmm 0 0 108>;
661f126890aSEmmanuel Vadot		};
662f126890aSEmmanuel Vadot
663f126890aSEmmanuel Vadot		sram@1468f000 {
664f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-imem", "syscon", "simple-mfd";
665f126890aSEmmanuel Vadot			reg = <0x1468f000 0x1000>;
666f126890aSEmmanuel Vadot
667f126890aSEmmanuel Vadot			#address-cells = <1>;
668f126890aSEmmanuel Vadot			#size-cells = <1>;
669f126890aSEmmanuel Vadot
670f126890aSEmmanuel Vadot			ranges = <0x0 0x1468f000 0x1000>;
671f126890aSEmmanuel Vadot
672f126890aSEmmanuel Vadot			pil-reloc@94c {
673f126890aSEmmanuel Vadot				compatible = "qcom,pil-reloc-info";
674f126890aSEmmanuel Vadot				reg = <0x94c 0x200>;
675f126890aSEmmanuel Vadot			};
676f126890aSEmmanuel Vadot		};
677f126890aSEmmanuel Vadot
678f126890aSEmmanuel Vadot		apps_smmu: iommu@15000000 {
679f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-smmu-500", "qcom,smmu-500", "arm,mmu-500";
680f126890aSEmmanuel Vadot			reg = <0x15000000 0x20000>;
681f126890aSEmmanuel Vadot			#iommu-cells = <2>;
682f126890aSEmmanuel Vadot			#global-interrupts = <1>;
683f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
684f126890aSEmmanuel Vadot				     <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
685f126890aSEmmanuel Vadot				     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
686f126890aSEmmanuel Vadot				     <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
687f126890aSEmmanuel Vadot				     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
688f126890aSEmmanuel Vadot				     <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
689f126890aSEmmanuel Vadot				     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
690f126890aSEmmanuel Vadot				     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
691f126890aSEmmanuel Vadot				     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
692f126890aSEmmanuel Vadot				     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
693f126890aSEmmanuel Vadot				     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
694f126890aSEmmanuel Vadot				     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
695f126890aSEmmanuel Vadot				     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
696f126890aSEmmanuel Vadot				     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
697f126890aSEmmanuel Vadot				     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
698f126890aSEmmanuel Vadot				     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
699f126890aSEmmanuel Vadot				     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
700f126890aSEmmanuel Vadot		};
701f126890aSEmmanuel Vadot
702f126890aSEmmanuel Vadot		intc: interrupt-controller@17800000 {
703f126890aSEmmanuel Vadot			compatible = "qcom,msm-qgic2";
704f126890aSEmmanuel Vadot			interrupt-controller;
705f126890aSEmmanuel Vadot			interrupt-parent = <&intc>;
706f126890aSEmmanuel Vadot			#interrupt-cells = <3>;
707f126890aSEmmanuel Vadot			reg = <0x17800000 0x1000>,
708f126890aSEmmanuel Vadot			      <0x17802000 0x1000>;
709f126890aSEmmanuel Vadot		};
710f126890aSEmmanuel Vadot
711f126890aSEmmanuel Vadot		a7pll: clock@17808000 {
712f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-a7pll";
713f126890aSEmmanuel Vadot			reg = <0x17808000 0x1000>;
714f126890aSEmmanuel Vadot			clocks = <&rpmhcc RPMH_CXO_CLK>;
715f126890aSEmmanuel Vadot			clock-names = "bi_tcxo";
716f126890aSEmmanuel Vadot			#clock-cells = <0>;
717f126890aSEmmanuel Vadot		};
718f126890aSEmmanuel Vadot
719f126890aSEmmanuel Vadot		apcs: mailbox@17810000 {
720f126890aSEmmanuel Vadot			compatible = "qcom,sdx55-apcs-gcc", "syscon";
721f126890aSEmmanuel Vadot			reg = <0x17810000 0x2000>;
722f126890aSEmmanuel Vadot			#mbox-cells = <1>;
723f126890aSEmmanuel Vadot			clocks = <&rpmhcc RPMH_CXO_CLK>, <&a7pll>, <&gcc GPLL0>;
724f126890aSEmmanuel Vadot			clock-names = "ref", "pll", "aux";
725f126890aSEmmanuel Vadot			#clock-cells = <0>;
726f126890aSEmmanuel Vadot		};
727f126890aSEmmanuel Vadot
728f126890aSEmmanuel Vadot		watchdog@17817000 {
729f126890aSEmmanuel Vadot			compatible = "qcom,apss-wdt-sdx55", "qcom,kpss-wdt";
730f126890aSEmmanuel Vadot			reg = <0x17817000 0x1000>;
731f126890aSEmmanuel Vadot			clocks = <&sleep_clk>;
732f126890aSEmmanuel Vadot		};
733f126890aSEmmanuel Vadot
734f126890aSEmmanuel Vadot		timer@17820000 {
735f126890aSEmmanuel Vadot			#address-cells = <1>;
736f126890aSEmmanuel Vadot			#size-cells = <1>;
737f126890aSEmmanuel Vadot			ranges;
738f126890aSEmmanuel Vadot			compatible = "arm,armv7-timer-mem";
739f126890aSEmmanuel Vadot			reg = <0x17820000 0x1000>;
740f126890aSEmmanuel Vadot			clock-frequency = <19200000>;
741f126890aSEmmanuel Vadot
742f126890aSEmmanuel Vadot			frame@17821000 {
743f126890aSEmmanuel Vadot				frame-number = <0>;
74401950c46SEmmanuel Vadot				interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
74501950c46SEmmanuel Vadot					     <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
746f126890aSEmmanuel Vadot				reg = <0x17821000 0x1000>,
747f126890aSEmmanuel Vadot				      <0x17822000 0x1000>;
748f126890aSEmmanuel Vadot			};
749f126890aSEmmanuel Vadot
750f126890aSEmmanuel Vadot			frame@17823000 {
751f126890aSEmmanuel Vadot				frame-number = <1>;
75201950c46SEmmanuel Vadot				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
753f126890aSEmmanuel Vadot				reg = <0x17823000 0x1000>;
754f126890aSEmmanuel Vadot				status = "disabled";
755f126890aSEmmanuel Vadot			};
756f126890aSEmmanuel Vadot
757f126890aSEmmanuel Vadot			frame@17824000 {
758f126890aSEmmanuel Vadot				frame-number = <2>;
75901950c46SEmmanuel Vadot				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
760f126890aSEmmanuel Vadot				reg = <0x17824000 0x1000>;
761f126890aSEmmanuel Vadot				status = "disabled";
762f126890aSEmmanuel Vadot			};
763f126890aSEmmanuel Vadot
764f126890aSEmmanuel Vadot			frame@17825000 {
765f126890aSEmmanuel Vadot				frame-number = <3>;
76601950c46SEmmanuel Vadot				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
767f126890aSEmmanuel Vadot				reg = <0x17825000 0x1000>;
768f126890aSEmmanuel Vadot				status = "disabled";
769f126890aSEmmanuel Vadot			};
770f126890aSEmmanuel Vadot
771f126890aSEmmanuel Vadot			frame@17826000 {
772f126890aSEmmanuel Vadot				frame-number = <4>;
77301950c46SEmmanuel Vadot				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
774f126890aSEmmanuel Vadot				reg = <0x17826000 0x1000>;
775f126890aSEmmanuel Vadot				status = "disabled";
776f126890aSEmmanuel Vadot			};
777f126890aSEmmanuel Vadot
778f126890aSEmmanuel Vadot			frame@17827000 {
779f126890aSEmmanuel Vadot				frame-number = <5>;
78001950c46SEmmanuel Vadot				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
781f126890aSEmmanuel Vadot				reg = <0x17827000 0x1000>;
782f126890aSEmmanuel Vadot				status = "disabled";
783f126890aSEmmanuel Vadot			};
784f126890aSEmmanuel Vadot
785f126890aSEmmanuel Vadot			frame@17828000 {
786f126890aSEmmanuel Vadot				frame-number = <6>;
78701950c46SEmmanuel Vadot				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
788f126890aSEmmanuel Vadot				reg = <0x17828000 0x1000>;
789f126890aSEmmanuel Vadot				status = "disabled";
790f126890aSEmmanuel Vadot			};
791f126890aSEmmanuel Vadot
792f126890aSEmmanuel Vadot			frame@17829000 {
793f126890aSEmmanuel Vadot				frame-number = <7>;
79401950c46SEmmanuel Vadot				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
795f126890aSEmmanuel Vadot				reg = <0x17829000 0x1000>;
796f126890aSEmmanuel Vadot				status = "disabled";
797f126890aSEmmanuel Vadot			};
798f126890aSEmmanuel Vadot		};
799f126890aSEmmanuel Vadot
800f126890aSEmmanuel Vadot		apps_rsc: rsc@17830000 {
801f126890aSEmmanuel Vadot			compatible = "qcom,rpmh-rsc";
802f126890aSEmmanuel Vadot			reg = <0x17830000 0x10000>, <0x17840000 0x10000>;
803f126890aSEmmanuel Vadot			reg-names = "drv-0", "drv-1";
804f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
805f126890aSEmmanuel Vadot				     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
806f126890aSEmmanuel Vadot			qcom,tcs-offset = <0xd00>;
807f126890aSEmmanuel Vadot			qcom,drv-id = <1>;
808f126890aSEmmanuel Vadot			qcom,tcs-config = <ACTIVE_TCS  2>, <SLEEP_TCS   2>,
809f126890aSEmmanuel Vadot					  <WAKE_TCS    2>, <CONTROL_TCS 1>;
810f126890aSEmmanuel Vadot
811f126890aSEmmanuel Vadot			rpmhcc: clock-controller {
812f126890aSEmmanuel Vadot				compatible = "qcom,sdx55-rpmh-clk";
813f126890aSEmmanuel Vadot				#clock-cells = <1>;
814f126890aSEmmanuel Vadot				clock-names = "xo";
815f126890aSEmmanuel Vadot				clocks = <&xo_board>;
816f126890aSEmmanuel Vadot			};
817f126890aSEmmanuel Vadot
818f126890aSEmmanuel Vadot			rpmhpd: power-controller {
819f126890aSEmmanuel Vadot				compatible = "qcom,sdx55-rpmhpd";
820f126890aSEmmanuel Vadot				#power-domain-cells = <1>;
821f126890aSEmmanuel Vadot				operating-points-v2 = <&rpmhpd_opp_table>;
822f126890aSEmmanuel Vadot
823f126890aSEmmanuel Vadot				rpmhpd_opp_table: opp-table {
824f126890aSEmmanuel Vadot					compatible = "operating-points-v2";
825f126890aSEmmanuel Vadot
826f126890aSEmmanuel Vadot					rpmhpd_opp_ret: opp1 {
827f126890aSEmmanuel Vadot						opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
828f126890aSEmmanuel Vadot					};
829f126890aSEmmanuel Vadot
830f126890aSEmmanuel Vadot					rpmhpd_opp_min_svs: opp2 {
831f126890aSEmmanuel Vadot						opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
832f126890aSEmmanuel Vadot					};
833f126890aSEmmanuel Vadot
834f126890aSEmmanuel Vadot					rpmhpd_opp_low_svs: opp3 {
835f126890aSEmmanuel Vadot						opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
836f126890aSEmmanuel Vadot					};
837f126890aSEmmanuel Vadot
838f126890aSEmmanuel Vadot					rpmhpd_opp_svs: opp4 {
839f126890aSEmmanuel Vadot						opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
840f126890aSEmmanuel Vadot					};
841f126890aSEmmanuel Vadot
842f126890aSEmmanuel Vadot					rpmhpd_opp_svs_l1: opp5 {
843f126890aSEmmanuel Vadot						opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
844f126890aSEmmanuel Vadot					};
845f126890aSEmmanuel Vadot
846f126890aSEmmanuel Vadot					rpmhpd_opp_nom: opp6 {
847f126890aSEmmanuel Vadot						opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
848f126890aSEmmanuel Vadot					};
849f126890aSEmmanuel Vadot
850f126890aSEmmanuel Vadot					rpmhpd_opp_nom_l1: opp7 {
851f126890aSEmmanuel Vadot						opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
852f126890aSEmmanuel Vadot					};
853f126890aSEmmanuel Vadot
854f126890aSEmmanuel Vadot					rpmhpd_opp_nom_l2: opp8 {
855f126890aSEmmanuel Vadot						opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
856f126890aSEmmanuel Vadot					};
857f126890aSEmmanuel Vadot
858f126890aSEmmanuel Vadot					rpmhpd_opp_turbo: opp9 {
859f126890aSEmmanuel Vadot						opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
860f126890aSEmmanuel Vadot					};
861f126890aSEmmanuel Vadot
862f126890aSEmmanuel Vadot					rpmhpd_opp_turbo_l1: opp10 {
863f126890aSEmmanuel Vadot						opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
864f126890aSEmmanuel Vadot					};
865f126890aSEmmanuel Vadot				};
866f126890aSEmmanuel Vadot			};
867f126890aSEmmanuel Vadot
868f126890aSEmmanuel Vadot			apps_bcm_voter: bcm-voter {
869f126890aSEmmanuel Vadot				compatible = "qcom,bcm-voter";
870f126890aSEmmanuel Vadot			};
871f126890aSEmmanuel Vadot		};
872f126890aSEmmanuel Vadot	};
873f126890aSEmmanuel Vadot
874f126890aSEmmanuel Vadot	timer {
875f126890aSEmmanuel Vadot		compatible = "arm,armv7-timer";
876f126890aSEmmanuel Vadot		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
877f126890aSEmmanuel Vadot			     <GIC_PPI 12 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
878f126890aSEmmanuel Vadot			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
879f126890aSEmmanuel Vadot			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
880f126890aSEmmanuel Vadot		clock-frequency = <19200000>;
881f126890aSEmmanuel Vadot	};
882f126890aSEmmanuel Vadot};
883