ipq6018.dtsi 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816
  1. // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
  2. /*
  3. * IPQ6018 SoC device tree source
  4. *
  5. * Copyright (c) 2019, The Linux Foundation. All rights reserved.
  6. */
  7. #include <dt-bindings/interrupt-controller/arm-gic.h>
  8. #include <dt-bindings/clock/qcom,gcc-ipq6018.h>
  9. #include <dt-bindings/reset/qcom,gcc-ipq6018.h>
  10. #include <dt-bindings/clock/qcom,apss-ipq.h>
  11. / {
  12. #address-cells = <2>;
  13. #size-cells = <2>;
  14. interrupt-parent = <&intc>;
  15. clocks {
  16. sleep_clk: sleep-clk {
  17. compatible = "fixed-clock";
  18. clock-frequency = <32000>;
  19. #clock-cells = <0>;
  20. };
  21. xo: xo {
  22. compatible = "fixed-clock";
  23. clock-frequency = <24000000>;
  24. #clock-cells = <0>;
  25. };
  26. };
  27. cpus: cpus {
  28. #address-cells = <1>;
  29. #size-cells = <0>;
  30. CPU0: cpu@0 {
  31. device_type = "cpu";
  32. compatible = "arm,cortex-a53";
  33. reg = <0x0>;
  34. enable-method = "psci";
  35. next-level-cache = <&L2_0>;
  36. clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
  37. clock-names = "cpu";
  38. operating-points-v2 = <&cpu_opp_table>;
  39. cpu-supply = <&ipq6018_s2>;
  40. };
  41. CPU1: cpu@1 {
  42. device_type = "cpu";
  43. compatible = "arm,cortex-a53";
  44. enable-method = "psci";
  45. reg = <0x1>;
  46. next-level-cache = <&L2_0>;
  47. clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
  48. clock-names = "cpu";
  49. operating-points-v2 = <&cpu_opp_table>;
  50. cpu-supply = <&ipq6018_s2>;
  51. };
  52. CPU2: cpu@2 {
  53. device_type = "cpu";
  54. compatible = "arm,cortex-a53";
  55. enable-method = "psci";
  56. reg = <0x2>;
  57. next-level-cache = <&L2_0>;
  58. clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
  59. clock-names = "cpu";
  60. operating-points-v2 = <&cpu_opp_table>;
  61. cpu-supply = <&ipq6018_s2>;
  62. };
  63. CPU3: cpu@3 {
  64. device_type = "cpu";
  65. compatible = "arm,cortex-a53";
  66. enable-method = "psci";
  67. reg = <0x3>;
  68. next-level-cache = <&L2_0>;
  69. clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
  70. clock-names = "cpu";
  71. operating-points-v2 = <&cpu_opp_table>;
  72. cpu-supply = <&ipq6018_s2>;
  73. };
  74. L2_0: l2-cache {
  75. compatible = "cache";
  76. cache-level = <0x2>;
  77. };
  78. };
  79. cpu_opp_table: opp-table-cpu {
  80. compatible = "operating-points-v2";
  81. opp-shared;
  82. opp-864000000 {
  83. opp-hz = /bits/ 64 <864000000>;
  84. opp-microvolt = <725000>;
  85. clock-latency-ns = <200000>;
  86. };
  87. opp-1056000000 {
  88. opp-hz = /bits/ 64 <1056000000>;
  89. opp-microvolt = <787500>;
  90. clock-latency-ns = <200000>;
  91. };
  92. opp-1320000000 {
  93. opp-hz = /bits/ 64 <1320000000>;
  94. opp-microvolt = <862500>;
  95. clock-latency-ns = <200000>;
  96. };
  97. opp-1440000000 {
  98. opp-hz = /bits/ 64 <1440000000>;
  99. opp-microvolt = <925000>;
  100. clock-latency-ns = <200000>;
  101. };
  102. opp-1608000000 {
  103. opp-hz = /bits/ 64 <1608000000>;
  104. opp-microvolt = <987500>;
  105. clock-latency-ns = <200000>;
  106. };
  107. opp-1800000000 {
  108. opp-hz = /bits/ 64 <1800000000>;
  109. opp-microvolt = <1062500>;
  110. clock-latency-ns = <200000>;
  111. };
  112. };
  113. firmware {
  114. scm {
  115. compatible = "qcom,scm-ipq6018", "qcom,scm";
  116. };
  117. };
  118. pmuv8: pmu {
  119. compatible = "arm,cortex-a53-pmu";
  120. interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) |
  121. IRQ_TYPE_LEVEL_HIGH)>;
  122. };
  123. psci: psci {
  124. compatible = "arm,psci-1.0";
  125. method = "smc";
  126. };
  127. reserved-memory {
  128. #address-cells = <2>;
  129. #size-cells = <2>;
  130. ranges;
  131. rpm_msg_ram: memory@60000 {
  132. reg = <0x0 0x60000 0x0 0x6000>;
  133. no-map;
  134. };
  135. tz: memory@4a600000 {
  136. reg = <0x0 0x4a600000 0x0 0x00400000>;
  137. no-map;
  138. };
  139. smem_region: memory@4aa00000 {
  140. reg = <0x0 0x4aa00000 0x0 0x00100000>;
  141. no-map;
  142. };
  143. q6_region: memory@4ab00000 {
  144. reg = <0x0 0x4ab00000 0x0 0x05500000>;
  145. no-map;
  146. };
  147. };
  148. smem {
  149. compatible = "qcom,smem";
  150. memory-region = <&smem_region>;
  151. hwlocks = <&tcsr_mutex 3>;
  152. };
  153. soc: soc {
  154. #address-cells = <2>;
  155. #size-cells = <2>;
  156. ranges = <0 0 0 0 0x0 0xffffffff>;
  157. dma-ranges;
  158. compatible = "simple-bus";
  159. prng: qrng@e1000 {
  160. compatible = "qcom,prng-ee";
  161. reg = <0x0 0xe3000 0x0 0x1000>;
  162. clocks = <&gcc GCC_PRNG_AHB_CLK>;
  163. clock-names = "core";
  164. };
  165. cryptobam: dma-controller@704000 {
  166. compatible = "qcom,bam-v1.7.0";
  167. reg = <0x0 0x00704000 0x0 0x20000>;
  168. interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
  169. clocks = <&gcc GCC_CRYPTO_AHB_CLK>;
  170. clock-names = "bam_clk";
  171. #dma-cells = <1>;
  172. qcom,ee = <1>;
  173. qcom,controlled-remotely;
  174. };
  175. crypto: crypto@73a000 {
  176. compatible = "qcom,crypto-v5.1";
  177. reg = <0x0 0x0073a000 0x0 0x6000>;
  178. clocks = <&gcc GCC_CRYPTO_AHB_CLK>,
  179. <&gcc GCC_CRYPTO_AXI_CLK>,
  180. <&gcc GCC_CRYPTO_CLK>;
  181. clock-names = "iface", "bus", "core";
  182. dmas = <&cryptobam 2>, <&cryptobam 3>;
  183. dma-names = "rx", "tx";
  184. };
  185. tlmm: pinctrl@1000000 {
  186. compatible = "qcom,ipq6018-pinctrl";
  187. reg = <0x0 0x01000000 0x0 0x300000>;
  188. interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
  189. gpio-controller;
  190. #gpio-cells = <2>;
  191. gpio-ranges = <&tlmm 0 0 80>;
  192. interrupt-controller;
  193. #interrupt-cells = <2>;
  194. serial_3_pins: serial3-pinmux {
  195. pins = "gpio44", "gpio45";
  196. function = "blsp2_uart";
  197. drive-strength = <8>;
  198. bias-pull-down;
  199. };
  200. qpic_pins: qpic-pins {
  201. pins = "gpio1", "gpio3", "gpio4",
  202. "gpio5", "gpio6", "gpio7",
  203. "gpio8", "gpio10", "gpio11",
  204. "gpio12", "gpio13", "gpio14",
  205. "gpio15", "gpio17";
  206. function = "qpic_pad";
  207. drive-strength = <8>;
  208. bias-disable;
  209. };
  210. };
  211. gcc: gcc@1800000 {
  212. compatible = "qcom,gcc-ipq6018";
  213. reg = <0x0 0x01800000 0x0 0x80000>;
  214. clocks = <&xo>, <&sleep_clk>;
  215. clock-names = "xo", "sleep_clk";
  216. #clock-cells = <1>;
  217. #reset-cells = <1>;
  218. };
  219. tcsr_mutex: hwlock@1905000 {
  220. compatible = "qcom,ipq6018-tcsr-mutex", "qcom,tcsr-mutex";
  221. reg = <0x0 0x01905000 0x0 0x20000>;
  222. #hwlock-cells = <1>;
  223. };
  224. tcsr: syscon@1937000 {
  225. compatible = "qcom,tcsr-ipq6018", "syscon";
  226. reg = <0x0 0x01937000 0x0 0x21000>;
  227. };
  228. blsp_dma: dma-controller@7884000 {
  229. compatible = "qcom,bam-v1.7.0";
  230. reg = <0x0 0x07884000 0x0 0x2b000>;
  231. interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
  232. clocks = <&gcc GCC_BLSP1_AHB_CLK>;
  233. clock-names = "bam_clk";
  234. #dma-cells = <1>;
  235. qcom,ee = <0>;
  236. };
  237. blsp1_uart3: serial@78b1000 {
  238. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  239. reg = <0x0 0x078b1000 0x0 0x200>;
  240. interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
  241. clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>,
  242. <&gcc GCC_BLSP1_AHB_CLK>;
  243. clock-names = "core", "iface";
  244. status = "disabled";
  245. };
  246. blsp1_spi1: spi@78b5000 {
  247. compatible = "qcom,spi-qup-v2.2.1";
  248. #address-cells = <1>;
  249. #size-cells = <0>;
  250. reg = <0x0 0x078b5000 0x0 0x600>;
  251. interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
  252. spi-max-frequency = <50000000>;
  253. clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
  254. <&gcc GCC_BLSP1_AHB_CLK>;
  255. clock-names = "core", "iface";
  256. dmas = <&blsp_dma 12>, <&blsp_dma 13>;
  257. dma-names = "tx", "rx";
  258. status = "disabled";
  259. };
  260. blsp1_spi2: spi@78b6000 {
  261. compatible = "qcom,spi-qup-v2.2.1";
  262. #address-cells = <1>;
  263. #size-cells = <0>;
  264. reg = <0x0 0x078b6000 0x0 0x600>;
  265. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  266. spi-max-frequency = <50000000>;
  267. clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
  268. <&gcc GCC_BLSP1_AHB_CLK>;
  269. clock-names = "core", "iface";
  270. dmas = <&blsp_dma 14>, <&blsp_dma 15>;
  271. dma-names = "tx", "rx";
  272. status = "disabled";
  273. };
  274. blsp1_i2c2: i2c@78b6000 {
  275. compatible = "qcom,i2c-qup-v2.2.1";
  276. #address-cells = <1>;
  277. #size-cells = <0>;
  278. reg = <0x0 0x078b6000 0x0 0x600>;
  279. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  280. clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
  281. <&gcc GCC_BLSP1_AHB_CLK>;
  282. clock-names = "core", "iface";
  283. clock-frequency = <400000>;
  284. dmas = <&blsp_dma 14>, <&blsp_dma 15>;
  285. dma-names = "tx", "rx";
  286. status = "disabled";
  287. };
  288. blsp1_i2c3: i2c@78b7000 {
  289. compatible = "qcom,i2c-qup-v2.2.1";
  290. #address-cells = <1>;
  291. #size-cells = <0>;
  292. reg = <0x0 0x078b7000 0x0 0x600>;
  293. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  294. clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
  295. <&gcc GCC_BLSP1_AHB_CLK>;
  296. clock-names = "core", "iface";
  297. clock-frequency = <400000>;
  298. dmas = <&blsp_dma 16>, <&blsp_dma 17>;
  299. dma-names = "tx", "rx";
  300. status = "disabled";
  301. };
  302. qpic_bam: dma-controller@7984000 {
  303. compatible = "qcom,bam-v1.7.0";
  304. reg = <0x0 0x07984000 0x0 0x1a000>;
  305. interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
  306. clocks = <&gcc GCC_QPIC_AHB_CLK>;
  307. clock-names = "bam_clk";
  308. #dma-cells = <1>;
  309. qcom,ee = <0>;
  310. status = "disabled";
  311. };
  312. qpic_nand: nand@79b0000 {
  313. compatible = "qcom,ipq6018-nand";
  314. reg = <0x0 0x079b0000 0x0 0x10000>;
  315. #address-cells = <1>;
  316. #size-cells = <0>;
  317. clocks = <&gcc GCC_QPIC_CLK>,
  318. <&gcc GCC_QPIC_AHB_CLK>;
  319. clock-names = "core", "aon";
  320. dmas = <&qpic_bam 0>,
  321. <&qpic_bam 1>,
  322. <&qpic_bam 2>;
  323. dma-names = "tx", "rx", "cmd";
  324. pinctrl-0 = <&qpic_pins>;
  325. pinctrl-names = "default";
  326. status = "disabled";
  327. };
  328. intc: interrupt-controller@b000000 {
  329. compatible = "qcom,msm-qgic2";
  330. #address-cells = <2>;
  331. #size-cells = <2>;
  332. interrupt-controller;
  333. #interrupt-cells = <0x3>;
  334. reg = <0x0 0x0b000000 0x0 0x1000>, /*GICD*/
  335. <0x0 0x0b002000 0x0 0x1000>, /*GICC*/
  336. <0x0 0x0b001000 0x0 0x1000>, /*GICH*/
  337. <0x0 0x0b004000 0x0 0x1000>; /*GICV*/
  338. interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
  339. ranges = <0 0 0 0xb00a000 0 0xffd>;
  340. v2m@0 {
  341. compatible = "arm,gic-v2m-frame";
  342. msi-controller;
  343. reg = <0x0 0x0 0x0 0xffd>;
  344. };
  345. };
  346. pcie_phy: phy@84000 {
  347. compatible = "qcom,ipq6018-qmp-pcie-phy";
  348. reg = <0x0 0x84000 0x0 0x1bc>; /* Serdes PLL */
  349. status = "disabled";
  350. #address-cells = <2>;
  351. #size-cells = <2>;
  352. ranges;
  353. clocks = <&gcc GCC_PCIE0_AUX_CLK>,
  354. <&gcc GCC_PCIE0_AHB_CLK>;
  355. clock-names = "aux", "cfg_ahb";
  356. resets = <&gcc GCC_PCIE0_PHY_BCR>,
  357. <&gcc GCC_PCIE0PHY_PHY_BCR>;
  358. reset-names = "phy",
  359. "common";
  360. pcie_phy0: phy@84200 {
  361. reg = <0x0 0x84200 0x0 0x16c>, /* Serdes Tx */
  362. <0x0 0x84400 0x0 0x200>, /* Serdes Rx */
  363. <0x0 0x84800 0x0 0x4f4>; /* PCS: Lane0, COM, PCIE */
  364. #phy-cells = <0>;
  365. clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
  366. clock-names = "pipe0";
  367. clock-output-names = "gcc_pcie0_pipe_clk_src";
  368. #clock-cells = <0>;
  369. };
  370. };
  371. pcie0: pci@20000000 {
  372. compatible = "qcom,pcie-ipq6018";
  373. reg = <0x0 0x20000000 0x0 0xf1d>,
  374. <0x0 0x20000f20 0x0 0xa8>,
  375. <0x0 0x20001000 0x0 0x1000>,
  376. <0x0 0x80000 0x0 0x4000>,
  377. <0x0 0x20100000 0x0 0x1000>;
  378. reg-names = "dbi", "elbi", "atu", "parf", "config";
  379. device_type = "pci";
  380. linux,pci-domain = <0>;
  381. bus-range = <0x00 0xff>;
  382. num-lanes = <1>;
  383. max-link-speed = <3>;
  384. #address-cells = <3>;
  385. #size-cells = <2>;
  386. phys = <&pcie_phy0>;
  387. phy-names = "pciephy";
  388. ranges = <0x81000000 0x0 0x00000000 0x0 0x20200000 0x0 0x10000>,
  389. <0x82000000 0x0 0x20220000 0x0 0x20220000 0x0 0xfde0000>;
  390. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
  391. interrupt-names = "msi";
  392. #interrupt-cells = <1>;
  393. interrupt-map-mask = <0 0 0 0x7>;
  394. interrupt-map = <0 0 0 1 &intc 0 75
  395. IRQ_TYPE_LEVEL_HIGH>, /* int_a */
  396. <0 0 0 2 &intc 0 78
  397. IRQ_TYPE_LEVEL_HIGH>, /* int_b */
  398. <0 0 0 3 &intc 0 79
  399. IRQ_TYPE_LEVEL_HIGH>, /* int_c */
  400. <0 0 0 4 &intc 0 83
  401. IRQ_TYPE_LEVEL_HIGH>; /* int_d */
  402. clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
  403. <&gcc GCC_PCIE0_AXI_M_CLK>,
  404. <&gcc GCC_PCIE0_AXI_S_CLK>,
  405. <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>,
  406. <&gcc PCIE0_RCHNG_CLK>;
  407. clock-names = "iface",
  408. "axi_m",
  409. "axi_s",
  410. "axi_bridge",
  411. "rchng";
  412. resets = <&gcc GCC_PCIE0_PIPE_ARES>,
  413. <&gcc GCC_PCIE0_SLEEP_ARES>,
  414. <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
  415. <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
  416. <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
  417. <&gcc GCC_PCIE0_AHB_ARES>,
  418. <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
  419. <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
  420. reset-names = "pipe",
  421. "sleep",
  422. "sticky",
  423. "axi_m",
  424. "axi_s",
  425. "ahb",
  426. "axi_m_sticky",
  427. "axi_s_sticky";
  428. status = "disabled";
  429. };
  430. watchdog@b017000 {
  431. compatible = "qcom,kpss-wdt";
  432. interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
  433. reg = <0x0 0x0b017000 0x0 0x40>;
  434. clocks = <&sleep_clk>;
  435. timeout-sec = <10>;
  436. };
  437. apcs_glb: mailbox@b111000 {
  438. compatible = "qcom,ipq6018-apcs-apps-global";
  439. reg = <0x0 0x0b111000 0x0 0x1000>;
  440. #clock-cells = <1>;
  441. clocks = <&a53pll>, <&xo>;
  442. clock-names = "pll", "xo";
  443. #mbox-cells = <1>;
  444. };
  445. a53pll: clock@b116000 {
  446. compatible = "qcom,ipq6018-a53pll";
  447. reg = <0x0 0x0b116000 0x0 0x40>;
  448. #clock-cells = <0>;
  449. clocks = <&xo>;
  450. clock-names = "xo";
  451. };
  452. timer {
  453. compatible = "arm,armv8-timer";
  454. interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  455. <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  456. <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  457. <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  458. };
  459. timer@b120000 {
  460. #address-cells = <1>;
  461. #size-cells = <1>;
  462. ranges = <0 0 0 0x10000000>;
  463. compatible = "arm,armv7-timer-mem";
  464. reg = <0x0 0x0b120000 0x0 0x1000>;
  465. frame@b120000 {
  466. frame-number = <0>;
  467. interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
  468. <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
  469. reg = <0x0b121000 0x1000>,
  470. <0x0b122000 0x1000>;
  471. };
  472. frame@b123000 {
  473. frame-number = <1>;
  474. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
  475. reg = <0x0b123000 0x1000>;
  476. status = "disabled";
  477. };
  478. frame@b124000 {
  479. frame-number = <2>;
  480. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  481. reg = <0x0b124000 0x1000>;
  482. status = "disabled";
  483. };
  484. frame@b125000 {
  485. frame-number = <3>;
  486. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
  487. reg = <0x0b125000 0x1000>;
  488. status = "disabled";
  489. };
  490. frame@b126000 {
  491. frame-number = <4>;
  492. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
  493. reg = <0x0b126000 0x1000>;
  494. status = "disabled";
  495. };
  496. frame@b127000 {
  497. frame-number = <5>;
  498. interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
  499. reg = <0x0b127000 0x1000>;
  500. status = "disabled";
  501. };
  502. frame@b128000 {
  503. frame-number = <6>;
  504. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  505. reg = <0x0b128000 0x1000>;
  506. status = "disabled";
  507. };
  508. };
  509. q6v5_wcss: remoteproc@cd00000 {
  510. compatible = "qcom,ipq6018-wcss-pil";
  511. reg = <0x0 0x0cd00000 0x0 0x4040>,
  512. <0x0 0x004ab000 0x0 0x20>;
  513. reg-names = "qdsp6",
  514. "rmb";
  515. interrupts-extended = <&intc GIC_SPI 325 IRQ_TYPE_EDGE_RISING>,
  516. <&wcss_smp2p_in 0 0>,
  517. <&wcss_smp2p_in 1 0>,
  518. <&wcss_smp2p_in 2 0>,
  519. <&wcss_smp2p_in 3 0>;
  520. interrupt-names = "wdog",
  521. "fatal",
  522. "ready",
  523. "handover",
  524. "stop-ack";
  525. resets = <&gcc GCC_WCSSAON_RESET>,
  526. <&gcc GCC_WCSS_BCR>,
  527. <&gcc GCC_WCSS_Q6_BCR>;
  528. reset-names = "wcss_aon_reset",
  529. "wcss_reset",
  530. "wcss_q6_reset";
  531. clocks = <&gcc GCC_PRNG_AHB_CLK>;
  532. clock-names = "prng";
  533. qcom,halt-regs = <&tcsr 0x18000 0x1b000 0xe000>;
  534. qcom,smem-states = <&wcss_smp2p_out 0>,
  535. <&wcss_smp2p_out 1>;
  536. qcom,smem-state-names = "shutdown",
  537. "stop";
  538. memory-region = <&q6_region>;
  539. glink-edge {
  540. interrupts = <GIC_SPI 321 IRQ_TYPE_EDGE_RISING>;
  541. label = "rtr";
  542. qcom,remote-pid = <1>;
  543. mboxes = <&apcs_glb 8>;
  544. qrtr_requests {
  545. qcom,glink-channels = "IPCRTR";
  546. };
  547. };
  548. };
  549. mdio: mdio@90000 {
  550. #address-cells = <1>;
  551. #size-cells = <0>;
  552. compatible = "qcom,ipq6018-mdio", "qcom,ipq4019-mdio";
  553. reg = <0x0 0x90000 0x0 0x64>;
  554. clocks = <&gcc GCC_MDIO_AHB_CLK>;
  555. clock-names = "gcc_mdio_ahb_clk";
  556. status = "disabled";
  557. };
  558. qusb_phy_1: qusb@59000 {
  559. compatible = "qcom,ipq6018-qusb2-phy";
  560. reg = <0x0 0x059000 0x0 0x180>;
  561. #phy-cells = <0>;
  562. clocks = <&gcc GCC_USB1_PHY_CFG_AHB_CLK>,
  563. <&xo>;
  564. clock-names = "cfg_ahb", "ref";
  565. resets = <&gcc GCC_QUSB2_1_PHY_BCR>;
  566. status = "disabled";
  567. };
  568. usb2: usb@70f8800 {
  569. compatible = "qcom,ipq6018-dwc3", "qcom,dwc3";
  570. reg = <0x0 0x070F8800 0x0 0x400>;
  571. #address-cells = <2>;
  572. #size-cells = <2>;
  573. ranges;
  574. clocks = <&gcc GCC_USB1_MASTER_CLK>,
  575. <&gcc GCC_USB1_SLEEP_CLK>,
  576. <&gcc GCC_USB1_MOCK_UTMI_CLK>;
  577. clock-names = "core",
  578. "sleep",
  579. "mock_utmi";
  580. assigned-clocks = <&gcc GCC_USB1_MASTER_CLK>,
  581. <&gcc GCC_USB1_MOCK_UTMI_CLK>;
  582. assigned-clock-rates = <133330000>,
  583. <24000000>;
  584. resets = <&gcc GCC_USB1_BCR>;
  585. status = "disabled";
  586. dwc_1: usb@7000000 {
  587. compatible = "snps,dwc3";
  588. reg = <0x0 0x7000000 0x0 0xcd00>;
  589. interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
  590. phys = <&qusb_phy_1>;
  591. phy-names = "usb2-phy";
  592. tx-fifo-resize;
  593. snps,is-utmi-l1-suspend;
  594. snps,hird-threshold = /bits/ 8 <0x0>;
  595. snps,dis_u2_susphy_quirk;
  596. snps,dis_u3_susphy_quirk;
  597. dr_mode = "host";
  598. };
  599. };
  600. ssphy_0: ssphy@78000 {
  601. compatible = "qcom,ipq6018-qmp-usb3-phy";
  602. reg = <0x0 0x78000 0x0 0x1C4>;
  603. #address-cells = <2>;
  604. #size-cells = <2>;
  605. ranges;
  606. clocks = <&gcc GCC_USB0_AUX_CLK>,
  607. <&gcc GCC_USB0_PHY_CFG_AHB_CLK>, <&xo>;
  608. clock-names = "aux", "cfg_ahb", "ref";
  609. resets = <&gcc GCC_USB0_PHY_BCR>,
  610. <&gcc GCC_USB3PHY_0_PHY_BCR>;
  611. reset-names = "phy","common";
  612. status = "disabled";
  613. usb0_ssphy: phy@78200 {
  614. reg = <0x0 0x00078200 0x0 0x130>, /* Tx */
  615. <0x0 0x00078400 0x0 0x200>, /* Rx */
  616. <0x0 0x00078800 0x0 0x1F8>, /* PCS */
  617. <0x0 0x00078600 0x0 0x044>; /* PCS misc */
  618. #phy-cells = <0>;
  619. #clock-cells = <0>;
  620. clocks = <&gcc GCC_USB0_PIPE_CLK>;
  621. clock-names = "pipe0";
  622. clock-output-names = "gcc_usb0_pipe_clk_src";
  623. };
  624. };
  625. qusb_phy_0: qusb@79000 {
  626. compatible = "qcom,ipq6018-qusb2-phy";
  627. reg = <0x0 0x079000 0x0 0x180>;
  628. #phy-cells = <0>;
  629. clocks = <&gcc GCC_USB0_PHY_CFG_AHB_CLK>,
  630. <&xo>;
  631. clock-names = "cfg_ahb", "ref";
  632. resets = <&gcc GCC_QUSB2_0_PHY_BCR>;
  633. status = "disabled";
  634. };
  635. usb3: usb@8af8800 {
  636. compatible = "qcom,ipq6018-dwc3", "qcom,dwc3";
  637. reg = <0x0 0x8AF8800 0x0 0x400>;
  638. #address-cells = <2>;
  639. #size-cells = <2>;
  640. ranges;
  641. clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
  642. <&gcc GCC_USB0_MASTER_CLK>,
  643. <&gcc GCC_USB0_SLEEP_CLK>,
  644. <&gcc GCC_USB0_MOCK_UTMI_CLK>;
  645. clock-names = "cfg_noc",
  646. "core",
  647. "sleep",
  648. "mock_utmi";
  649. assigned-clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
  650. <&gcc GCC_USB0_MASTER_CLK>,
  651. <&gcc GCC_USB0_MOCK_UTMI_CLK>;
  652. assigned-clock-rates = <133330000>,
  653. <133330000>,
  654. <20000000>;
  655. resets = <&gcc GCC_USB0_BCR>;
  656. status = "disabled";
  657. dwc_0: usb@8a00000 {
  658. compatible = "snps,dwc3";
  659. reg = <0x0 0x8A00000 0x0 0xcd00>;
  660. interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
  661. phys = <&qusb_phy_0>, <&usb0_ssphy>;
  662. phy-names = "usb2-phy", "usb3-phy";
  663. clocks = <&xo>;
  664. clock-names = "ref";
  665. tx-fifo-resize;
  666. snps,is-utmi-l1-suspend;
  667. snps,hird-threshold = /bits/ 8 <0x0>;
  668. snps,dis_u2_susphy_quirk;
  669. snps,dis_u3_susphy_quirk;
  670. dr_mode = "host";
  671. };
  672. };
  673. };
  674. wcss: wcss-smp2p {
  675. compatible = "qcom,smp2p";
  676. qcom,smem = <435>, <428>;
  677. interrupt-parent = <&intc>;
  678. interrupts = <GIC_SPI 322 IRQ_TYPE_EDGE_RISING>;
  679. mboxes = <&apcs_glb 9>;
  680. qcom,local-pid = <0>;
  681. qcom,remote-pid = <1>;
  682. wcss_smp2p_out: master-kernel {
  683. qcom,entry-name = "master-kernel";
  684. #qcom,smem-state-cells = <1>;
  685. };
  686. wcss_smp2p_in: slave-kernel {
  687. qcom,entry-name = "slave-kernel";
  688. interrupt-controller;
  689. #interrupt-cells = <2>;
  690. };
  691. };
  692. rpm-glink {
  693. compatible = "qcom,glink-rpm";
  694. interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
  695. qcom,rpm-msg-ram = <&rpm_msg_ram>;
  696. mboxes = <&apcs_glb 0>;
  697. rpm_requests: glink-channel {
  698. compatible = "qcom,rpm-ipq6018";
  699. qcom,glink-channels = "rpm_requests";
  700. regulators {
  701. compatible = "qcom,rpm-mp5496-regulators";
  702. ipq6018_s2: s2 {
  703. regulator-min-microvolt = <725000>;
  704. regulator-max-microvolt = <1062500>;
  705. regulator-always-on;
  706. };
  707. };
  708. };
  709. };
  710. };