msm8994.dtsi 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
  3. */
  4. #include <dt-bindings/interrupt-controller/arm-gic.h>
  5. #include <dt-bindings/clock/qcom,gcc-msm8994.h>
  6. #include <dt-bindings/clock/qcom,mmcc-msm8994.h>
  7. #include <dt-bindings/clock/qcom,rpmcc.h>
  8. #include <dt-bindings/gpio/gpio.h>
  9. #include <dt-bindings/power/qcom-rpmpd.h>
  10. / {
  11. interrupt-parent = <&intc>;
  12. #address-cells = <2>;
  13. #size-cells = <2>;
  14. aliases {
  15. mmc1 = &sdhc1;
  16. mmc2 = &sdhc2;
  17. };
  18. chosen { };
  19. clocks {
  20. xo_board: xo-board {
  21. compatible = "fixed-clock";
  22. #clock-cells = <0>;
  23. clock-frequency = <19200000>;
  24. clock-output-names = "xo_board";
  25. };
  26. sleep_clk: sleep-clk {
  27. compatible = "fixed-clock";
  28. #clock-cells = <0>;
  29. clock-frequency = <32768>;
  30. clock-output-names = "sleep_clk";
  31. };
  32. };
  33. cpus {
  34. #address-cells = <2>;
  35. #size-cells = <0>;
  36. CPU0: cpu@0 {
  37. device_type = "cpu";
  38. compatible = "arm,cortex-a53";
  39. reg = <0x0 0x0>;
  40. enable-method = "psci";
  41. next-level-cache = <&L2_0>;
  42. L2_0: l2-cache {
  43. compatible = "cache";
  44. cache-level = <2>;
  45. };
  46. };
  47. CPU1: cpu@1 {
  48. device_type = "cpu";
  49. compatible = "arm,cortex-a53";
  50. reg = <0x0 0x1>;
  51. enable-method = "psci";
  52. next-level-cache = <&L2_0>;
  53. };
  54. CPU2: cpu@2 {
  55. device_type = "cpu";
  56. compatible = "arm,cortex-a53";
  57. reg = <0x0 0x2>;
  58. enable-method = "psci";
  59. next-level-cache = <&L2_0>;
  60. };
  61. CPU3: cpu@3 {
  62. device_type = "cpu";
  63. compatible = "arm,cortex-a53";
  64. reg = <0x0 0x3>;
  65. enable-method = "psci";
  66. next-level-cache = <&L2_0>;
  67. };
  68. CPU4: cpu@100 {
  69. device_type = "cpu";
  70. compatible = "arm,cortex-a57";
  71. reg = <0x0 0x100>;
  72. enable-method = "psci";
  73. next-level-cache = <&L2_1>;
  74. L2_1: l2-cache {
  75. compatible = "cache";
  76. cache-level = <2>;
  77. };
  78. };
  79. CPU5: cpu@101 {
  80. device_type = "cpu";
  81. compatible = "arm,cortex-a57";
  82. reg = <0x0 0x101>;
  83. enable-method = "psci";
  84. next-level-cache = <&L2_1>;
  85. };
  86. CPU6: cpu@102 {
  87. device_type = "cpu";
  88. compatible = "arm,cortex-a57";
  89. reg = <0x0 0x102>;
  90. enable-method = "psci";
  91. next-level-cache = <&L2_1>;
  92. };
  93. CPU7: cpu@103 {
  94. device_type = "cpu";
  95. compatible = "arm,cortex-a57";
  96. reg = <0x0 0x103>;
  97. enable-method = "psci";
  98. next-level-cache = <&L2_1>;
  99. };
  100. cpu-map {
  101. cluster0 {
  102. core0 {
  103. cpu = <&CPU0>;
  104. };
  105. core1 {
  106. cpu = <&CPU1>;
  107. };
  108. core2 {
  109. cpu = <&CPU2>;
  110. };
  111. core3 {
  112. cpu = <&CPU3>;
  113. };
  114. };
  115. cluster1 {
  116. core0 {
  117. cpu = <&CPU4>;
  118. };
  119. core1 {
  120. cpu = <&CPU5>;
  121. };
  122. cpu6_map: core2 {
  123. cpu = <&CPU6>;
  124. };
  125. cpu7_map: core3 {
  126. cpu = <&CPU7>;
  127. };
  128. };
  129. };
  130. };
  131. firmware {
  132. scm {
  133. compatible = "qcom,scm-msm8994", "qcom,scm";
  134. };
  135. };
  136. memory@80000000 {
  137. device_type = "memory";
  138. /* We expect the bootloader to fill in the reg */
  139. reg = <0 0x80000000 0 0>;
  140. };
  141. pmu {
  142. compatible = "arm,cortex-a53-pmu";
  143. interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4)| IRQ_TYPE_LEVEL_HIGH)>;
  144. };
  145. psci {
  146. compatible = "arm,psci-0.2";
  147. method = "hvc";
  148. };
  149. reserved-memory {
  150. #address-cells = <2>;
  151. #size-cells = <2>;
  152. ranges;
  153. dfps_data_mem: dfps_data_mem@3400000 {
  154. reg = <0 0x03400000 0 0x1000>;
  155. no-map;
  156. };
  157. cont_splash_mem: memory@3401000 {
  158. reg = <0 0x03401000 0 0x2200000>;
  159. no-map;
  160. };
  161. smem_mem: smem_region@6a00000 {
  162. reg = <0 0x06a00000 0 0x200000>;
  163. no-map;
  164. };
  165. mpss_mem: memory@7000000 {
  166. reg = <0 0x07000000 0 0x5a00000>;
  167. no-map;
  168. };
  169. peripheral_region: memory@ca00000 {
  170. reg = <0 0x0ca00000 0 0x1f00000>;
  171. no-map;
  172. };
  173. rmtfs_mem: memory@c6400000 {
  174. compatible = "qcom,rmtfs-mem";
  175. reg = <0 0xc6400000 0 0x180000>;
  176. no-map;
  177. qcom,client-id = <1>;
  178. };
  179. mba_mem: memory@c6700000 {
  180. reg = <0 0xc6700000 0 0x100000>;
  181. no-map;
  182. };
  183. audio_mem: memory@c7000000 {
  184. reg = <0 0xc7000000 0 0x800000>;
  185. no-map;
  186. };
  187. adsp_mem: memory@c9400000 {
  188. reg = <0 0xc9400000 0 0x3f00000>;
  189. no-map;
  190. };
  191. reserved@6c00000 {
  192. reg = <0 0x06c00000 0 0x400000>;
  193. no-map;
  194. };
  195. };
  196. smd {
  197. compatible = "qcom,smd";
  198. rpm {
  199. interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
  200. qcom,ipc = <&apcs 8 0>;
  201. qcom,smd-edge = <15>;
  202. qcom,remote-pid = <6>;
  203. rpm_requests: rpm-requests {
  204. compatible = "qcom,rpm-msm8994";
  205. qcom,smd-channels = "rpm_requests";
  206. rpmcc: rpmcc {
  207. compatible = "qcom,rpmcc-msm8994", "qcom,rpmcc";
  208. #clock-cells = <1>;
  209. };
  210. rpmpd: power-controller {
  211. compatible = "qcom,msm8994-rpmpd";
  212. #power-domain-cells = <1>;
  213. operating-points-v2 = <&rpmpd_opp_table>;
  214. rpmpd_opp_table: opp-table {
  215. compatible = "operating-points-v2";
  216. rpmpd_opp_ret: opp1 {
  217. opp-level = <1>;
  218. };
  219. rpmpd_opp_svs_krait: opp2 {
  220. opp-level = <2>;
  221. };
  222. rpmpd_opp_svs_soc: opp3 {
  223. opp-level = <3>;
  224. };
  225. rpmpd_opp_nom: opp4 {
  226. opp-level = <4>;
  227. };
  228. rpmpd_opp_turbo: opp5 {
  229. opp-level = <5>;
  230. };
  231. rpmpd_opp_super_turbo: opp6 {
  232. opp-level = <6>;
  233. };
  234. };
  235. };
  236. };
  237. };
  238. };
  239. smem {
  240. compatible = "qcom,smem";
  241. memory-region = <&smem_mem>;
  242. qcom,rpm-msg-ram = <&rpm_msg_ram>;
  243. hwlocks = <&tcsr_mutex 3>;
  244. };
  245. smp2p-lpass {
  246. compatible = "qcom,smp2p";
  247. qcom,smem = <443>, <429>;
  248. interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
  249. qcom,ipc = <&apcs 8 10>;
  250. qcom,local-pid = <0>;
  251. qcom,remote-pid = <2>;
  252. adsp_smp2p_out: master-kernel {
  253. qcom,entry-name = "master-kernel";
  254. #qcom,smem-state-cells = <1>;
  255. };
  256. adsp_smp2p_in: slave-kernel {
  257. qcom,entry-name = "slave-kernel";
  258. interrupt-controller;
  259. #interrupt-cells = <2>;
  260. };
  261. };
  262. smp2p-modem {
  263. compatible = "qcom,smp2p";
  264. qcom,smem = <435>, <428>;
  265. interrupt-parent = <&intc>;
  266. interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
  267. qcom,ipc = <&apcs 8 14>;
  268. qcom,local-pid = <0>;
  269. qcom,remote-pid = <1>;
  270. modem_smp2p_out: master-kernel {
  271. qcom,entry-name = "master-kernel";
  272. #qcom,smem-state-cells = <1>;
  273. };
  274. modem_smp2p_in: slave-kernel {
  275. qcom,entry-name = "slave-kernel";
  276. interrupt-controller;
  277. #interrupt-cells = <2>;
  278. };
  279. };
  280. soc: soc {
  281. #address-cells = <1>;
  282. #size-cells = <1>;
  283. ranges = <0 0 0 0xffffffff>;
  284. compatible = "simple-bus";
  285. intc: interrupt-controller@f9000000 {
  286. compatible = "qcom,msm-qgic2";
  287. interrupt-controller;
  288. #interrupt-cells = <3>;
  289. reg = <0xf9000000 0x1000>,
  290. <0xf9002000 0x1000>;
  291. };
  292. apcs: mailbox@f900d000 {
  293. compatible = "qcom,msm8994-apcs-kpss-global", "syscon";
  294. reg = <0xf900d000 0x2000>;
  295. #mbox-cells = <1>;
  296. };
  297. watchdog@f9017000 {
  298. compatible = "qcom,apss-wdt-msm8994", "qcom,kpss-wdt";
  299. reg = <0xf9017000 0x1000>;
  300. interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>,
  301. <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>;
  302. clocks = <&sleep_clk>;
  303. timeout-sec = <10>;
  304. };
  305. timer@f9020000 {
  306. #address-cells = <1>;
  307. #size-cells = <1>;
  308. ranges;
  309. compatible = "arm,armv7-timer-mem";
  310. reg = <0xf9020000 0x1000>;
  311. frame@f9021000 {
  312. frame-number = <0>;
  313. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
  314. <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
  315. reg = <0xf9021000 0x1000>,
  316. <0xf9022000 0x1000>;
  317. };
  318. frame@f9023000 {
  319. frame-number = <1>;
  320. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  321. reg = <0xf9023000 0x1000>;
  322. status = "disabled";
  323. };
  324. frame@f9024000 {
  325. frame-number = <2>;
  326. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
  327. reg = <0xf9024000 0x1000>;
  328. status = "disabled";
  329. };
  330. frame@f9025000 {
  331. frame-number = <3>;
  332. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
  333. reg = <0xf9025000 0x1000>;
  334. status = "disabled";
  335. };
  336. frame@f9026000 {
  337. frame-number = <4>;
  338. interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
  339. reg = <0xf9026000 0x1000>;
  340. status = "disabled";
  341. };
  342. frame@f9027000 {
  343. frame-number = <5>;
  344. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  345. reg = <0xf9027000 0x1000>;
  346. status = "disabled";
  347. };
  348. frame@f9028000 {
  349. frame-number = <6>;
  350. interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
  351. reg = <0xf9028000 0x1000>;
  352. status = "disabled";
  353. };
  354. };
  355. usb3: usb@f92f8800 {
  356. compatible = "qcom,msm8994-dwc3", "qcom,dwc3";
  357. reg = <0xf92f8800 0x400>;
  358. #address-cells = <1>;
  359. #size-cells = <1>;
  360. ranges;
  361. clocks = <&gcc GCC_USB30_MASTER_CLK>,
  362. <&gcc GCC_SYS_NOC_USB3_AXI_CLK>,
  363. <&gcc GCC_USB30_SLEEP_CLK>,
  364. <&gcc GCC_USB30_MOCK_UTMI_CLK>;
  365. clock-names = "core",
  366. "iface",
  367. "sleep",
  368. "mock_utmi";
  369. assigned-clocks = <&gcc GCC_USB30_MOCK_UTMI_CLK>,
  370. <&gcc GCC_USB30_MASTER_CLK>;
  371. assigned-clock-rates = <19200000>, <120000000>;
  372. power-domains = <&gcc USB30_GDSC>;
  373. qcom,select-utmi-as-pipe-clk;
  374. usb@f9200000 {
  375. compatible = "snps,dwc3";
  376. reg = <0xf9200000 0xcc00>;
  377. interrupts = <0 131 IRQ_TYPE_LEVEL_HIGH>;
  378. snps,dis_u2_susphy_quirk;
  379. snps,dis_enblslpm_quirk;
  380. maximum-speed = "high-speed";
  381. dr_mode = "peripheral";
  382. };
  383. };
  384. sdhc1: mmc@f9824900 {
  385. compatible = "qcom,msm8994-sdhci", "qcom,sdhci-msm-v4";
  386. reg = <0xf9824900 0x1a0>, <0xf9824000 0x800>;
  387. reg-names = "hc", "core";
  388. interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
  389. <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
  390. interrupt-names = "hc_irq", "pwr_irq";
  391. clocks = <&gcc GCC_SDCC1_AHB_CLK>,
  392. <&gcc GCC_SDCC1_APPS_CLK>,
  393. <&xo_board>;
  394. clock-names = "iface", "core", "xo";
  395. pinctrl-names = "default", "sleep";
  396. pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>;
  397. pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;
  398. bus-width = <8>;
  399. non-removable;
  400. status = "disabled";
  401. };
  402. sdhc2: mmc@f98a4900 {
  403. compatible = "qcom,msm8994-sdhci", "qcom,sdhci-msm-v4";
  404. reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
  405. reg-names = "hc", "core";
  406. interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
  407. <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
  408. interrupt-names = "hc_irq", "pwr_irq";
  409. clocks = <&gcc GCC_SDCC2_AHB_CLK>,
  410. <&gcc GCC_SDCC2_APPS_CLK>,
  411. <&xo_board>;
  412. clock-names = "iface", "core", "xo";
  413. pinctrl-names = "default", "sleep";
  414. pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
  415. pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
  416. cd-gpios = <&tlmm 100 GPIO_ACTIVE_HIGH>;
  417. bus-width = <4>;
  418. status = "disabled";
  419. };
  420. blsp1_dma: dma-controller@f9904000 {
  421. compatible = "qcom,bam-v1.7.0";
  422. reg = <0xf9904000 0x19000>;
  423. interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
  424. clocks = <&gcc GCC_BLSP1_AHB_CLK>;
  425. clock-names = "bam_clk";
  426. #dma-cells = <1>;
  427. qcom,ee = <0>;
  428. qcom,controlled-remotely;
  429. num-channels = <24>;
  430. qcom,num-ees = <4>;
  431. };
  432. blsp1_uart2: serial@f991e000 {
  433. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  434. reg = <0xf991e000 0x1000>;
  435. interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
  436. clock-names = "core", "iface";
  437. clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
  438. <&gcc GCC_BLSP1_AHB_CLK>;
  439. pinctrl-names = "default", "sleep";
  440. pinctrl-0 = <&blsp1_uart2_default>;
  441. pinctrl-1 = <&blsp1_uart2_sleep>;
  442. status = "disabled";
  443. };
  444. blsp1_i2c1: i2c@f9923000 {
  445. compatible = "qcom,i2c-qup-v2.2.1";
  446. reg = <0xf9923000 0x500>;
  447. interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
  448. clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
  449. <&gcc GCC_BLSP1_AHB_CLK>;
  450. clock-names = "core", "iface";
  451. clock-frequency = <400000>;
  452. dmas = <&blsp1_dma 12>, <&blsp1_dma 13>;
  453. dma-names = "tx", "rx";
  454. pinctrl-names = "default", "sleep";
  455. pinctrl-0 = <&i2c1_default>;
  456. pinctrl-1 = <&i2c1_sleep>;
  457. #address-cells = <1>;
  458. #size-cells = <0>;
  459. status = "disabled";
  460. };
  461. blsp1_spi1: spi@f9923000 {
  462. compatible = "qcom,spi-qup-v2.2.1";
  463. reg = <0xf9923000 0x500>;
  464. interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
  465. clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
  466. <&gcc GCC_BLSP1_AHB_CLK>;
  467. clock-names = "core", "iface";
  468. spi-max-frequency = <19200000>;
  469. dmas = <&blsp1_dma 12>, <&blsp1_dma 13>;
  470. dma-names = "tx", "rx";
  471. pinctrl-names = "default", "sleep";
  472. pinctrl-0 = <&blsp1_spi1_default>;
  473. pinctrl-1 = <&blsp1_spi1_sleep>;
  474. #address-cells = <1>;
  475. #size-cells = <0>;
  476. status = "disabled";
  477. };
  478. blsp1_i2c2: i2c@f9924000 {
  479. compatible = "qcom,i2c-qup-v2.2.1";
  480. reg = <0xf9924000 0x500>;
  481. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  482. clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
  483. <&gcc GCC_BLSP1_AHB_CLK>;
  484. clock-names = "core", "iface";
  485. clock-frequency = <400000>;
  486. dmas = <&blsp1_dma 14>, <&blsp1_dma 15>;
  487. dma-names = "tx", "rx";
  488. pinctrl-names = "default", "sleep";
  489. pinctrl-0 = <&i2c2_default>;
  490. pinctrl-1 = <&i2c2_sleep>;
  491. #address-cells = <1>;
  492. #size-cells = <0>;
  493. status = "disabled";
  494. };
  495. /* I2C3 doesn't exist */
  496. blsp1_i2c4: i2c@f9926000 {
  497. compatible = "qcom,i2c-qup-v2.2.1";
  498. reg = <0xf9926000 0x500>;
  499. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  500. clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
  501. <&gcc GCC_BLSP1_AHB_CLK>;
  502. clock-names = "core", "iface";
  503. clock-frequency = <400000>;
  504. dmas = <&blsp1_dma 18>, <&blsp1_dma 19>;
  505. dma-names = "tx", "rx";
  506. pinctrl-names = "default", "sleep";
  507. pinctrl-0 = <&i2c4_default>;
  508. pinctrl-1 = <&i2c4_sleep>;
  509. #address-cells = <1>;
  510. #size-cells = <0>;
  511. status = "disabled";
  512. };
  513. blsp1_i2c5: i2c@f9927000 {
  514. compatible = "qcom,i2c-qup-v2.2.1";
  515. reg = <0xf9927000 0x500>;
  516. interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
  517. clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
  518. <&gcc GCC_BLSP1_AHB_CLK>;
  519. clock-names = "core", "iface";
  520. clock-frequency = <400000>;
  521. dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
  522. dma-names = "tx", "rx";
  523. pinctrl-names = "default", "sleep";
  524. pinctrl-0 = <&i2c5_default>;
  525. pinctrl-1 = <&i2c5_sleep>;
  526. #address-cells = <1>;
  527. #size-cells = <0>;
  528. status = "disabled";
  529. };
  530. blsp1_i2c6: i2c@f9928000 {
  531. compatible = "qcom,i2c-qup-v2.2.1";
  532. reg = <0xf9928000 0x500>;
  533. interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
  534. clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
  535. <&gcc GCC_BLSP1_AHB_CLK>;
  536. clock-names = "core", "iface";
  537. clock-frequency = <400000>;
  538. dmas = <&blsp1_dma 22>, <&blsp1_dma 23>;
  539. dma-names = "tx", "rx";
  540. pinctrl-names = "default", "sleep";
  541. pinctrl-0 = <&i2c6_default>;
  542. pinctrl-1 = <&i2c6_sleep>;
  543. #address-cells = <1>;
  544. #size-cells = <0>;
  545. status = "disabled";
  546. };
  547. blsp2_dma: dma-controller@f9944000 {
  548. compatible = "qcom,bam-v1.7.0";
  549. reg = <0xf9944000 0x19000>;
  550. interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
  551. clocks = <&gcc GCC_BLSP2_AHB_CLK>;
  552. clock-names = "bam_clk";
  553. #dma-cells = <1>;
  554. qcom,ee = <0>;
  555. qcom,controlled-remotely;
  556. num-channels = <24>;
  557. qcom,num-ees = <4>;
  558. };
  559. blsp2_uart2: serial@f995e000 {
  560. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  561. reg = <0xf995e000 0x1000>;
  562. interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
  563. clock-names = "core", "iface";
  564. clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>,
  565. <&gcc GCC_BLSP2_AHB_CLK>;
  566. dmas = <&blsp2_dma 2>, <&blsp2_dma 3>;
  567. dma-names = "tx", "rx";
  568. pinctrl-names = "default", "sleep";
  569. pinctrl-0 = <&blsp2_uart2_default>;
  570. pinctrl-1 = <&blsp2_uart2_sleep>;
  571. status = "disabled";
  572. };
  573. blsp2_i2c1: i2c@f9963000 {
  574. compatible = "qcom,i2c-qup-v2.2.1";
  575. reg = <0xf9963000 0x500>;
  576. interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
  577. clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>,
  578. <&gcc GCC_BLSP2_AHB_CLK>;
  579. clock-names = "core", "iface";
  580. clock-frequency = <400000>;
  581. dmas = <&blsp2_dma 12>, <&blsp2_dma 13>;
  582. dma-names = "tx", "rx";
  583. pinctrl-names = "default", "sleep";
  584. pinctrl-0 = <&i2c7_default>;
  585. pinctrl-1 = <&i2c7_sleep>;
  586. #address-cells = <1>;
  587. #size-cells = <0>;
  588. status = "disabled";
  589. };
  590. blsp2_spi4: spi@f9966000 {
  591. compatible = "qcom,spi-qup-v2.2.1";
  592. reg = <0xf9966000 0x500>;
  593. interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
  594. clocks = <&gcc GCC_BLSP2_QUP4_SPI_APPS_CLK>,
  595. <&gcc GCC_BLSP2_AHB_CLK>;
  596. clock-names = "core", "iface";
  597. spi-max-frequency = <19200000>;
  598. dmas = <&blsp2_dma 18>, <&blsp2_dma 19>;
  599. dma-names = "tx", "rx";
  600. pinctrl-names = "default", "sleep";
  601. pinctrl-0 = <&blsp2_spi10_default>;
  602. pinctrl-1 = <&blsp2_spi10_sleep>;
  603. #address-cells = <1>;
  604. #size-cells = <0>;
  605. status = "disabled";
  606. };
  607. blsp2_i2c5: i2c@f9967000 {
  608. compatible = "qcom,i2c-qup-v2.2.1";
  609. reg = <0xf9967000 0x500>;
  610. interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
  611. clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>,
  612. <&gcc GCC_BLSP2_AHB_CLK>;
  613. clock-names = "core", "iface";
  614. clock-frequency = <355000>;
  615. dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
  616. dma-names = "tx", "rx";
  617. pinctrl-names = "default", "sleep";
  618. pinctrl-0 = <&i2c11_default>;
  619. pinctrl-1 = <&i2c11_sleep>;
  620. #address-cells = <1>;
  621. #size-cells = <0>;
  622. status = "disabled";
  623. };
  624. gcc: clock-controller@fc400000 {
  625. compatible = "qcom,gcc-msm8994";
  626. #clock-cells = <1>;
  627. #reset-cells = <1>;
  628. #power-domain-cells = <1>;
  629. reg = <0xfc400000 0x2000>;
  630. clock-names = "xo", "sleep";
  631. clocks = <&xo_board>, <&sleep_clk>;
  632. };
  633. rpm_msg_ram: sram@fc428000 {
  634. compatible = "qcom,rpm-msg-ram";
  635. reg = <0xfc428000 0x4000>;
  636. };
  637. restart@fc4ab000 {
  638. compatible = "qcom,pshold";
  639. reg = <0xfc4ab000 0x4>;
  640. };
  641. spmi_bus: spmi@fc4cf000 {
  642. compatible = "qcom,spmi-pmic-arb";
  643. reg = <0xfc4cf000 0x1000>,
  644. <0xfc4cb000 0x1000>,
  645. <0xfc4ca000 0x1000>;
  646. reg-names = "core", "intr", "cnfg";
  647. interrupt-names = "periph_irq";
  648. interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
  649. qcom,ee = <0>;
  650. qcom,channel = <0>;
  651. #address-cells = <2>;
  652. #size-cells = <0>;
  653. interrupt-controller;
  654. #interrupt-cells = <4>;
  655. };
  656. tcsr_mutex: hwlock@fd484000 {
  657. compatible = "qcom,msm8994-tcsr-mutex", "qcom,tcsr-mutex";
  658. reg = <0xfd484000 0x1000>;
  659. #hwlock-cells = <1>;
  660. };
  661. tlmm: pinctrl@fd510000 {
  662. compatible = "qcom,msm8994-pinctrl";
  663. reg = <0xfd510000 0x4000>;
  664. interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
  665. gpio-controller;
  666. gpio-ranges = <&tlmm 0 0 146>;
  667. #gpio-cells = <2>;
  668. interrupt-controller;
  669. #interrupt-cells = <2>;
  670. blsp1_uart2_default: blsp1-uart2-default {
  671. function = "blsp_uart2";
  672. pins = "gpio4", "gpio5";
  673. drive-strength = <16>;
  674. bias-disable;
  675. };
  676. blsp1_uart2_sleep: blsp1-uart2-sleep {
  677. function = "gpio";
  678. pins = "gpio4", "gpio5";
  679. drive-strength = <2>;
  680. bias-pull-down;
  681. };
  682. blsp2_uart2_default: blsp2-uart2-default {
  683. function = "blsp_uart8";
  684. pins = "gpio45", "gpio46",
  685. "gpio47", "gpio48";
  686. drive-strength = <16>;
  687. bias-disable;
  688. };
  689. blsp2_uart2_sleep: blsp2-uart2-sleep {
  690. function = "gpio";
  691. pins = "gpio45", "gpio46",
  692. "gpio47", "gpio48";
  693. drive-strength = <2>;
  694. bias-disable;
  695. };
  696. i2c1_default: i2c1-default {
  697. function = "blsp_i2c1";
  698. pins = "gpio2", "gpio3";
  699. drive-strength = <2>;
  700. bias-disable;
  701. };
  702. i2c1_sleep: i2c1-sleep {
  703. function = "gpio";
  704. pins = "gpio2", "gpio3";
  705. drive-strength = <2>;
  706. bias-disable;
  707. };
  708. i2c2_default: i2c2-default {
  709. function = "blsp_i2c2";
  710. pins = "gpio6", "gpio7";
  711. drive-strength = <2>;
  712. bias-disable;
  713. };
  714. i2c2_sleep: i2c2-sleep {
  715. function = "gpio";
  716. pins = "gpio6", "gpio7";
  717. drive-strength = <2>;
  718. bias-disable;
  719. };
  720. i2c4_default: i2c4-default {
  721. function = "blsp_i2c4";
  722. pins = "gpio19", "gpio20";
  723. drive-strength = <2>;
  724. bias-disable;
  725. };
  726. i2c4_sleep: i2c4-sleep {
  727. function = "gpio";
  728. pins = "gpio19", "gpio20";
  729. drive-strength = <2>;
  730. bias-pull-down;
  731. input-enable;
  732. };
  733. i2c5_default: i2c5-default {
  734. function = "blsp_i2c5";
  735. pins = "gpio23", "gpio24";
  736. drive-strength = <2>;
  737. bias-disable;
  738. };
  739. i2c5_sleep: i2c5-sleep {
  740. function = "gpio";
  741. pins = "gpio23", "gpio24";
  742. drive-strength = <2>;
  743. bias-disable;
  744. };
  745. i2c6_default: i2c6-default {
  746. function = "blsp_i2c6";
  747. pins = "gpio28", "gpio27";
  748. drive-strength = <2>;
  749. bias-disable;
  750. };
  751. i2c6_sleep: i2c6-sleep {
  752. function = "gpio";
  753. pins = "gpio28", "gpio27";
  754. drive-strength = <2>;
  755. bias-disable;
  756. };
  757. i2c7_default: i2c7-default {
  758. function = "blsp_i2c7";
  759. pins = "gpio44", "gpio43";
  760. drive-strength = <2>;
  761. bias-disable;
  762. };
  763. i2c7_sleep: i2c7-sleep {
  764. function = "gpio";
  765. pins = "gpio44", "gpio43";
  766. drive-strength = <2>;
  767. bias-disable;
  768. };
  769. blsp2_spi10_default: blsp2-spi10-default {
  770. default {
  771. function = "blsp_spi10";
  772. pins = "gpio53", "gpio54", "gpio55";
  773. drive-strength = <10>;
  774. bias-pull-down;
  775. };
  776. cs {
  777. function = "gpio";
  778. pins = "gpio55";
  779. drive-strength = <2>;
  780. bias-disable;
  781. };
  782. };
  783. blsp2_spi10_sleep: blsp2-spi10-sleep {
  784. pins = "gpio53", "gpio54", "gpio55";
  785. drive-strength = <2>;
  786. bias-disable;
  787. };
  788. i2c11_default: i2c11-default {
  789. function = "blsp_i2c11";
  790. pins = "gpio83", "gpio84";
  791. drive-strength = <2>;
  792. bias-disable;
  793. };
  794. i2c11_sleep: i2c11-sleep {
  795. function = "gpio";
  796. pins = "gpio83", "gpio84";
  797. drive-strength = <2>;
  798. bias-disable;
  799. };
  800. blsp1_spi1_default: blsp1-spi1-default {
  801. default {
  802. function = "blsp_spi1";
  803. pins = "gpio0", "gpio1", "gpio3";
  804. drive-strength = <10>;
  805. bias-pull-down;
  806. };
  807. cs {
  808. function = "gpio";
  809. pins = "gpio8";
  810. drive-strength = <2>;
  811. bias-disable;
  812. };
  813. };
  814. blsp1_spi1_sleep: blsp1-spi1-sleep {
  815. pins = "gpio0", "gpio1", "gpio3";
  816. drive-strength = <2>;
  817. bias-disable;
  818. };
  819. sdc1_clk_on: clk-on {
  820. pins = "sdc1_clk";
  821. bias-disable;
  822. drive-strength = <16>;
  823. };
  824. sdc1_clk_off: clk-off {
  825. pins = "sdc1_clk";
  826. bias-disable;
  827. drive-strength = <2>;
  828. };
  829. sdc1_cmd_on: cmd-on {
  830. pins = "sdc1_cmd";
  831. bias-pull-up;
  832. drive-strength = <8>;
  833. };
  834. sdc1_cmd_off: cmd-off {
  835. pins = "sdc1_cmd";
  836. bias-pull-up;
  837. drive-strength = <2>;
  838. };
  839. sdc1_data_on: data-on {
  840. pins = "sdc1_data";
  841. bias-pull-up;
  842. drive-strength = <8>;
  843. };
  844. sdc1_data_off: data-off {
  845. pins = "sdc1_data";
  846. bias-pull-up;
  847. drive-strength = <2>;
  848. };
  849. sdc1_rclk_on: rclk-on {
  850. pins = "sdc1_rclk";
  851. bias-pull-down;
  852. };
  853. sdc1_rclk_off: rclk-off {
  854. pins = "sdc1_rclk";
  855. bias-pull-down;
  856. };
  857. sdc2_clk_on: sdc2-clk-on {
  858. pins = "sdc2_clk";
  859. bias-disable;
  860. drive-strength = <10>;
  861. };
  862. sdc2_clk_off: sdc2-clk-off {
  863. pins = "sdc2_clk";
  864. bias-disable;
  865. drive-strength = <2>;
  866. };
  867. sdc2_cmd_on: sdc2-cmd-on {
  868. pins = "sdc2_cmd";
  869. bias-pull-up;
  870. drive-strength = <10>;
  871. };
  872. sdc2_cmd_off: sdc2-cmd-off {
  873. pins = "sdc2_cmd";
  874. bias-pull-up;
  875. drive-strength = <2>;
  876. };
  877. sdc2_data_on: sdc2-data-on {
  878. pins = "sdc2_data";
  879. bias-pull-up;
  880. drive-strength = <10>;
  881. };
  882. sdc2_data_off: sdc2-data-off {
  883. pins = "sdc2_data";
  884. bias-pull-up;
  885. drive-strength = <2>;
  886. };
  887. };
  888. mmcc: clock-controller@fd8c0000 {
  889. compatible = "qcom,mmcc-msm8994";
  890. reg = <0xfd8c0000 0x5200>;
  891. #clock-cells = <1>;
  892. #reset-cells = <1>;
  893. #power-domain-cells = <1>;
  894. clock-names = "xo",
  895. "gpll0",
  896. "mmssnoc_ahb",
  897. "oxili_gfx3d_clk_src",
  898. "dsi0pll",
  899. "dsi0pllbyte",
  900. "dsi1pll",
  901. "dsi1pllbyte",
  902. "hdmipll";
  903. clocks = <&xo_board>,
  904. <&gcc GPLL0_OUT_MMSSCC>,
  905. <&rpmcc RPM_SMD_MMSSNOC_AHB_CLK>,
  906. <&rpmcc RPM_SMD_GFX3D_CLK_SRC>,
  907. <0>,
  908. <0>,
  909. <0>,
  910. <0>,
  911. <0>;
  912. assigned-clocks = <&mmcc MMPLL0_PLL>,
  913. <&mmcc MMPLL1_PLL>,
  914. <&mmcc MMPLL3_PLL>,
  915. <&mmcc MMPLL4_PLL>,
  916. <&mmcc MMPLL5_PLL>;
  917. assigned-clock-rates = <800000000>,
  918. <1167000000>,
  919. <1020000000>,
  920. <960000000>,
  921. <600000000>;
  922. };
  923. ocmem: sram@fdd00000 {
  924. compatible = "qcom,msm8974-ocmem";
  925. reg = <0xfdd00000 0x2000>,
  926. <0xfec00000 0x200000>;
  927. reg-names = "ctrl", "mem";
  928. ranges = <0 0xfec00000 0x200000>;
  929. clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>,
  930. <&mmcc OCMEMCX_OCMEMNOC_CLK>;
  931. clock-names = "core", "iface";
  932. #address-cells = <1>;
  933. #size-cells = <1>;
  934. gmu_sram: gmu-sram@0 {
  935. reg = <0x0 0x180000>;
  936. };
  937. };
  938. };
  939. timer: timer {
  940. compatible = "arm,armv8-timer";
  941. interrupts = <GIC_PPI 2 0xff08>,
  942. <GIC_PPI 3 0xff08>,
  943. <GIC_PPI 4 0xff08>,
  944. <GIC_PPI 1 0xff08>;
  945. };
  946. vph_pwr: vph-pwr-regulator {
  947. compatible = "regulator-fixed";
  948. regulator-name = "vph_pwr";
  949. regulator-min-microvolt = <3600000>;
  950. regulator-max-microvolt = <3600000>;
  951. regulator-always-on;
  952. };
  953. };