ipq8074.dtsi 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Copyright (c) 2017, The Linux Foundation. All rights reserved.
  4. */
  5. #include <dt-bindings/interrupt-controller/arm-gic.h>
  6. #include <dt-bindings/clock/qcom,gcc-ipq8074.h>
  7. / {
  8. #address-cells = <2>;
  9. #size-cells = <2>;
  10. model = "Qualcomm Technologies, Inc. IPQ8074";
  11. compatible = "qcom,ipq8074";
  12. interrupt-parent = <&intc>;
  13. clocks {
  14. sleep_clk: sleep_clk {
  15. compatible = "fixed-clock";
  16. clock-frequency = <32768>;
  17. #clock-cells = <0>;
  18. };
  19. xo: xo {
  20. compatible = "fixed-clock";
  21. clock-frequency = <19200000>;
  22. #clock-cells = <0>;
  23. };
  24. };
  25. cpus {
  26. #address-cells = <0x1>;
  27. #size-cells = <0x0>;
  28. CPU0: cpu@0 {
  29. device_type = "cpu";
  30. compatible = "arm,cortex-a53";
  31. reg = <0x0>;
  32. next-level-cache = <&L2_0>;
  33. enable-method = "psci";
  34. };
  35. CPU1: cpu@1 {
  36. device_type = "cpu";
  37. compatible = "arm,cortex-a53";
  38. enable-method = "psci";
  39. reg = <0x1>;
  40. next-level-cache = <&L2_0>;
  41. };
  42. CPU2: cpu@2 {
  43. device_type = "cpu";
  44. compatible = "arm,cortex-a53";
  45. enable-method = "psci";
  46. reg = <0x2>;
  47. next-level-cache = <&L2_0>;
  48. };
  49. CPU3: cpu@3 {
  50. device_type = "cpu";
  51. compatible = "arm,cortex-a53";
  52. enable-method = "psci";
  53. reg = <0x3>;
  54. next-level-cache = <&L2_0>;
  55. };
  56. L2_0: l2-cache {
  57. compatible = "cache";
  58. cache-level = <0x2>;
  59. };
  60. };
  61. pmu {
  62. compatible = "arm,cortex-a53-pmu";
  63. interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  64. };
  65. psci {
  66. compatible = "arm,psci-1.0";
  67. method = "smc";
  68. };
  69. reserved-memory {
  70. #address-cells = <2>;
  71. #size-cells = <2>;
  72. ranges;
  73. smem@4ab00000 {
  74. compatible = "qcom,smem";
  75. reg = <0x0 0x4ab00000 0x0 0x00100000>;
  76. no-map;
  77. hwlocks = <&tcsr_mutex 3>;
  78. };
  79. memory@4ac00000 {
  80. no-map;
  81. reg = <0x0 0x4ac00000 0x0 0x00400000>;
  82. };
  83. };
  84. firmware {
  85. scm {
  86. compatible = "qcom,scm-ipq8074", "qcom,scm";
  87. };
  88. };
  89. soc: soc {
  90. #address-cells = <0x1>;
  91. #size-cells = <0x1>;
  92. ranges = <0 0 0 0xffffffff>;
  93. compatible = "simple-bus";
  94. ssphy_1: phy@58000 {
  95. compatible = "qcom,ipq8074-qmp-usb3-phy";
  96. reg = <0x00058000 0x1c4>;
  97. #address-cells = <1>;
  98. #size-cells = <1>;
  99. ranges;
  100. clocks = <&gcc GCC_USB1_AUX_CLK>,
  101. <&gcc GCC_USB1_PHY_CFG_AHB_CLK>,
  102. <&xo>;
  103. clock-names = "aux", "cfg_ahb", "ref";
  104. resets = <&gcc GCC_USB1_PHY_BCR>,
  105. <&gcc GCC_USB3PHY_1_PHY_BCR>;
  106. reset-names = "phy","common";
  107. status = "disabled";
  108. usb1_ssphy: phy@58200 {
  109. reg = <0x00058200 0x130>, /* Tx */
  110. <0x00058400 0x200>, /* Rx */
  111. <0x00058800 0x1f8>, /* PCS */
  112. <0x00058600 0x044>; /* PCS misc*/
  113. #phy-cells = <0>;
  114. #clock-cells = <0>;
  115. clocks = <&gcc GCC_USB1_PIPE_CLK>;
  116. clock-names = "pipe0";
  117. clock-output-names = "usb3phy_1_cc_pipe_clk";
  118. };
  119. };
  120. qusb_phy_1: phy@59000 {
  121. compatible = "qcom,ipq8074-qusb2-phy";
  122. reg = <0x00059000 0x180>;
  123. #phy-cells = <0>;
  124. clocks = <&gcc GCC_USB1_PHY_CFG_AHB_CLK>,
  125. <&xo>;
  126. clock-names = "cfg_ahb", "ref";
  127. resets = <&gcc GCC_QUSB2_1_PHY_BCR>;
  128. status = "disabled";
  129. };
  130. ssphy_0: phy@78000 {
  131. compatible = "qcom,ipq8074-qmp-usb3-phy";
  132. reg = <0x00078000 0x1c4>;
  133. #address-cells = <1>;
  134. #size-cells = <1>;
  135. ranges;
  136. clocks = <&gcc GCC_USB0_AUX_CLK>,
  137. <&gcc GCC_USB0_PHY_CFG_AHB_CLK>,
  138. <&xo>;
  139. clock-names = "aux", "cfg_ahb", "ref";
  140. resets = <&gcc GCC_USB0_PHY_BCR>,
  141. <&gcc GCC_USB3PHY_0_PHY_BCR>;
  142. reset-names = "phy","common";
  143. status = "disabled";
  144. usb0_ssphy: phy@78200 {
  145. reg = <0x00078200 0x130>, /* Tx */
  146. <0x00078400 0x200>, /* Rx */
  147. <0x00078800 0x1f8>, /* PCS */
  148. <0x00078600 0x044>; /* PCS misc*/
  149. #phy-cells = <0>;
  150. #clock-cells = <0>;
  151. clocks = <&gcc GCC_USB0_PIPE_CLK>;
  152. clock-names = "pipe0";
  153. clock-output-names = "usb3phy_0_cc_pipe_clk";
  154. };
  155. };
  156. qusb_phy_0: phy@79000 {
  157. compatible = "qcom,ipq8074-qusb2-phy";
  158. reg = <0x00079000 0x180>;
  159. #phy-cells = <0>;
  160. clocks = <&gcc GCC_USB0_PHY_CFG_AHB_CLK>,
  161. <&xo>;
  162. clock-names = "cfg_ahb", "ref";
  163. resets = <&gcc GCC_QUSB2_0_PHY_BCR>;
  164. status = "disabled";
  165. };
  166. pcie_qmp0: phy@84000 {
  167. compatible = "qcom,ipq8074-qmp-gen3-pcie-phy";
  168. reg = <0x00084000 0x1bc>;
  169. #address-cells = <1>;
  170. #size-cells = <1>;
  171. ranges;
  172. clocks = <&gcc GCC_PCIE0_AUX_CLK>,
  173. <&gcc GCC_PCIE0_AHB_CLK>;
  174. clock-names = "aux", "cfg_ahb";
  175. resets = <&gcc GCC_PCIE0_PHY_BCR>,
  176. <&gcc GCC_PCIE0PHY_PHY_BCR>;
  177. reset-names = "phy",
  178. "common";
  179. status = "disabled";
  180. pcie_phy0: phy@84200 {
  181. reg = <0x84200 0x16c>,
  182. <0x84400 0x200>,
  183. <0x84800 0x1f0>,
  184. <0x84c00 0xf4>;
  185. #phy-cells = <0>;
  186. #clock-cells = <0>;
  187. clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
  188. clock-names = "pipe0";
  189. clock-output-names = "pcie20_phy0_pipe_clk";
  190. };
  191. };
  192. pcie_qmp1: phy@8e000 {
  193. compatible = "qcom,ipq8074-qmp-pcie-phy";
  194. reg = <0x0008e000 0x1c4>;
  195. #address-cells = <1>;
  196. #size-cells = <1>;
  197. ranges;
  198. clocks = <&gcc GCC_PCIE1_AUX_CLK>,
  199. <&gcc GCC_PCIE1_AHB_CLK>;
  200. clock-names = "aux", "cfg_ahb";
  201. resets = <&gcc GCC_PCIE1_PHY_BCR>,
  202. <&gcc GCC_PCIE1PHY_PHY_BCR>;
  203. reset-names = "phy",
  204. "common";
  205. status = "disabled";
  206. pcie_phy1: phy@8e200 {
  207. reg = <0x8e200 0x130>,
  208. <0x8e400 0x200>,
  209. <0x8e800 0x1f8>;
  210. #phy-cells = <0>;
  211. #clock-cells = <0>;
  212. clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
  213. clock-names = "pipe0";
  214. clock-output-names = "pcie20_phy1_pipe_clk";
  215. };
  216. };
  217. mdio: mdio@90000 {
  218. compatible = "qcom,ipq4019-mdio";
  219. reg = <0x00090000 0x64>;
  220. #address-cells = <1>;
  221. #size-cells = <0>;
  222. clocks = <&gcc GCC_MDIO_AHB_CLK>;
  223. clock-names = "gcc_mdio_ahb_clk";
  224. status = "disabled";
  225. };
  226. prng: rng@e3000 {
  227. compatible = "qcom,prng-ee";
  228. reg = <0x000e3000 0x1000>;
  229. clocks = <&gcc GCC_PRNG_AHB_CLK>;
  230. clock-names = "core";
  231. status = "disabled";
  232. };
  233. cryptobam: dma-controller@704000 {
  234. compatible = "qcom,bam-v1.7.0";
  235. reg = <0x00704000 0x20000>;
  236. interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
  237. clocks = <&gcc GCC_CRYPTO_AHB_CLK>;
  238. clock-names = "bam_clk";
  239. #dma-cells = <1>;
  240. qcom,ee = <1>;
  241. qcom,controlled-remotely;
  242. status = "disabled";
  243. };
  244. crypto: crypto@73a000 {
  245. compatible = "qcom,crypto-v5.1";
  246. reg = <0x0073a000 0x6000>;
  247. clocks = <&gcc GCC_CRYPTO_AHB_CLK>,
  248. <&gcc GCC_CRYPTO_AXI_CLK>,
  249. <&gcc GCC_CRYPTO_CLK>;
  250. clock-names = "iface", "bus", "core";
  251. dmas = <&cryptobam 2>, <&cryptobam 3>;
  252. dma-names = "rx", "tx";
  253. status = "disabled";
  254. };
  255. tlmm: pinctrl@1000000 {
  256. compatible = "qcom,ipq8074-pinctrl";
  257. reg = <0x01000000 0x300000>;
  258. interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
  259. gpio-controller;
  260. gpio-ranges = <&tlmm 0 0 70>;
  261. #gpio-cells = <0x2>;
  262. interrupt-controller;
  263. #interrupt-cells = <0x2>;
  264. serial_4_pins: serial4-pinmux {
  265. pins = "gpio23", "gpio24";
  266. function = "blsp4_uart1";
  267. drive-strength = <8>;
  268. bias-disable;
  269. };
  270. i2c_0_pins: i2c-0-pinmux {
  271. pins = "gpio42", "gpio43";
  272. function = "blsp1_i2c";
  273. drive-strength = <8>;
  274. bias-disable;
  275. };
  276. spi_0_pins: spi-0-pins {
  277. pins = "gpio38", "gpio39", "gpio40", "gpio41";
  278. function = "blsp0_spi";
  279. drive-strength = <8>;
  280. bias-disable;
  281. };
  282. hsuart_pins: hsuart-pins {
  283. pins = "gpio46", "gpio47", "gpio48", "gpio49";
  284. function = "blsp2_uart";
  285. drive-strength = <8>;
  286. bias-disable;
  287. };
  288. qpic_pins: qpic-pins {
  289. pins = "gpio1", "gpio3", "gpio4",
  290. "gpio5", "gpio6", "gpio7",
  291. "gpio8", "gpio10", "gpio11",
  292. "gpio12", "gpio13", "gpio14",
  293. "gpio15", "gpio16", "gpio17";
  294. function = "qpic";
  295. drive-strength = <8>;
  296. bias-disable;
  297. };
  298. };
  299. gcc: gcc@1800000 {
  300. compatible = "qcom,gcc-ipq8074";
  301. reg = <0x01800000 0x80000>;
  302. #clock-cells = <0x1>;
  303. #power-domain-cells = <1>;
  304. #reset-cells = <0x1>;
  305. };
  306. tcsr_mutex: hwlock@1905000 {
  307. compatible = "qcom,tcsr-mutex";
  308. reg = <0x01905000 0x20000>;
  309. #hwlock-cells = <1>;
  310. };
  311. spmi_bus: spmi@200f000 {
  312. compatible = "qcom,spmi-pmic-arb";
  313. reg = <0x0200f000 0x001000>,
  314. <0x02400000 0x800000>,
  315. <0x02c00000 0x800000>,
  316. <0x03800000 0x200000>,
  317. <0x0200a000 0x000700>;
  318. reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
  319. interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
  320. interrupt-names = "periph_irq";
  321. qcom,ee = <0>;
  322. qcom,channel = <0>;
  323. #address-cells = <2>;
  324. #size-cells = <0>;
  325. interrupt-controller;
  326. #interrupt-cells = <4>;
  327. cell-index = <0>;
  328. };
  329. sdhc_1: mmc@7824900 {
  330. compatible = "qcom,sdhci-msm-v4";
  331. reg = <0x7824900 0x500>, <0x7824000 0x800>;
  332. reg-names = "hc", "core";
  333. interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
  334. <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
  335. interrupt-names = "hc_irq", "pwr_irq";
  336. clocks = <&gcc GCC_SDCC1_AHB_CLK>,
  337. <&gcc GCC_SDCC1_APPS_CLK>,
  338. <&xo>;
  339. clock-names = "iface", "core", "xo";
  340. resets = <&gcc GCC_SDCC1_BCR>;
  341. max-frequency = <384000000>;
  342. mmc-ddr-1_8v;
  343. mmc-hs200-1_8v;
  344. mmc-hs400-1_8v;
  345. bus-width = <8>;
  346. status = "disabled";
  347. };
  348. blsp_dma: dma-controller@7884000 {
  349. compatible = "qcom,bam-v1.7.0";
  350. reg = <0x07884000 0x2b000>;
  351. interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
  352. clocks = <&gcc GCC_BLSP1_AHB_CLK>;
  353. clock-names = "bam_clk";
  354. #dma-cells = <1>;
  355. qcom,ee = <0>;
  356. };
  357. blsp1_uart1: serial@78af000 {
  358. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  359. reg = <0x078af000 0x200>;
  360. interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
  361. clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
  362. <&gcc GCC_BLSP1_AHB_CLK>;
  363. clock-names = "core", "iface";
  364. status = "disabled";
  365. };
  366. blsp1_uart3: serial@78b1000 {
  367. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  368. reg = <0x078b1000 0x200>;
  369. interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
  370. clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>,
  371. <&gcc GCC_BLSP1_AHB_CLK>;
  372. clock-names = "core", "iface";
  373. dmas = <&blsp_dma 4>,
  374. <&blsp_dma 5>;
  375. dma-names = "tx", "rx";
  376. pinctrl-0 = <&hsuart_pins>;
  377. pinctrl-names = "default";
  378. status = "disabled";
  379. };
  380. blsp1_uart5: serial@78b3000 {
  381. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  382. reg = <0x078b3000 0x200>;
  383. interrupts = <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>;
  384. clocks = <&gcc GCC_BLSP1_UART5_APPS_CLK>,
  385. <&gcc GCC_BLSP1_AHB_CLK>;
  386. clock-names = "core", "iface";
  387. pinctrl-0 = <&serial_4_pins>;
  388. pinctrl-names = "default";
  389. status = "disabled";
  390. };
  391. blsp1_spi1: spi@78b5000 {
  392. compatible = "qcom,spi-qup-v2.2.1";
  393. #address-cells = <1>;
  394. #size-cells = <0>;
  395. reg = <0x078b5000 0x600>;
  396. interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
  397. spi-max-frequency = <50000000>;
  398. clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
  399. <&gcc GCC_BLSP1_AHB_CLK>;
  400. clock-names = "core", "iface";
  401. dmas = <&blsp_dma 12>, <&blsp_dma 13>;
  402. dma-names = "tx", "rx";
  403. pinctrl-0 = <&spi_0_pins>;
  404. pinctrl-names = "default";
  405. status = "disabled";
  406. };
  407. blsp1_i2c2: i2c@78b6000 {
  408. compatible = "qcom,i2c-qup-v2.2.1";
  409. #address-cells = <1>;
  410. #size-cells = <0>;
  411. reg = <0x078b6000 0x600>;
  412. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  413. clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
  414. <&gcc GCC_BLSP1_AHB_CLK>;
  415. clock-names = "core", "iface";
  416. clock-frequency = <400000>;
  417. dmas = <&blsp_dma 14>, <&blsp_dma 15>;
  418. dma-names = "tx", "rx";
  419. pinctrl-0 = <&i2c_0_pins>;
  420. pinctrl-names = "default";
  421. status = "disabled";
  422. };
  423. blsp1_i2c3: i2c@78b7000 {
  424. compatible = "qcom,i2c-qup-v2.2.1";
  425. #address-cells = <1>;
  426. #size-cells = <0>;
  427. reg = <0x078b7000 0x600>;
  428. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  429. clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
  430. <&gcc GCC_BLSP1_AHB_CLK>;
  431. clock-names = "core", "iface";
  432. clock-frequency = <100000>;
  433. dmas = <&blsp_dma 16>, <&blsp_dma 17>;
  434. dma-names = "tx", "rx";
  435. status = "disabled";
  436. };
  437. blsp1_i2c5: i2c@78b9000 {
  438. compatible = "qcom,i2c-qup-v2.2.1";
  439. #address-cells = <1>;
  440. #size-cells = <0>;
  441. reg = <0x78b9000 0x600>;
  442. interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
  443. clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
  444. <&gcc GCC_BLSP1_AHB_CLK>;
  445. clock-names = "core", "iface";
  446. clock-frequency = <400000>;
  447. dmas = <&blsp_dma 20>, <&blsp_dma 21>;
  448. dma-names = "tx", "rx";
  449. status = "disabled";
  450. };
  451. blsp1_i2c6: i2c@78ba000 {
  452. compatible = "qcom,i2c-qup-v2.2.1";
  453. #address-cells = <1>;
  454. #size-cells = <0>;
  455. reg = <0x078ba000 0x600>;
  456. interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
  457. clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
  458. <&gcc GCC_BLSP1_AHB_CLK>;
  459. clock-names = "core", "iface";
  460. clock-frequency = <100000>;
  461. dmas = <&blsp_dma 22>, <&blsp_dma 23>;
  462. dma-names = "tx", "rx";
  463. status = "disabled";
  464. };
  465. qpic_bam: dma-controller@7984000 {
  466. compatible = "qcom,bam-v1.7.0";
  467. reg = <0x07984000 0x1a000>;
  468. interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
  469. clocks = <&gcc GCC_QPIC_AHB_CLK>;
  470. clock-names = "bam_clk";
  471. #dma-cells = <1>;
  472. qcom,ee = <0>;
  473. status = "disabled";
  474. };
  475. qpic_nand: nand-controller@79b0000 {
  476. compatible = "qcom,ipq8074-nand";
  477. reg = <0x079b0000 0x10000>;
  478. #address-cells = <1>;
  479. #size-cells = <0>;
  480. clocks = <&gcc GCC_QPIC_CLK>,
  481. <&gcc GCC_QPIC_AHB_CLK>;
  482. clock-names = "core", "aon";
  483. dmas = <&qpic_bam 0>,
  484. <&qpic_bam 1>,
  485. <&qpic_bam 2>;
  486. dma-names = "tx", "rx", "cmd";
  487. pinctrl-0 = <&qpic_pins>;
  488. pinctrl-names = "default";
  489. status = "disabled";
  490. };
  491. usb_0: usb@8af8800 {
  492. compatible = "qcom,ipq8074-dwc3", "qcom,dwc3";
  493. reg = <0x08af8800 0x400>;
  494. #address-cells = <1>;
  495. #size-cells = <1>;
  496. ranges;
  497. clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
  498. <&gcc GCC_USB0_MASTER_CLK>,
  499. <&gcc GCC_USB0_SLEEP_CLK>,
  500. <&gcc GCC_USB0_MOCK_UTMI_CLK>;
  501. clock-names = "cfg_noc",
  502. "core",
  503. "sleep",
  504. "mock_utmi";
  505. assigned-clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
  506. <&gcc GCC_USB0_MASTER_CLK>,
  507. <&gcc GCC_USB0_MOCK_UTMI_CLK>;
  508. assigned-clock-rates = <133330000>,
  509. <133330000>,
  510. <19200000>;
  511. power-domains = <&gcc USB0_GDSC>;
  512. resets = <&gcc GCC_USB0_BCR>;
  513. status = "disabled";
  514. dwc_0: usb@8a00000 {
  515. compatible = "snps,dwc3";
  516. reg = <0x8a00000 0xcd00>;
  517. interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
  518. phys = <&qusb_phy_0>, <&usb0_ssphy>;
  519. phy-names = "usb2-phy", "usb3-phy";
  520. snps,is-utmi-l1-suspend;
  521. snps,hird-threshold = /bits/ 8 <0x0>;
  522. snps,dis_u2_susphy_quirk;
  523. snps,dis_u3_susphy_quirk;
  524. dr_mode = "host";
  525. };
  526. };
  527. usb_1: usb@8cf8800 {
  528. compatible = "qcom,ipq8074-dwc3", "qcom,dwc3";
  529. reg = <0x08cf8800 0x400>;
  530. #address-cells = <1>;
  531. #size-cells = <1>;
  532. ranges;
  533. clocks = <&gcc GCC_SYS_NOC_USB1_AXI_CLK>,
  534. <&gcc GCC_USB1_MASTER_CLK>,
  535. <&gcc GCC_USB1_SLEEP_CLK>,
  536. <&gcc GCC_USB1_MOCK_UTMI_CLK>;
  537. clock-names = "cfg_noc",
  538. "core",
  539. "sleep",
  540. "mock_utmi";
  541. assigned-clocks = <&gcc GCC_SYS_NOC_USB1_AXI_CLK>,
  542. <&gcc GCC_USB1_MASTER_CLK>,
  543. <&gcc GCC_USB1_MOCK_UTMI_CLK>;
  544. assigned-clock-rates = <133330000>,
  545. <133330000>,
  546. <19200000>;
  547. power-domains = <&gcc USB1_GDSC>;
  548. resets = <&gcc GCC_USB1_BCR>;
  549. status = "disabled";
  550. dwc_1: usb@8c00000 {
  551. compatible = "snps,dwc3";
  552. reg = <0x8c00000 0xcd00>;
  553. interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
  554. phys = <&qusb_phy_1>, <&usb1_ssphy>;
  555. phy-names = "usb2-phy", "usb3-phy";
  556. snps,is-utmi-l1-suspend;
  557. snps,hird-threshold = /bits/ 8 <0x0>;
  558. snps,dis_u2_susphy_quirk;
  559. snps,dis_u3_susphy_quirk;
  560. dr_mode = "host";
  561. };
  562. };
  563. intc: interrupt-controller@b000000 {
  564. compatible = "qcom,msm-qgic2";
  565. #address-cells = <1>;
  566. #size-cells = <1>;
  567. interrupt-controller;
  568. #interrupt-cells = <0x3>;
  569. reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
  570. ranges = <0 0xb00a000 0xffd>;
  571. v2m@0 {
  572. compatible = "arm,gic-v2m-frame";
  573. msi-controller;
  574. reg = <0x0 0xffd>;
  575. };
  576. };
  577. watchdog: watchdog@b017000 {
  578. compatible = "qcom,kpss-wdt";
  579. reg = <0xb017000 0x1000>;
  580. interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
  581. clocks = <&sleep_clk>;
  582. timeout-sec = <30>;
  583. };
  584. apcs_glb: mailbox@b111000 {
  585. compatible = "qcom,ipq8074-apcs-apps-global";
  586. reg = <0x0b111000 0x1000>;
  587. #clock-cells = <1>;
  588. #mbox-cells = <1>;
  589. };
  590. timer@b120000 {
  591. #address-cells = <1>;
  592. #size-cells = <1>;
  593. ranges;
  594. compatible = "arm,armv7-timer-mem";
  595. reg = <0x0b120000 0x1000>;
  596. frame@b120000 {
  597. frame-number = <0>;
  598. interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
  599. <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
  600. reg = <0x0b121000 0x1000>,
  601. <0x0b122000 0x1000>;
  602. };
  603. frame@b123000 {
  604. frame-number = <1>;
  605. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
  606. reg = <0x0b123000 0x1000>;
  607. status = "disabled";
  608. };
  609. frame@b124000 {
  610. frame-number = <2>;
  611. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  612. reg = <0x0b124000 0x1000>;
  613. status = "disabled";
  614. };
  615. frame@b125000 {
  616. frame-number = <3>;
  617. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
  618. reg = <0x0b125000 0x1000>;
  619. status = "disabled";
  620. };
  621. frame@b126000 {
  622. frame-number = <4>;
  623. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
  624. reg = <0x0b126000 0x1000>;
  625. status = "disabled";
  626. };
  627. frame@b127000 {
  628. frame-number = <5>;
  629. interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
  630. reg = <0x0b127000 0x1000>;
  631. status = "disabled";
  632. };
  633. frame@b128000 {
  634. frame-number = <6>;
  635. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  636. reg = <0x0b128000 0x1000>;
  637. status = "disabled";
  638. };
  639. };
  640. pcie1: pci@10000000 {
  641. compatible = "qcom,pcie-ipq8074";
  642. reg = <0x10000000 0xf1d>,
  643. <0x10000f20 0xa8>,
  644. <0x00088000 0x2000>,
  645. <0x10100000 0x1000>;
  646. reg-names = "dbi", "elbi", "parf", "config";
  647. device_type = "pci";
  648. linux,pci-domain = <1>;
  649. bus-range = <0x00 0xff>;
  650. num-lanes = <1>;
  651. #address-cells = <3>;
  652. #size-cells = <2>;
  653. phys = <&pcie_phy1>;
  654. phy-names = "pciephy";
  655. ranges = <0x81000000 0x0 0x00000000 0x10200000 0x0 0x10000>, /* I/O */
  656. <0x82000000 0x0 0x10220000 0x10220000 0x0 0xfde0000>; /* MEM */
  657. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  658. interrupt-names = "msi";
  659. #interrupt-cells = <1>;
  660. interrupt-map-mask = <0 0 0 0x7>;
  661. interrupt-map = <0 0 0 1 &intc 0 142
  662. IRQ_TYPE_LEVEL_HIGH>, /* int_a */
  663. <0 0 0 2 &intc 0 143
  664. IRQ_TYPE_LEVEL_HIGH>, /* int_b */
  665. <0 0 0 3 &intc 0 144
  666. IRQ_TYPE_LEVEL_HIGH>, /* int_c */
  667. <0 0 0 4 &intc 0 145
  668. IRQ_TYPE_LEVEL_HIGH>; /* int_d */
  669. clocks = <&gcc GCC_SYS_NOC_PCIE1_AXI_CLK>,
  670. <&gcc GCC_PCIE1_AXI_M_CLK>,
  671. <&gcc GCC_PCIE1_AXI_S_CLK>,
  672. <&gcc GCC_PCIE1_AHB_CLK>,
  673. <&gcc GCC_PCIE1_AUX_CLK>;
  674. clock-names = "iface",
  675. "axi_m",
  676. "axi_s",
  677. "ahb",
  678. "aux";
  679. resets = <&gcc GCC_PCIE1_PIPE_ARES>,
  680. <&gcc GCC_PCIE1_SLEEP_ARES>,
  681. <&gcc GCC_PCIE1_CORE_STICKY_ARES>,
  682. <&gcc GCC_PCIE1_AXI_MASTER_ARES>,
  683. <&gcc GCC_PCIE1_AXI_SLAVE_ARES>,
  684. <&gcc GCC_PCIE1_AHB_ARES>,
  685. <&gcc GCC_PCIE1_AXI_MASTER_STICKY_ARES>;
  686. reset-names = "pipe",
  687. "sleep",
  688. "sticky",
  689. "axi_m",
  690. "axi_s",
  691. "ahb",
  692. "axi_m_sticky";
  693. status = "disabled";
  694. };
  695. pcie0: pci@20000000 {
  696. compatible = "qcom,pcie-ipq8074-gen3";
  697. reg = <0x20000000 0xf1d>,
  698. <0x20000f20 0xa8>,
  699. <0x20001000 0x1000>,
  700. <0x00080000 0x4000>,
  701. <0x20100000 0x1000>;
  702. reg-names = "dbi", "elbi", "atu", "parf", "config";
  703. device_type = "pci";
  704. linux,pci-domain = <0>;
  705. bus-range = <0x00 0xff>;
  706. num-lanes = <1>;
  707. max-link-speed = <3>;
  708. #address-cells = <3>;
  709. #size-cells = <2>;
  710. phys = <&pcie_phy0>;
  711. phy-names = "pciephy";
  712. ranges = <0x81000000 0x0 0x00000000 0x20200000 0x0 0x10000>, /* I/O */
  713. <0x82000000 0x0 0x20220000 0x20220000 0x0 0xfde0000>; /* MEM */
  714. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
  715. interrupt-names = "msi";
  716. #interrupt-cells = <1>;
  717. interrupt-map-mask = <0 0 0 0x7>;
  718. interrupt-map = <0 0 0 1 &intc 0 75
  719. IRQ_TYPE_LEVEL_HIGH>, /* int_a */
  720. <0 0 0 2 &intc 0 78
  721. IRQ_TYPE_LEVEL_HIGH>, /* int_b */
  722. <0 0 0 3 &intc 0 79
  723. IRQ_TYPE_LEVEL_HIGH>, /* int_c */
  724. <0 0 0 4 &intc 0 83
  725. IRQ_TYPE_LEVEL_HIGH>; /* int_d */
  726. clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
  727. <&gcc GCC_PCIE0_AXI_M_CLK>,
  728. <&gcc GCC_PCIE0_AXI_S_CLK>,
  729. <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>,
  730. <&gcc GCC_PCIE0_RCHNG_CLK>;
  731. clock-names = "iface",
  732. "axi_m",
  733. "axi_s",
  734. "axi_bridge",
  735. "rchng";
  736. resets = <&gcc GCC_PCIE0_PIPE_ARES>,
  737. <&gcc GCC_PCIE0_SLEEP_ARES>,
  738. <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
  739. <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
  740. <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
  741. <&gcc GCC_PCIE0_AHB_ARES>,
  742. <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
  743. <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
  744. reset-names = "pipe",
  745. "sleep",
  746. "sticky",
  747. "axi_m",
  748. "axi_s",
  749. "ahb",
  750. "axi_m_sticky",
  751. "axi_s_sticky";
  752. status = "disabled";
  753. };
  754. };
  755. timer {
  756. compatible = "arm,armv8-timer";
  757. interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  758. <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  759. <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  760. <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  761. };
  762. };