qcom-sdx55.dtsi 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783
  1. // SPDX-License-Identifier: BSD-3-Clause
  2. /*
  3. * SDX55 SoC device tree source
  4. *
  5. * Copyright (c) 2018, The Linux Foundation. All rights reserved.
  6. * Copyright (c) 2020, Linaro Ltd.
  7. */
  8. #include <dt-bindings/clock/qcom,gcc-sdx55.h>
  9. #include <dt-bindings/clock/qcom,rpmh.h>
  10. #include <dt-bindings/gpio/gpio.h>
  11. #include <dt-bindings/interconnect/qcom,sdx55.h>
  12. #include <dt-bindings/interrupt-controller/arm-gic.h>
  13. #include <dt-bindings/power/qcom-rpmpd.h>
  14. #include <dt-bindings/soc/qcom,rpmh-rsc.h>
  15. / {
  16. #address-cells = <1>;
  17. #size-cells = <1>;
  18. qcom,msm-id = <357 0x10000>, <368 0x10000>, <418 0x10000>;
  19. interrupt-parent = <&intc>;
  20. memory {
  21. device_type = "memory";
  22. reg = <0 0>;
  23. };
  24. clocks {
  25. xo_board: xo-board {
  26. compatible = "fixed-clock";
  27. #clock-cells = <0>;
  28. clock-frequency = <38400000>;
  29. clock-output-names = "xo_board";
  30. };
  31. sleep_clk: sleep-clk {
  32. compatible = "fixed-clock";
  33. #clock-cells = <0>;
  34. clock-frequency = <32000>;
  35. };
  36. nand_clk_dummy: nand-clk-dummy {
  37. compatible = "fixed-clock";
  38. #clock-cells = <0>;
  39. clock-frequency = <32000>;
  40. };
  41. };
  42. cpus {
  43. #address-cells = <1>;
  44. #size-cells = <0>;
  45. cpu0: cpu@0 {
  46. device_type = "cpu";
  47. compatible = "arm,cortex-a7";
  48. reg = <0x0>;
  49. enable-method = "psci";
  50. clocks = <&apcs>;
  51. power-domains = <&rpmhpd SDX55_CX>;
  52. power-domain-names = "rpmhpd";
  53. operating-points-v2 = <&cpu_opp_table>;
  54. };
  55. };
  56. cpu_opp_table: cpu-opp-table {
  57. compatible = "operating-points-v2";
  58. opp-shared;
  59. opp-345600000 {
  60. opp-hz = /bits/ 64 <345600000>;
  61. required-opps = <&rpmhpd_opp_low_svs>;
  62. };
  63. opp-576000000 {
  64. opp-hz = /bits/ 64 <576000000>;
  65. required-opps = <&rpmhpd_opp_svs>;
  66. };
  67. opp-1094400000 {
  68. opp-hz = /bits/ 64 <1094400000>;
  69. required-opps = <&rpmhpd_opp_nom>;
  70. };
  71. opp-1555200000 {
  72. opp-hz = /bits/ 64 <1555200000>;
  73. required-opps = <&rpmhpd_opp_turbo>;
  74. };
  75. };
  76. firmware {
  77. scm {
  78. compatible = "qcom,scm-sdx55", "qcom,scm";
  79. };
  80. };
  81. psci {
  82. compatible = "arm,psci-1.0";
  83. method = "smc";
  84. };
  85. reserved-memory {
  86. #address-cells = <1>;
  87. #size-cells = <1>;
  88. ranges;
  89. hyp_mem: memory@8fc00000 {
  90. no-map;
  91. reg = <0x8fc00000 0x80000>;
  92. };
  93. ac_db_mem: memory@8fc80000 {
  94. no-map;
  95. reg = <0x8fc80000 0x40000>;
  96. };
  97. secdata_mem: memory@8fcfd000 {
  98. no-map;
  99. reg = <0x8fcfd000 0x1000>;
  100. };
  101. sbl_mem: memory@8fd00000 {
  102. no-map;
  103. reg = <0x8fd00000 0x100000>;
  104. };
  105. aop_image: memory@8fe00000 {
  106. no-map;
  107. reg = <0x8fe00000 0x20000>;
  108. };
  109. aop_cmd_db: memory@8fe20000 {
  110. compatible = "qcom,cmd-db";
  111. reg = <0x8fe20000 0x20000>;
  112. no-map;
  113. };
  114. smem_mem: memory@8fe40000 {
  115. no-map;
  116. reg = <0x8fe40000 0xc0000>;
  117. };
  118. tz_mem: memory@8ff00000 {
  119. no-map;
  120. reg = <0x8ff00000 0x100000>;
  121. };
  122. tz_apps_mem: memory@90000000 {
  123. no-map;
  124. reg = <0x90000000 0x500000>;
  125. };
  126. };
  127. smem {
  128. compatible = "qcom,smem";
  129. memory-region = <&smem_mem>;
  130. hwlocks = <&tcsr_mutex 3>;
  131. };
  132. smp2p-mpss {
  133. compatible = "qcom,smp2p";
  134. qcom,smem = <435>, <428>;
  135. interrupts = <GIC_SPI 113 IRQ_TYPE_EDGE_RISING>;
  136. mboxes = <&apcs 14>;
  137. qcom,local-pid = <0>;
  138. qcom,remote-pid = <1>;
  139. modem_smp2p_out: master-kernel {
  140. qcom,entry-name = "master-kernel";
  141. #qcom,smem-state-cells = <1>;
  142. };
  143. modem_smp2p_in: slave-kernel {
  144. qcom,entry-name = "slave-kernel";
  145. interrupt-controller;
  146. #interrupt-cells = <2>;
  147. };
  148. ipa_smp2p_out: ipa-ap-to-modem {
  149. qcom,entry-name = "ipa";
  150. #qcom,smem-state-cells = <1>;
  151. };
  152. ipa_smp2p_in: ipa-modem-to-ap {
  153. qcom,entry-name = "ipa";
  154. interrupt-controller;
  155. #interrupt-cells = <2>;
  156. };
  157. };
  158. soc: soc {
  159. #address-cells = <1>;
  160. #size-cells = <1>;
  161. ranges;
  162. compatible = "simple-bus";
  163. gcc: clock-controller@100000 {
  164. compatible = "qcom,gcc-sdx55";
  165. reg = <0x100000 0x1f0000>;
  166. #clock-cells = <1>;
  167. #reset-cells = <1>;
  168. #power-domain-cells = <1>;
  169. clock-names = "bi_tcxo", "sleep_clk";
  170. clocks = <&rpmhcc RPMH_CXO_CLK>, <&sleep_clk>;
  171. };
  172. blsp1_uart3: serial@831000 {
  173. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  174. reg = <0x00831000 0x200>;
  175. interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
  176. clocks = <&gcc 30>,
  177. <&gcc 9>;
  178. clock-names = "core", "iface";
  179. status = "disabled";
  180. };
  181. usb_hsphy: phy@ff4000 {
  182. compatible = "qcom,usb-snps-hs-7nm-phy";
  183. reg = <0x00ff4000 0x114>;
  184. status = "disabled";
  185. #phy-cells = <0>;
  186. clocks = <&rpmhcc RPMH_CXO_CLK>;
  187. clock-names = "ref";
  188. resets = <&gcc GCC_QUSB2PHY_BCR>;
  189. };
  190. usb_qmpphy: phy@ff6000 {
  191. compatible = "qcom,sdx55-qmp-usb3-uni-phy";
  192. reg = <0x00ff6000 0x1c0>;
  193. status = "disabled";
  194. #address-cells = <1>;
  195. #size-cells = <1>;
  196. ranges;
  197. clocks = <&gcc GCC_USB3_PHY_AUX_CLK>,
  198. <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
  199. <&gcc GCC_USB3_PRIM_CLKREF_CLK>;
  200. clock-names = "aux", "cfg_ahb", "ref";
  201. resets = <&gcc GCC_USB3PHY_PHY_BCR>,
  202. <&gcc GCC_USB3_PHY_BCR>;
  203. reset-names = "phy", "common";
  204. usb_ssphy: phy@ff6200 {
  205. reg = <0x00ff6200 0x170>,
  206. <0x00ff6400 0x200>,
  207. <0x00ff6800 0x800>;
  208. #phy-cells = <0>;
  209. #clock-cells = <0>;
  210. clocks = <&gcc GCC_USB3_PHY_PIPE_CLK>;
  211. clock-names = "pipe0";
  212. clock-output-names = "usb3_uni_phy_pipe_clk_src";
  213. };
  214. };
  215. mc_virt: interconnect@1100000 {
  216. compatible = "qcom,sdx55-mc-virt";
  217. reg = <0x01100000 0x400000>;
  218. #interconnect-cells = <1>;
  219. qcom,bcm-voters = <&apps_bcm_voter>;
  220. };
  221. mem_noc: interconnect@9680000 {
  222. compatible = "qcom,sdx55-mem-noc";
  223. reg = <0x09680000 0x40000>;
  224. #interconnect-cells = <1>;
  225. qcom,bcm-voters = <&apps_bcm_voter>;
  226. };
  227. system_noc: interconnect@162c000 {
  228. compatible = "qcom,sdx55-system-noc";
  229. reg = <0x0162c000 0x31200>;
  230. #interconnect-cells = <1>;
  231. qcom,bcm-voters = <&apps_bcm_voter>;
  232. };
  233. qpic_bam: dma-controller@1b04000 {
  234. compatible = "qcom,bam-v1.7.0";
  235. reg = <0x01b04000 0x1c000>;
  236. interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
  237. clocks = <&rpmhcc RPMH_QPIC_CLK>;
  238. clock-names = "bam_clk";
  239. #dma-cells = <1>;
  240. qcom,ee = <0>;
  241. qcom,controlled-remotely;
  242. status = "disabled";
  243. };
  244. qpic_nand: nand-controller@1b30000 {
  245. compatible = "qcom,sdx55-nand";
  246. reg = <0x01b30000 0x10000>;
  247. #address-cells = <1>;
  248. #size-cells = <0>;
  249. clocks = <&rpmhcc RPMH_QPIC_CLK>,
  250. <&nand_clk_dummy>;
  251. clock-names = "core", "aon";
  252. dmas = <&qpic_bam 0>,
  253. <&qpic_bam 1>,
  254. <&qpic_bam 2>;
  255. dma-names = "tx", "rx", "cmd";
  256. status = "disabled";
  257. };
  258. pcie_ep: pcie-ep@1c00000 {
  259. compatible = "qcom,sdx55-pcie-ep";
  260. reg = <0x01c00000 0x3000>,
  261. <0x40000000 0xf1d>,
  262. <0x40000f20 0xc8>,
  263. <0x40001000 0x1000>,
  264. <0x40200000 0x100000>,
  265. <0x01c03000 0x3000>;
  266. reg-names = "parf", "dbi", "elbi", "atu", "addr_space",
  267. "mmio";
  268. qcom,perst-regs = <&tcsr 0xb258 0xb270>;
  269. clocks = <&gcc GCC_PCIE_AUX_CLK>,
  270. <&gcc GCC_PCIE_CFG_AHB_CLK>,
  271. <&gcc GCC_PCIE_MSTR_AXI_CLK>,
  272. <&gcc GCC_PCIE_SLV_AXI_CLK>,
  273. <&gcc GCC_PCIE_SLV_Q2A_AXI_CLK>,
  274. <&gcc GCC_PCIE_SLEEP_CLK>,
  275. <&gcc GCC_PCIE_0_CLKREF_CLK>;
  276. clock-names = "aux", "cfg", "bus_master", "bus_slave",
  277. "slave_q2a", "sleep", "ref";
  278. interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
  279. <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
  280. interrupt-names = "global", "doorbell";
  281. reset-gpios = <&tlmm 57 GPIO_ACTIVE_LOW>;
  282. wake-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>;
  283. resets = <&gcc GCC_PCIE_BCR>;
  284. reset-names = "core";
  285. power-domains = <&gcc PCIE_GDSC>;
  286. phys = <&pcie0_lane>;
  287. phy-names = "pciephy";
  288. max-link-speed = <3>;
  289. num-lanes = <2>;
  290. status = "disabled";
  291. };
  292. pcie0_phy: phy@1c07000 {
  293. compatible = "qcom,sdx55-qmp-pcie-phy";
  294. reg = <0x01c07000 0x1c4>;
  295. #address-cells = <1>;
  296. #size-cells = <1>;
  297. ranges;
  298. clocks = <&gcc GCC_PCIE_AUX_PHY_CLK_SRC>,
  299. <&gcc GCC_PCIE_CFG_AHB_CLK>,
  300. <&gcc GCC_PCIE_0_CLKREF_CLK>,
  301. <&gcc GCC_PCIE_RCHNG_PHY_CLK>;
  302. clock-names = "aux", "cfg_ahb", "ref", "refgen";
  303. resets = <&gcc GCC_PCIE_PHY_BCR>;
  304. reset-names = "phy";
  305. assigned-clocks = <&gcc GCC_PCIE_RCHNG_PHY_CLK>;
  306. assigned-clock-rates = <100000000>;
  307. status = "disabled";
  308. pcie0_lane: lanes@1c06000 {
  309. reg = <0x01c06000 0x104>, /* tx0 */
  310. <0x01c06200 0x328>, /* rx0 */
  311. <0x01c07200 0x1e8>, /* pcs */
  312. <0x01c06800 0x104>, /* tx1 */
  313. <0x01c06a00 0x328>, /* rx1 */
  314. <0x01c07600 0x800>; /* pcs_misc */
  315. clocks = <&gcc GCC_PCIE_PIPE_CLK>;
  316. clock-names = "pipe0";
  317. #phy-cells = <0>;
  318. clock-output-names = "pcie_pipe_clk";
  319. };
  320. };
  321. ipa: ipa@1e40000 {
  322. compatible = "qcom,sdx55-ipa";
  323. iommus = <&apps_smmu 0x5e0 0x0>,
  324. <&apps_smmu 0x5e2 0x0>;
  325. reg = <0x1e40000 0x7000>,
  326. <0x1e50000 0x4b20>,
  327. <0x1e04000 0x2c000>;
  328. reg-names = "ipa-reg",
  329. "ipa-shared",
  330. "gsi";
  331. interrupts-extended = <&intc GIC_SPI 241 IRQ_TYPE_EDGE_RISING>,
  332. <&intc GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
  333. <&ipa_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
  334. <&ipa_smp2p_in 1 IRQ_TYPE_EDGE_RISING>;
  335. interrupt-names = "ipa",
  336. "gsi",
  337. "ipa-clock-query",
  338. "ipa-setup-ready";
  339. clocks = <&rpmhcc RPMH_IPA_CLK>;
  340. clock-names = "core";
  341. interconnects = <&system_noc MASTER_IPA &mc_virt SLAVE_EBI_CH0>,
  342. <&system_noc MASTER_IPA &system_noc SLAVE_OCIMEM>,
  343. <&mem_noc MASTER_AMPSS_M0 &system_noc SLAVE_IPA_CFG>;
  344. interconnect-names = "memory",
  345. "imem",
  346. "config";
  347. qcom,smem-states = <&ipa_smp2p_out 0>,
  348. <&ipa_smp2p_out 1>;
  349. qcom,smem-state-names = "ipa-clock-enabled-valid",
  350. "ipa-clock-enabled";
  351. status = "disabled";
  352. };
  353. tcsr_mutex: hwlock@1f40000 {
  354. compatible = "qcom,tcsr-mutex";
  355. reg = <0x01f40000 0x40000>;
  356. #hwlock-cells = <1>;
  357. };
  358. tcsr: syscon@1fcb000 {
  359. compatible = "syscon";
  360. reg = <0x01fc0000 0x1000>;
  361. };
  362. sdhc_1: mmc@8804000 {
  363. compatible = "qcom,sdx55-sdhci", "qcom,sdhci-msm-v5";
  364. reg = <0x08804000 0x1000>;
  365. interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
  366. <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
  367. interrupt-names = "hc_irq", "pwr_irq";
  368. clocks = <&gcc GCC_SDCC1_AHB_CLK>,
  369. <&gcc GCC_SDCC1_APPS_CLK>;
  370. clock-names = "iface", "core";
  371. status = "disabled";
  372. };
  373. remoteproc_mpss: remoteproc@4080000 {
  374. compatible = "qcom,sdx55-mpss-pas";
  375. reg = <0x04080000 0x4040>;
  376. interrupts-extended = <&intc GIC_SPI 250 IRQ_TYPE_EDGE_RISING>,
  377. <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
  378. <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
  379. <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
  380. <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
  381. <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
  382. interrupt-names = "wdog", "fatal", "ready", "handover",
  383. "stop-ack", "shutdown-ack";
  384. clocks = <&rpmhcc RPMH_CXO_CLK>;
  385. clock-names = "xo";
  386. power-domains = <&rpmhpd SDX55_CX>,
  387. <&rpmhpd SDX55_MSS>;
  388. power-domain-names = "cx", "mss";
  389. qcom,smem-states = <&modem_smp2p_out 0>;
  390. qcom,smem-state-names = "stop";
  391. status = "disabled";
  392. glink-edge {
  393. interrupts = <GIC_SPI 114 IRQ_TYPE_EDGE_RISING>;
  394. label = "mpss";
  395. qcom,remote-pid = <1>;
  396. mboxes = <&apcs 15>;
  397. };
  398. };
  399. usb: usb@a6f8800 {
  400. compatible = "qcom,sdx55-dwc3", "qcom,dwc3";
  401. reg = <0x0a6f8800 0x400>;
  402. status = "disabled";
  403. #address-cells = <1>;
  404. #size-cells = <1>;
  405. ranges;
  406. clocks = <&gcc GCC_USB30_SLV_AHB_CLK>,
  407. <&gcc GCC_USB30_MASTER_CLK>,
  408. <&gcc GCC_USB30_MSTR_AXI_CLK>,
  409. <&gcc GCC_USB30_SLEEP_CLK>,
  410. <&gcc GCC_USB30_MOCK_UTMI_CLK>;
  411. clock-names = "cfg_noc",
  412. "core",
  413. "iface",
  414. "sleep",
  415. "mock_utmi";
  416. assigned-clocks = <&gcc GCC_USB30_MOCK_UTMI_CLK>,
  417. <&gcc GCC_USB30_MASTER_CLK>;
  418. assigned-clock-rates = <19200000>, <200000000>;
  419. interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
  420. <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
  421. <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
  422. <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
  423. interrupt-names = "hs_phy_irq", "ss_phy_irq",
  424. "dm_hs_phy_irq", "dp_hs_phy_irq";
  425. power-domains = <&gcc USB30_GDSC>;
  426. resets = <&gcc GCC_USB30_BCR>;
  427. usb_dwc3: dwc3@a600000 {
  428. compatible = "snps,dwc3";
  429. reg = <0x0a600000 0xcd00>;
  430. interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
  431. iommus = <&apps_smmu 0x1a0 0x0>;
  432. snps,dis_u2_susphy_quirk;
  433. snps,dis_enblslpm_quirk;
  434. phys = <&usb_hsphy>, <&usb_ssphy>;
  435. phy-names = "usb2-phy", "usb3-phy";
  436. };
  437. };
  438. pdc: interrupt-controller@b210000 {
  439. compatible = "qcom,sdx55-pdc", "qcom,pdc";
  440. reg = <0x0b210000 0x30000>;
  441. qcom,pdc-ranges = <0 179 52>;
  442. #interrupt-cells = <3>;
  443. interrupt-parent = <&intc>;
  444. interrupt-controller;
  445. };
  446. restart@c264000 {
  447. compatible = "qcom,pshold";
  448. reg = <0x0c264000 0x1000>;
  449. };
  450. spmi_bus: spmi@c440000 {
  451. compatible = "qcom,spmi-pmic-arb";
  452. reg = <0x0c440000 0x0000d00>,
  453. <0x0c600000 0x2000000>,
  454. <0x0e600000 0x0100000>,
  455. <0x0e700000 0x00a0000>,
  456. <0x0c40a000 0x0000700>;
  457. reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
  458. interrupt-names = "periph_irq";
  459. interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
  460. qcom,ee = <0>;
  461. qcom,channel = <0>;
  462. #address-cells = <2>;
  463. #size-cells = <0>;
  464. interrupt-controller;
  465. #interrupt-cells = <4>;
  466. cell-index = <0>;
  467. };
  468. tlmm: pinctrl@f100000 {
  469. compatible = "qcom,sdx55-pinctrl";
  470. reg = <0xf100000 0x300000>;
  471. interrupts = <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>;
  472. gpio-controller;
  473. #gpio-cells = <2>;
  474. interrupt-controller;
  475. #interrupt-cells = <2>;
  476. };
  477. sram@1468f000 {
  478. compatible = "qcom,sdx55-imem", "syscon", "simple-mfd";
  479. reg = <0x1468f000 0x1000>;
  480. #address-cells = <1>;
  481. #size-cells = <1>;
  482. ranges = <0x0 0x1468f000 0x1000>;
  483. pil-reloc@94c {
  484. compatible = "qcom,pil-reloc-info";
  485. reg = <0x94c 0x200>;
  486. };
  487. };
  488. apps_smmu: iommu@15000000 {
  489. compatible = "qcom,sdx55-smmu-500", "qcom,smmu-500", "arm,mmu-500";
  490. reg = <0x15000000 0x20000>;
  491. #iommu-cells = <2>;
  492. #global-interrupts = <1>;
  493. interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
  494. <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
  495. <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
  496. <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
  497. <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
  498. <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
  499. <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
  500. <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
  501. <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
  502. <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
  503. <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
  504. <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
  505. <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
  506. <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
  507. <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
  508. <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
  509. <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
  510. };
  511. intc: interrupt-controller@17800000 {
  512. compatible = "qcom,msm-qgic2";
  513. interrupt-controller;
  514. interrupt-parent = <&intc>;
  515. #interrupt-cells = <3>;
  516. reg = <0x17800000 0x1000>,
  517. <0x17802000 0x1000>;
  518. };
  519. a7pll: clock@17808000 {
  520. compatible = "qcom,sdx55-a7pll";
  521. reg = <0x17808000 0x1000>;
  522. clocks = <&rpmhcc RPMH_CXO_CLK>;
  523. clock-names = "bi_tcxo";
  524. #clock-cells = <0>;
  525. };
  526. apcs: mailbox@17810000 {
  527. compatible = "qcom,sdx55-apcs-gcc", "syscon";
  528. reg = <0x17810000 0x2000>;
  529. #mbox-cells = <1>;
  530. clocks = <&rpmhcc RPMH_CXO_CLK>, <&a7pll>, <&gcc GPLL0>;
  531. clock-names = "ref", "pll", "aux";
  532. #clock-cells = <0>;
  533. };
  534. watchdog@17817000 {
  535. compatible = "qcom,apss-wdt-sdx55", "qcom,kpss-wdt";
  536. reg = <0x17817000 0x1000>;
  537. clocks = <&sleep_clk>;
  538. };
  539. timer@17820000 {
  540. #address-cells = <1>;
  541. #size-cells = <1>;
  542. ranges;
  543. compatible = "arm,armv7-timer-mem";
  544. reg = <0x17820000 0x1000>;
  545. clock-frequency = <19200000>;
  546. frame@17821000 {
  547. frame-number = <0>;
  548. interrupts = <GIC_SPI 7 0x4>,
  549. <GIC_SPI 6 0x4>;
  550. reg = <0x17821000 0x1000>,
  551. <0x17822000 0x1000>;
  552. };
  553. frame@17823000 {
  554. frame-number = <1>;
  555. interrupts = <GIC_SPI 8 0x4>;
  556. reg = <0x17823000 0x1000>;
  557. status = "disabled";
  558. };
  559. frame@17824000 {
  560. frame-number = <2>;
  561. interrupts = <GIC_SPI 9 0x4>;
  562. reg = <0x17824000 0x1000>;
  563. status = "disabled";
  564. };
  565. frame@17825000 {
  566. frame-number = <3>;
  567. interrupts = <GIC_SPI 10 0x4>;
  568. reg = <0x17825000 0x1000>;
  569. status = "disabled";
  570. };
  571. frame@17826000 {
  572. frame-number = <4>;
  573. interrupts = <GIC_SPI 11 0x4>;
  574. reg = <0x17826000 0x1000>;
  575. status = "disabled";
  576. };
  577. frame@17827000 {
  578. frame-number = <5>;
  579. interrupts = <GIC_SPI 12 0x4>;
  580. reg = <0x17827000 0x1000>;
  581. status = "disabled";
  582. };
  583. frame@17828000 {
  584. frame-number = <6>;
  585. interrupts = <GIC_SPI 13 0x4>;
  586. reg = <0x17828000 0x1000>;
  587. status = "disabled";
  588. };
  589. frame@17829000 {
  590. frame-number = <7>;
  591. interrupts = <GIC_SPI 14 0x4>;
  592. reg = <0x17829000 0x1000>;
  593. status = "disabled";
  594. };
  595. };
  596. apps_rsc: rsc@17840000 {
  597. compatible = "qcom,rpmh-rsc";
  598. reg = <0x17830000 0x10000>, <0x17840000 0x10000>;
  599. reg-names = "drv-0", "drv-1";
  600. interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
  601. <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
  602. qcom,tcs-offset = <0xd00>;
  603. qcom,drv-id = <1>;
  604. qcom,tcs-config = <ACTIVE_TCS 2>, <SLEEP_TCS 2>,
  605. <WAKE_TCS 2>, <CONTROL_TCS 1>;
  606. rpmhcc: clock-controller {
  607. compatible = "qcom,sdx55-rpmh-clk";
  608. #clock-cells = <1>;
  609. clock-names = "xo";
  610. clocks = <&xo_board>;
  611. };
  612. rpmhpd: power-controller {
  613. compatible = "qcom,sdx55-rpmhpd";
  614. #power-domain-cells = <1>;
  615. operating-points-v2 = <&rpmhpd_opp_table>;
  616. rpmhpd_opp_table: opp-table {
  617. compatible = "operating-points-v2";
  618. rpmhpd_opp_ret: opp1 {
  619. opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
  620. };
  621. rpmhpd_opp_min_svs: opp2 {
  622. opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
  623. };
  624. rpmhpd_opp_low_svs: opp3 {
  625. opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
  626. };
  627. rpmhpd_opp_svs: opp4 {
  628. opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
  629. };
  630. rpmhpd_opp_svs_l1: opp5 {
  631. opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
  632. };
  633. rpmhpd_opp_nom: opp6 {
  634. opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
  635. };
  636. rpmhpd_opp_nom_l1: opp7 {
  637. opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
  638. };
  639. rpmhpd_opp_nom_l2: opp8 {
  640. opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
  641. };
  642. rpmhpd_opp_turbo: opp9 {
  643. opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
  644. };
  645. rpmhpd_opp_turbo_l1: opp10 {
  646. opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
  647. };
  648. };
  649. };
  650. apps_bcm_voter: bcm-voter {
  651. compatible = "qcom,bcm-voter";
  652. };
  653. };
  654. };
  655. timer {
  656. compatible = "arm,armv7-timer";
  657. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  658. <GIC_PPI 12 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  659. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  660. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  661. clock-frequency = <19200000>;
  662. };
  663. };