msm8916.dtsi 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524
  1. /*
  2. * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 and
  6. * only version 2 as published by the Free Software Foundation.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. */
  13. #include <dt-bindings/interrupt-controller/arm-gic.h>
  14. #include <dt-bindings/clock/qcom,gcc-msm8916.h>
  15. #include <dt-bindings/reset/qcom,gcc-msm8916.h>
  16. #include <dt-bindings/clock/qcom,rpmcc.h>
  17. #include <dt-bindings/thermal/thermal.h>
  18. / {
  19. interrupt-parent = <&intc>;
  20. #address-cells = <2>;
  21. #size-cells = <2>;
  22. aliases {
  23. sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
  24. sdhc2 = &sdhc_2; /* SDC2 SD card slot */
  25. };
  26. chosen { };
  27. memory {
  28. device_type = "memory";
  29. /* We expect the bootloader to fill in the reg */
  30. reg = <0 0 0 0>;
  31. };
  32. reserved-memory {
  33. #address-cells = <2>;
  34. #size-cells = <2>;
  35. ranges;
  36. tz-apps@86000000 {
  37. reg = <0x0 0x86000000 0x0 0x300000>;
  38. no-map;
  39. };
  40. smem_mem: smem_region@86300000 {
  41. reg = <0x0 0x86300000 0x0 0x100000>;
  42. no-map;
  43. };
  44. hypervisor@86400000 {
  45. reg = <0x0 0x86400000 0x0 0x100000>;
  46. no-map;
  47. };
  48. tz@86500000 {
  49. reg = <0x0 0x86500000 0x0 0x180000>;
  50. no-map;
  51. };
  52. reserved@8668000 {
  53. reg = <0x0 0x86680000 0x0 0x80000>;
  54. no-map;
  55. };
  56. rmtfs@86700000 {
  57. compatible = "qcom,rmtfs-mem";
  58. reg = <0x0 0x86700000 0x0 0xe0000>;
  59. no-map;
  60. qcom,client-id = <1>;
  61. };
  62. rfsa@867e00000 {
  63. reg = <0x0 0x867e0000 0x0 0x20000>;
  64. no-map;
  65. };
  66. mpss_mem: mpss@86800000 {
  67. reg = <0x0 0x86800000 0x0 0x2b00000>;
  68. no-map;
  69. };
  70. wcnss_mem: wcnss@89300000 {
  71. reg = <0x0 0x89300000 0x0 0x600000>;
  72. no-map;
  73. };
  74. venus_mem: venus@89900000 {
  75. reg = <0x0 0x89900000 0x0 0x600000>;
  76. no-map;
  77. };
  78. mba_mem: mba@8ea00000 {
  79. no-map;
  80. reg = <0 0x8ea00000 0 0x100000>;
  81. };
  82. };
  83. cpus {
  84. #address-cells = <1>;
  85. #size-cells = <0>;
  86. CPU0: cpu@0 {
  87. device_type = "cpu";
  88. compatible = "arm,cortex-a53", "arm,armv8";
  89. reg = <0x0>;
  90. next-level-cache = <&L2_0>;
  91. enable-method = "psci";
  92. cpu-idle-states = <&CPU_SPC>;
  93. clocks = <&apcs 0>;
  94. operating-points-v2 = <&cpu_opp_table>;
  95. #cooling-cells = <2>;
  96. };
  97. CPU1: cpu@1 {
  98. device_type = "cpu";
  99. compatible = "arm,cortex-a53", "arm,armv8";
  100. reg = <0x1>;
  101. next-level-cache = <&L2_0>;
  102. enable-method = "psci";
  103. cpu-idle-states = <&CPU_SPC>;
  104. clocks = <&apcs 0>;
  105. operating-points-v2 = <&cpu_opp_table>;
  106. #cooling-cells = <2>;
  107. };
  108. CPU2: cpu@2 {
  109. device_type = "cpu";
  110. compatible = "arm,cortex-a53", "arm,armv8";
  111. reg = <0x2>;
  112. next-level-cache = <&L2_0>;
  113. enable-method = "psci";
  114. cpu-idle-states = <&CPU_SPC>;
  115. clocks = <&apcs 0>;
  116. operating-points-v2 = <&cpu_opp_table>;
  117. #cooling-cells = <2>;
  118. };
  119. CPU3: cpu@3 {
  120. device_type = "cpu";
  121. compatible = "arm,cortex-a53", "arm,armv8";
  122. reg = <0x3>;
  123. next-level-cache = <&L2_0>;
  124. enable-method = "psci";
  125. cpu-idle-states = <&CPU_SPC>;
  126. clocks = <&apcs 0>;
  127. operating-points-v2 = <&cpu_opp_table>;
  128. #cooling-cells = <2>;
  129. };
  130. L2_0: l2-cache {
  131. compatible = "cache";
  132. cache-level = <2>;
  133. };
  134. idle-states {
  135. CPU_SPC: spc {
  136. compatible = "arm,idle-state";
  137. arm,psci-suspend-param = <0x40000002>;
  138. entry-latency-us = <130>;
  139. exit-latency-us = <150>;
  140. min-residency-us = <2000>;
  141. local-timer-stop;
  142. };
  143. };
  144. };
  145. psci {
  146. compatible = "arm,psci-1.0";
  147. method = "smc";
  148. };
  149. pmu {
  150. compatible = "arm,cortex-a53-pmu";
  151. interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4)| IRQ_TYPE_LEVEL_HIGH)>;
  152. };
  153. thermal-zones {
  154. cpu-thermal0 {
  155. polling-delay-passive = <250>;
  156. polling-delay = <1000>;
  157. thermal-sensors = <&tsens 4>;
  158. trips {
  159. cpu_alert0: trip0 {
  160. temperature = <75000>;
  161. hysteresis = <2000>;
  162. type = "passive";
  163. };
  164. cpu_crit0: trip1 {
  165. temperature = <110000>;
  166. hysteresis = <2000>;
  167. type = "critical";
  168. };
  169. };
  170. cooling-maps {
  171. map0 {
  172. trip = <&cpu_alert0>;
  173. cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  174. };
  175. };
  176. };
  177. cpu-thermal1 {
  178. polling-delay-passive = <250>;
  179. polling-delay = <1000>;
  180. thermal-sensors = <&tsens 3>;
  181. trips {
  182. cpu_alert1: trip0 {
  183. temperature = <75000>;
  184. hysteresis = <2000>;
  185. type = "passive";
  186. };
  187. cpu_crit1: trip1 {
  188. temperature = <110000>;
  189. hysteresis = <2000>;
  190. type = "critical";
  191. };
  192. };
  193. cooling-maps {
  194. map0 {
  195. trip = <&cpu_alert1>;
  196. cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  197. };
  198. };
  199. };
  200. };
  201. cpu_opp_table: cpu_opp_table {
  202. compatible = "operating-points-v2";
  203. opp-shared;
  204. opp-200000000 {
  205. opp-hz = /bits/ 64 <200000000>;
  206. };
  207. opp-400000000 {
  208. opp-hz = /bits/ 64 <400000000>;
  209. };
  210. opp-800000000 {
  211. opp-hz = /bits/ 64 <800000000>;
  212. };
  213. opp-998400000 {
  214. opp-hz = /bits/ 64 <998400000>;
  215. };
  216. };
  217. gpu_opp_table: opp_table {
  218. compatible = "operating-points-v2";
  219. opp-400000000 {
  220. opp-hz = /bits/ 64 <400000000>;
  221. };
  222. opp-19200000 {
  223. opp-hz = /bits/ 64 <19200000>;
  224. };
  225. };
  226. timer {
  227. compatible = "arm,armv8-timer";
  228. interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  229. <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  230. <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  231. <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  232. };
  233. clocks {
  234. xo_board: xo_board {
  235. compatible = "fixed-clock";
  236. #clock-cells = <0>;
  237. clock-frequency = <19200000>;
  238. };
  239. sleep_clk: sleep_clk {
  240. compatible = "fixed-clock";
  241. #clock-cells = <0>;
  242. clock-frequency = <32768>;
  243. };
  244. };
  245. smem {
  246. compatible = "qcom,smem";
  247. memory-region = <&smem_mem>;
  248. qcom,rpm-msg-ram = <&rpm_msg_ram>;
  249. hwlocks = <&tcsr_mutex 3>;
  250. };
  251. firmware {
  252. scm: scm {
  253. compatible = "qcom,scm";
  254. clocks = <&gcc GCC_CRYPTO_CLK>, <&gcc GCC_CRYPTO_AXI_CLK>, <&gcc GCC_CRYPTO_AHB_CLK>;
  255. clock-names = "core", "bus", "iface";
  256. #reset-cells = <1>;
  257. qcom,dload-mode = <&tcsr 0x6100>;
  258. };
  259. };
  260. soc: soc {
  261. #address-cells = <1>;
  262. #size-cells = <1>;
  263. ranges = <0 0 0 0xffffffff>;
  264. compatible = "simple-bus";
  265. restart@4ab000 {
  266. compatible = "qcom,pshold";
  267. reg = <0x4ab000 0x4>;
  268. };
  269. msmgpio: pinctrl@1000000 {
  270. compatible = "qcom,msm8916-pinctrl";
  271. reg = <0x1000000 0x300000>;
  272. interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
  273. gpio-controller;
  274. #gpio-cells = <2>;
  275. interrupt-controller;
  276. #interrupt-cells = <2>;
  277. };
  278. gcc: clock-controller@1800000 {
  279. compatible = "qcom,gcc-msm8916";
  280. #clock-cells = <1>;
  281. #reset-cells = <1>;
  282. #power-domain-cells = <1>;
  283. reg = <0x1800000 0x80000>;
  284. };
  285. tcsr_mutex_regs: syscon@1905000 {
  286. compatible = "syscon";
  287. reg = <0x1905000 0x20000>;
  288. };
  289. tcsr: syscon@1937000 {
  290. compatible = "qcom,tcsr-msm8916", "syscon";
  291. reg = <0x1937000 0x30000>;
  292. };
  293. tcsr_mutex: hwlock {
  294. compatible = "qcom,tcsr-mutex";
  295. syscon = <&tcsr_mutex_regs 0 0x1000>;
  296. #hwlock-cells = <1>;
  297. };
  298. rpm_msg_ram: memory@60000 {
  299. compatible = "qcom,rpm-msg-ram";
  300. reg = <0x60000 0x8000>;
  301. };
  302. blsp1_uart1: serial@78af000 {
  303. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  304. reg = <0x78af000 0x200>;
  305. interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
  306. clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
  307. clock-names = "core", "iface";
  308. dmas = <&blsp_dma 1>, <&blsp_dma 0>;
  309. dma-names = "rx", "tx";
  310. status = "disabled";
  311. };
  312. a53pll: clock@b016000 {
  313. compatible = "qcom,msm8916-a53pll";
  314. reg = <0xb016000 0x40>;
  315. #clock-cells = <0>;
  316. };
  317. apcs: mailbox@b011000 {
  318. compatible = "qcom,msm8916-apcs-kpss-global", "syscon";
  319. reg = <0xb011000 0x1000>;
  320. #mbox-cells = <1>;
  321. clocks = <&a53pll>;
  322. #clock-cells = <0>;
  323. };
  324. blsp1_uart2: serial@78b0000 {
  325. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  326. reg = <0x78b0000 0x200>;
  327. interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
  328. clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
  329. clock-names = "core", "iface";
  330. dmas = <&blsp_dma 3>, <&blsp_dma 2>;
  331. dma-names = "rx", "tx";
  332. status = "disabled";
  333. };
  334. blsp_dma: dma@7884000 {
  335. compatible = "qcom,bam-v1.7.0";
  336. reg = <0x07884000 0x23000>;
  337. interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
  338. clocks = <&gcc GCC_BLSP1_AHB_CLK>;
  339. clock-names = "bam_clk";
  340. #dma-cells = <1>;
  341. qcom,ee = <0>;
  342. status = "disabled";
  343. };
  344. blsp_spi1: spi@78b5000 {
  345. compatible = "qcom,spi-qup-v2.2.1";
  346. reg = <0x078b5000 0x500>;
  347. interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
  348. clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
  349. <&gcc GCC_BLSP1_AHB_CLK>;
  350. clock-names = "core", "iface";
  351. dmas = <&blsp_dma 5>, <&blsp_dma 4>;
  352. dma-names = "rx", "tx";
  353. pinctrl-names = "default", "sleep";
  354. pinctrl-0 = <&spi1_default>;
  355. pinctrl-1 = <&spi1_sleep>;
  356. #address-cells = <1>;
  357. #size-cells = <0>;
  358. status = "disabled";
  359. };
  360. blsp_spi2: spi@78b6000 {
  361. compatible = "qcom,spi-qup-v2.2.1";
  362. reg = <0x078b6000 0x500>;
  363. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  364. clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
  365. <&gcc GCC_BLSP1_AHB_CLK>;
  366. clock-names = "core", "iface";
  367. dmas = <&blsp_dma 7>, <&blsp_dma 6>;
  368. dma-names = "rx", "tx";
  369. pinctrl-names = "default", "sleep";
  370. pinctrl-0 = <&spi2_default>;
  371. pinctrl-1 = <&spi2_sleep>;
  372. #address-cells = <1>;
  373. #size-cells = <0>;
  374. status = "disabled";
  375. };
  376. blsp_spi3: spi@78b7000 {
  377. compatible = "qcom,spi-qup-v2.2.1";
  378. reg = <0x078b7000 0x500>;
  379. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  380. clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
  381. <&gcc GCC_BLSP1_AHB_CLK>;
  382. clock-names = "core", "iface";
  383. dmas = <&blsp_dma 9>, <&blsp_dma 8>;
  384. dma-names = "rx", "tx";
  385. pinctrl-names = "default", "sleep";
  386. pinctrl-0 = <&spi3_default>;
  387. pinctrl-1 = <&spi3_sleep>;
  388. #address-cells = <1>;
  389. #size-cells = <0>;
  390. status = "disabled";
  391. };
  392. blsp_spi4: spi@78b8000 {
  393. compatible = "qcom,spi-qup-v2.2.1";
  394. reg = <0x078b8000 0x500>;
  395. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  396. clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
  397. <&gcc GCC_BLSP1_AHB_CLK>;
  398. clock-names = "core", "iface";
  399. dmas = <&blsp_dma 11>, <&blsp_dma 10>;
  400. dma-names = "rx", "tx";
  401. pinctrl-names = "default", "sleep";
  402. pinctrl-0 = <&spi4_default>;
  403. pinctrl-1 = <&spi4_sleep>;
  404. #address-cells = <1>;
  405. #size-cells = <0>;
  406. status = "disabled";
  407. };
  408. blsp_spi5: spi@78b9000 {
  409. compatible = "qcom,spi-qup-v2.2.1";
  410. reg = <0x078b9000 0x500>;
  411. interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
  412. clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
  413. <&gcc GCC_BLSP1_AHB_CLK>;
  414. clock-names = "core", "iface";
  415. dmas = <&blsp_dma 13>, <&blsp_dma 12>;
  416. dma-names = "rx", "tx";
  417. pinctrl-names = "default", "sleep";
  418. pinctrl-0 = <&spi5_default>;
  419. pinctrl-1 = <&spi5_sleep>;
  420. #address-cells = <1>;
  421. #size-cells = <0>;
  422. status = "disabled";
  423. };
  424. blsp_spi6: spi@78ba000 {
  425. compatible = "qcom,spi-qup-v2.2.1";
  426. reg = <0x078ba000 0x500>;
  427. interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
  428. clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
  429. <&gcc GCC_BLSP1_AHB_CLK>;
  430. clock-names = "core", "iface";
  431. dmas = <&blsp_dma 15>, <&blsp_dma 14>;
  432. dma-names = "rx", "tx";
  433. pinctrl-names = "default", "sleep";
  434. pinctrl-0 = <&spi6_default>;
  435. pinctrl-1 = <&spi6_sleep>;
  436. #address-cells = <1>;
  437. #size-cells = <0>;
  438. status = "disabled";
  439. };
  440. blsp_i2c2: i2c@78b6000 {
  441. compatible = "qcom,i2c-qup-v2.2.1";
  442. reg = <0x078b6000 0x500>;
  443. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  444. clocks = <&gcc GCC_BLSP1_AHB_CLK>,
  445. <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
  446. clock-names = "iface", "core";
  447. pinctrl-names = "default", "sleep";
  448. pinctrl-0 = <&i2c2_default>;
  449. pinctrl-1 = <&i2c2_sleep>;
  450. #address-cells = <1>;
  451. #size-cells = <0>;
  452. status = "disabled";
  453. };
  454. blsp_i2c4: i2c@78b8000 {
  455. compatible = "qcom,i2c-qup-v2.2.1";
  456. reg = <0x078b8000 0x500>;
  457. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  458. clocks = <&gcc GCC_BLSP1_AHB_CLK>,
  459. <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
  460. clock-names = "iface", "core";
  461. pinctrl-names = "default", "sleep";
  462. pinctrl-0 = <&i2c4_default>;
  463. pinctrl-1 = <&i2c4_sleep>;
  464. #address-cells = <1>;
  465. #size-cells = <0>;
  466. status = "disabled";
  467. };
  468. blsp_i2c6: i2c@78ba000 {
  469. compatible = "qcom,i2c-qup-v2.2.1";
  470. reg = <0x078ba000 0x500>;
  471. interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
  472. clocks = <&gcc GCC_BLSP1_AHB_CLK>,
  473. <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>;
  474. clock-names = "iface", "core";
  475. pinctrl-names = "default", "sleep";
  476. pinctrl-0 = <&i2c6_default>;
  477. pinctrl-1 = <&i2c6_sleep>;
  478. #address-cells = <1>;
  479. #size-cells = <0>;
  480. status = "disabled";
  481. };
  482. lpass: lpass@7708000 {
  483. status = "disabled";
  484. compatible = "qcom,lpass-cpu-apq8016";
  485. clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
  486. <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
  487. <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>,
  488. <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
  489. <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
  490. <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
  491. <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>;
  492. clock-names = "ahbix-clk",
  493. "pcnoc-mport-clk",
  494. "pcnoc-sway-clk",
  495. "mi2s-bit-clk0",
  496. "mi2s-bit-clk1",
  497. "mi2s-bit-clk2",
  498. "mi2s-bit-clk3";
  499. #sound-dai-cells = <1>;
  500. interrupts = <0 160 IRQ_TYPE_LEVEL_HIGH>;
  501. interrupt-names = "lpass-irq-lpaif";
  502. reg = <0x07708000 0x10000>;
  503. reg-names = "lpass-lpaif";
  504. };
  505. lpass_codec: codec{
  506. compatible = "qcom,msm8916-wcd-digital-codec";
  507. reg = <0x0771c000 0x400>;
  508. clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
  509. <&gcc GCC_CODEC_DIGCODEC_CLK>;
  510. clock-names = "ahbix-clk", "mclk";
  511. #sound-dai-cells = <1>;
  512. };
  513. sdhc_1: sdhci@7824000 {
  514. compatible = "qcom,sdhci-msm-v4";
  515. reg = <0x07824900 0x11c>, <0x07824000 0x800>;
  516. reg-names = "hc_mem", "core_mem";
  517. interrupts = <0 123 IRQ_TYPE_LEVEL_HIGH>, <0 138 IRQ_TYPE_LEVEL_HIGH>;
  518. interrupt-names = "hc_irq", "pwr_irq";
  519. clocks = <&gcc GCC_SDCC1_APPS_CLK>,
  520. <&gcc GCC_SDCC1_AHB_CLK>,
  521. <&xo_board>;
  522. clock-names = "core", "iface", "xo";
  523. mmc-ddr-1_8v;
  524. bus-width = <8>;
  525. non-removable;
  526. status = "disabled";
  527. };
  528. sdhc_2: sdhci@7864000 {
  529. compatible = "qcom,sdhci-msm-v4";
  530. reg = <0x07864900 0x11c>, <0x07864000 0x800>;
  531. reg-names = "hc_mem", "core_mem";
  532. interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>, <0 221 IRQ_TYPE_LEVEL_HIGH>;
  533. interrupt-names = "hc_irq", "pwr_irq";
  534. clocks = <&gcc GCC_SDCC2_APPS_CLK>,
  535. <&gcc GCC_SDCC2_AHB_CLK>,
  536. <&xo_board>;
  537. clock-names = "core", "iface", "xo";
  538. bus-width = <4>;
  539. status = "disabled";
  540. };
  541. otg: usb@78d9000 {
  542. compatible = "qcom,ci-hdrc";
  543. reg = <0x78d9000 0x200>,
  544. <0x78d9200 0x200>;
  545. interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
  546. <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
  547. clocks = <&gcc GCC_USB_HS_AHB_CLK>,
  548. <&gcc GCC_USB_HS_SYSTEM_CLK>;
  549. clock-names = "iface", "core";
  550. assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
  551. assigned-clock-rates = <80000000>;
  552. resets = <&gcc GCC_USB_HS_BCR>;
  553. reset-names = "core";
  554. phy_type = "ulpi";
  555. dr_mode = "otg";
  556. ahb-burst-config = <0>;
  557. phy-names = "usb-phy";
  558. phys = <&usb_hs_phy>;
  559. status = "disabled";
  560. #reset-cells = <1>;
  561. ulpi {
  562. usb_hs_phy: phy {
  563. compatible = "qcom,usb-hs-phy-msm8916",
  564. "qcom,usb-hs-phy";
  565. #phy-cells = <0>;
  566. clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
  567. clock-names = "ref", "sleep";
  568. resets = <&gcc GCC_USB2A_PHY_BCR>, <&otg 0>;
  569. reset-names = "phy", "por";
  570. qcom,init-seq = /bits/ 8 <0x0 0x44
  571. 0x1 0x6b 0x2 0x24 0x3 0x13>;
  572. };
  573. };
  574. };
  575. intc: interrupt-controller@b000000 {
  576. compatible = "qcom,msm-qgic2";
  577. interrupt-controller;
  578. #interrupt-cells = <3>;
  579. reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
  580. };
  581. timer@b020000 {
  582. #address-cells = <1>;
  583. #size-cells = <1>;
  584. ranges;
  585. compatible = "arm,armv7-timer-mem";
  586. reg = <0xb020000 0x1000>;
  587. clock-frequency = <19200000>;
  588. frame@b021000 {
  589. frame-number = <0>;
  590. interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
  591. <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
  592. reg = <0xb021000 0x1000>,
  593. <0xb022000 0x1000>;
  594. };
  595. frame@b023000 {
  596. frame-number = <1>;
  597. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
  598. reg = <0xb023000 0x1000>;
  599. status = "disabled";
  600. };
  601. frame@b024000 {
  602. frame-number = <2>;
  603. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  604. reg = <0xb024000 0x1000>;
  605. status = "disabled";
  606. };
  607. frame@b025000 {
  608. frame-number = <3>;
  609. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
  610. reg = <0xb025000 0x1000>;
  611. status = "disabled";
  612. };
  613. frame@b026000 {
  614. frame-number = <4>;
  615. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
  616. reg = <0xb026000 0x1000>;
  617. status = "disabled";
  618. };
  619. frame@b027000 {
  620. frame-number = <5>;
  621. interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
  622. reg = <0xb027000 0x1000>;
  623. status = "disabled";
  624. };
  625. frame@b028000 {
  626. frame-number = <6>;
  627. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  628. reg = <0xb028000 0x1000>;
  629. status = "disabled";
  630. };
  631. };
  632. spmi_bus: spmi@200f000 {
  633. compatible = "qcom,spmi-pmic-arb";
  634. reg = <0x200f000 0x001000>,
  635. <0x2400000 0x400000>,
  636. <0x2c00000 0x400000>,
  637. <0x3800000 0x200000>,
  638. <0x200a000 0x002100>;
  639. reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
  640. interrupt-names = "periph_irq";
  641. interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
  642. qcom,ee = <0>;
  643. qcom,channel = <0>;
  644. #address-cells = <2>;
  645. #size-cells = <0>;
  646. interrupt-controller;
  647. #interrupt-cells = <4>;
  648. };
  649. rng@22000 {
  650. compatible = "qcom,prng";
  651. reg = <0x00022000 0x200>;
  652. clocks = <&gcc GCC_PRNG_AHB_CLK>;
  653. clock-names = "core";
  654. };
  655. qfprom: qfprom@5c000 {
  656. compatible = "qcom,qfprom";
  657. reg = <0x5c000 0x1000>;
  658. #address-cells = <1>;
  659. #size-cells = <1>;
  660. tsens_caldata: caldata@d0 {
  661. reg = <0xd0 0x8>;
  662. };
  663. tsens_calsel: calsel@ec {
  664. reg = <0xec 0x4>;
  665. };
  666. };
  667. tsens: thermal-sensor@4a8000 {
  668. compatible = "qcom,msm8916-tsens";
  669. reg = <0x4a8000 0x2000>;
  670. nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
  671. nvmem-cell-names = "calib", "calib_sel";
  672. #thermal-sensor-cells = <1>;
  673. };
  674. apps_iommu: iommu@1ef0000 {
  675. #address-cells = <1>;
  676. #size-cells = <1>;
  677. #iommu-cells = <1>;
  678. compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
  679. ranges = <0 0x1e20000 0x40000>;
  680. reg = <0x1ef0000 0x3000>;
  681. clocks = <&gcc GCC_SMMU_CFG_CLK>,
  682. <&gcc GCC_APSS_TCU_CLK>;
  683. clock-names = "iface", "bus";
  684. qcom,iommu-secure-id = <17>;
  685. // mdp_0:
  686. iommu-ctx@4000 {
  687. compatible = "qcom,msm-iommu-v1-ns";
  688. reg = <0x4000 0x1000>;
  689. interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
  690. };
  691. // venus_ns:
  692. iommu-ctx@5000 {
  693. compatible = "qcom,msm-iommu-v1-sec";
  694. reg = <0x5000 0x1000>;
  695. interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
  696. };
  697. };
  698. gpu_iommu: iommu@1f08000 {
  699. #address-cells = <1>;
  700. #size-cells = <1>;
  701. #iommu-cells = <1>;
  702. compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
  703. ranges = <0 0x1f08000 0x10000>;
  704. clocks = <&gcc GCC_SMMU_CFG_CLK>,
  705. <&gcc GCC_GFX_TCU_CLK>;
  706. clock-names = "iface", "bus";
  707. qcom,iommu-secure-id = <18>;
  708. // gfx3d_user:
  709. iommu-ctx@1000 {
  710. compatible = "qcom,msm-iommu-v1-ns";
  711. reg = <0x1000 0x1000>;
  712. interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
  713. };
  714. // gfx3d_priv:
  715. iommu-ctx@2000 {
  716. compatible = "qcom,msm-iommu-v1-ns";
  717. reg = <0x2000 0x1000>;
  718. interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
  719. };
  720. };
  721. gpu@1c00000 {
  722. compatible = "qcom,adreno-306.0", "qcom,adreno";
  723. reg = <0x01c00000 0x20000>;
  724. reg-names = "kgsl_3d0_reg_memory";
  725. interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
  726. interrupt-names = "kgsl_3d0_irq";
  727. clock-names =
  728. "core",
  729. "iface",
  730. "mem",
  731. "mem_iface",
  732. "alt_mem_iface",
  733. "gfx3d";
  734. clocks =
  735. <&gcc GCC_OXILI_GFX3D_CLK>,
  736. <&gcc GCC_OXILI_AHB_CLK>,
  737. <&gcc GCC_OXILI_GMEM_CLK>,
  738. <&gcc GCC_BIMC_GFX_CLK>,
  739. <&gcc GCC_BIMC_GPU_CLK>,
  740. <&gcc GFX3D_CLK_SRC>;
  741. power-domains = <&gcc OXILI_GDSC>;
  742. operating-points-v2 = <&gpu_opp_table>;
  743. iommus = <&gpu_iommu 1>, <&gpu_iommu 2>;
  744. };
  745. mdss: mdss@1a00000 {
  746. compatible = "qcom,mdss";
  747. reg = <0x1a00000 0x1000>,
  748. <0x1ac8000 0x3000>;
  749. reg-names = "mdss_phys", "vbif_phys";
  750. power-domains = <&gcc MDSS_GDSC>;
  751. clocks = <&gcc GCC_MDSS_AHB_CLK>,
  752. <&gcc GCC_MDSS_AXI_CLK>,
  753. <&gcc GCC_MDSS_VSYNC_CLK>;
  754. clock-names = "iface",
  755. "bus",
  756. "vsync";
  757. interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>;
  758. interrupt-controller;
  759. #interrupt-cells = <1>;
  760. #address-cells = <1>;
  761. #size-cells = <1>;
  762. ranges;
  763. mdp: mdp@1a01000 {
  764. compatible = "qcom,mdp5";
  765. reg = <0x1a01000 0x89000>;
  766. reg-names = "mdp_phys";
  767. interrupt-parent = <&mdss>;
  768. interrupts = <0 0>;
  769. clocks = <&gcc GCC_MDSS_AHB_CLK>,
  770. <&gcc GCC_MDSS_AXI_CLK>,
  771. <&gcc GCC_MDSS_MDP_CLK>,
  772. <&gcc GCC_MDSS_VSYNC_CLK>;
  773. clock-names = "iface",
  774. "bus",
  775. "core",
  776. "vsync";
  777. iommus = <&apps_iommu 4>;
  778. ports {
  779. #address-cells = <1>;
  780. #size-cells = <0>;
  781. port@0 {
  782. reg = <0>;
  783. mdp5_intf1_out: endpoint {
  784. remote-endpoint = <&dsi0_in>;
  785. };
  786. };
  787. };
  788. };
  789. dsi0: dsi@1a98000 {
  790. compatible = "qcom,mdss-dsi-ctrl";
  791. reg = <0x1a98000 0x25c>;
  792. reg-names = "dsi_ctrl";
  793. interrupt-parent = <&mdss>;
  794. interrupts = <4 0>;
  795. assigned-clocks = <&gcc BYTE0_CLK_SRC>,
  796. <&gcc PCLK0_CLK_SRC>;
  797. assigned-clock-parents = <&dsi_phy0 0>,
  798. <&dsi_phy0 1>;
  799. clocks = <&gcc GCC_MDSS_MDP_CLK>,
  800. <&gcc GCC_MDSS_AHB_CLK>,
  801. <&gcc GCC_MDSS_AXI_CLK>,
  802. <&gcc GCC_MDSS_BYTE0_CLK>,
  803. <&gcc GCC_MDSS_PCLK0_CLK>,
  804. <&gcc GCC_MDSS_ESC0_CLK>;
  805. clock-names = "mdp_core",
  806. "iface",
  807. "bus",
  808. "byte",
  809. "pixel",
  810. "core";
  811. phys = <&dsi_phy0>;
  812. phy-names = "dsi-phy";
  813. ports {
  814. #address-cells = <1>;
  815. #size-cells = <0>;
  816. port@0 {
  817. reg = <0>;
  818. dsi0_in: endpoint {
  819. remote-endpoint = <&mdp5_intf1_out>;
  820. };
  821. };
  822. port@1 {
  823. reg = <1>;
  824. dsi0_out: endpoint {
  825. };
  826. };
  827. };
  828. };
  829. dsi_phy0: dsi-phy@1a98300 {
  830. compatible = "qcom,dsi-phy-28nm-lp";
  831. reg = <0x1a98300 0xd4>,
  832. <0x1a98500 0x280>,
  833. <0x1a98780 0x30>;
  834. reg-names = "dsi_pll",
  835. "dsi_phy",
  836. "dsi_phy_regulator";
  837. #clock-cells = <1>;
  838. #phy-cells = <0>;
  839. clocks = <&gcc GCC_MDSS_AHB_CLK>;
  840. clock-names = "iface";
  841. };
  842. };
  843. hexagon@4080000 {
  844. compatible = "qcom,q6v5-pil";
  845. reg = <0x04080000 0x100>,
  846. <0x04020000 0x040>;
  847. reg-names = "qdsp6", "rmb";
  848. interrupts-extended = <&intc 0 24 1>,
  849. <&hexagon_smp2p_in 0 0>,
  850. <&hexagon_smp2p_in 1 0>,
  851. <&hexagon_smp2p_in 2 0>,
  852. <&hexagon_smp2p_in 3 0>;
  853. interrupt-names = "wdog", "fatal", "ready",
  854. "handover", "stop-ack";
  855. clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
  856. <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
  857. <&gcc GCC_BOOT_ROM_AHB_CLK>,
  858. <&xo_board>;
  859. clock-names = "iface", "bus", "mem", "xo";
  860. qcom,smem-states = <&hexagon_smp2p_out 0>;
  861. qcom,smem-state-names = "stop";
  862. resets = <&scm 0>;
  863. reset-names = "mss_restart";
  864. cx-supply = <&pm8916_s1>;
  865. mx-supply = <&pm8916_l3>;
  866. pll-supply = <&pm8916_l7>;
  867. qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
  868. status = "disabled";
  869. mba {
  870. memory-region = <&mba_mem>;
  871. };
  872. mpss {
  873. memory-region = <&mpss_mem>;
  874. };
  875. smd-edge {
  876. interrupts = <0 25 IRQ_TYPE_EDGE_RISING>;
  877. qcom,smd-edge = <0>;
  878. qcom,ipc = <&apcs 8 12>;
  879. qcom,remote-pid = <1>;
  880. label = "hexagon";
  881. };
  882. };
  883. pronto: wcnss@a21b000 {
  884. compatible = "qcom,pronto-v2-pil", "qcom,pronto";
  885. reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
  886. reg-names = "ccu", "dxe", "pmu";
  887. memory-region = <&wcnss_mem>;
  888. interrupts-extended = <&intc 0 149 IRQ_TYPE_EDGE_RISING>,
  889. <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
  890. <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
  891. <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
  892. <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
  893. interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
  894. vddmx-supply = <&pm8916_l3>;
  895. vddpx-supply = <&pm8916_l7>;
  896. qcom,state = <&wcnss_smp2p_out 0>;
  897. qcom,state-names = "stop";
  898. pinctrl-names = "default";
  899. pinctrl-0 = <&wcnss_pin_a>;
  900. status = "disabled";
  901. iris {
  902. compatible = "qcom,wcn3620";
  903. clocks = <&rpmcc RPM_SMD_RF_CLK2>;
  904. clock-names = "xo";
  905. vddxo-supply = <&pm8916_l7>;
  906. vddrfa-supply = <&pm8916_s3>;
  907. vddpa-supply = <&pm8916_l9>;
  908. vdddig-supply = <&pm8916_l5>;
  909. };
  910. smd-edge {
  911. interrupts = <0 142 1>;
  912. qcom,ipc = <&apcs 8 17>;
  913. qcom,smd-edge = <6>;
  914. qcom,remote-pid = <4>;
  915. label = "pronto";
  916. wcnss {
  917. compatible = "qcom,wcnss";
  918. qcom,smd-channels = "WCNSS_CTRL";
  919. qcom,mmio = <&pronto>;
  920. bt {
  921. compatible = "qcom,wcnss-bt";
  922. };
  923. wifi {
  924. compatible = "qcom,wcnss-wlan";
  925. interrupts = <0 145 IRQ_TYPE_LEVEL_HIGH>,
  926. <0 146 IRQ_TYPE_LEVEL_HIGH>;
  927. interrupt-names = "tx", "rx";
  928. qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
  929. qcom,smem-state-names = "tx-enable", "tx-rings-empty";
  930. };
  931. };
  932. };
  933. };
  934. tpiu@820000 {
  935. compatible = "arm,coresight-tpiu", "arm,primecell";
  936. reg = <0x820000 0x1000>;
  937. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  938. clock-names = "apb_pclk", "atclk";
  939. in-ports {
  940. port {
  941. tpiu_in: endpoint {
  942. remote-endpoint = <&replicator_out1>;
  943. };
  944. };
  945. };
  946. };
  947. funnel@821000 {
  948. compatible = "arm,coresight-funnel", "arm,primecell";
  949. reg = <0x821000 0x1000>;
  950. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  951. clock-names = "apb_pclk", "atclk";
  952. in-ports {
  953. #address-cells = <1>;
  954. #size-cells = <0>;
  955. /*
  956. * Not described input ports:
  957. * 0 - connected to Resource and Power Manger CPU ETM
  958. * 1 - not-connected
  959. * 2 - connected to Modem CPU ETM
  960. * 3 - not-connected
  961. * 5 - not-connected
  962. * 6 - connected trought funnel to Wireless CPU ETM
  963. * 7 - connected to STM component
  964. */
  965. port@4 {
  966. reg = <4>;
  967. funnel0_in4: endpoint {
  968. remote-endpoint = <&funnel1_out>;
  969. };
  970. };
  971. };
  972. out-ports {
  973. port {
  974. funnel0_out: endpoint {
  975. remote-endpoint = <&etf_in>;
  976. };
  977. };
  978. };
  979. };
  980. replicator@824000 {
  981. compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
  982. reg = <0x824000 0x1000>;
  983. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  984. clock-names = "apb_pclk", "atclk";
  985. out-ports {
  986. #address-cells = <1>;
  987. #size-cells = <0>;
  988. port@0 {
  989. reg = <0>;
  990. replicator_out0: endpoint {
  991. remote-endpoint = <&etr_in>;
  992. };
  993. };
  994. port@1 {
  995. reg = <1>;
  996. replicator_out1: endpoint {
  997. remote-endpoint = <&tpiu_in>;
  998. };
  999. };
  1000. };
  1001. in-ports {
  1002. port {
  1003. replicator_in: endpoint {
  1004. remote-endpoint = <&etf_out>;
  1005. };
  1006. };
  1007. };
  1008. };
  1009. etf@825000 {
  1010. compatible = "arm,coresight-tmc", "arm,primecell";
  1011. reg = <0x825000 0x1000>;
  1012. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  1013. clock-names = "apb_pclk", "atclk";
  1014. in-ports {
  1015. port {
  1016. etf_in: endpoint {
  1017. remote-endpoint = <&funnel0_out>;
  1018. };
  1019. };
  1020. };
  1021. out-ports {
  1022. port {
  1023. etf_out: endpoint {
  1024. remote-endpoint = <&replicator_in>;
  1025. };
  1026. };
  1027. };
  1028. };
  1029. etr@826000 {
  1030. compatible = "arm,coresight-tmc", "arm,primecell";
  1031. reg = <0x826000 0x1000>;
  1032. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  1033. clock-names = "apb_pclk", "atclk";
  1034. in-ports {
  1035. port {
  1036. etr_in: endpoint {
  1037. remote-endpoint = <&replicator_out0>;
  1038. };
  1039. };
  1040. };
  1041. };
  1042. funnel@841000 { /* APSS funnel only 4 inputs are used */
  1043. compatible = "arm,coresight-funnel", "arm,primecell";
  1044. reg = <0x841000 0x1000>;
  1045. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  1046. clock-names = "apb_pclk", "atclk";
  1047. in-ports {
  1048. #address-cells = <1>;
  1049. #size-cells = <0>;
  1050. port@0 {
  1051. reg = <0>;
  1052. funnel1_in0: endpoint {
  1053. remote-endpoint = <&etm0_out>;
  1054. };
  1055. };
  1056. port@1 {
  1057. reg = <1>;
  1058. funnel1_in1: endpoint {
  1059. remote-endpoint = <&etm1_out>;
  1060. };
  1061. };
  1062. port@2 {
  1063. reg = <2>;
  1064. funnel1_in2: endpoint {
  1065. remote-endpoint = <&etm2_out>;
  1066. };
  1067. };
  1068. port@3 {
  1069. reg = <3>;
  1070. funnel1_in3: endpoint {
  1071. remote-endpoint = <&etm3_out>;
  1072. };
  1073. };
  1074. };
  1075. out-ports {
  1076. port {
  1077. funnel1_out: endpoint {
  1078. remote-endpoint = <&funnel0_in4>;
  1079. };
  1080. };
  1081. };
  1082. };
  1083. debug@850000 {
  1084. compatible = "arm,coresight-cpu-debug","arm,primecell";
  1085. reg = <0x850000 0x1000>;
  1086. clocks = <&rpmcc RPM_QDSS_CLK>;
  1087. clock-names = "apb_pclk";
  1088. cpu = <&CPU0>;
  1089. };
  1090. debug@852000 {
  1091. compatible = "arm,coresight-cpu-debug","arm,primecell";
  1092. reg = <0x852000 0x1000>;
  1093. clocks = <&rpmcc RPM_QDSS_CLK>;
  1094. clock-names = "apb_pclk";
  1095. cpu = <&CPU1>;
  1096. };
  1097. debug@854000 {
  1098. compatible = "arm,coresight-cpu-debug","arm,primecell";
  1099. reg = <0x854000 0x1000>;
  1100. clocks = <&rpmcc RPM_QDSS_CLK>;
  1101. clock-names = "apb_pclk";
  1102. cpu = <&CPU2>;
  1103. };
  1104. debug@856000 {
  1105. compatible = "arm,coresight-cpu-debug","arm,primecell";
  1106. reg = <0x856000 0x1000>;
  1107. clocks = <&rpmcc RPM_QDSS_CLK>;
  1108. clock-names = "apb_pclk";
  1109. cpu = <&CPU3>;
  1110. };
  1111. etm@85c000 {
  1112. compatible = "arm,coresight-etm4x", "arm,primecell";
  1113. reg = <0x85c000 0x1000>;
  1114. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  1115. clock-names = "apb_pclk", "atclk";
  1116. cpu = <&CPU0>;
  1117. out-ports {
  1118. port {
  1119. etm0_out: endpoint {
  1120. remote-endpoint = <&funnel1_in0>;
  1121. };
  1122. };
  1123. };
  1124. };
  1125. etm@85d000 {
  1126. compatible = "arm,coresight-etm4x", "arm,primecell";
  1127. reg = <0x85d000 0x1000>;
  1128. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  1129. clock-names = "apb_pclk", "atclk";
  1130. cpu = <&CPU1>;
  1131. out-ports {
  1132. port {
  1133. etm1_out: endpoint {
  1134. remote-endpoint = <&funnel1_in1>;
  1135. };
  1136. };
  1137. };
  1138. };
  1139. etm@85e000 {
  1140. compatible = "arm,coresight-etm4x", "arm,primecell";
  1141. reg = <0x85e000 0x1000>;
  1142. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  1143. clock-names = "apb_pclk", "atclk";
  1144. cpu = <&CPU2>;
  1145. out-ports {
  1146. port {
  1147. etm2_out: endpoint {
  1148. remote-endpoint = <&funnel1_in2>;
  1149. };
  1150. };
  1151. };
  1152. };
  1153. etm@85f000 {
  1154. compatible = "arm,coresight-etm4x", "arm,primecell";
  1155. reg = <0x85f000 0x1000>;
  1156. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  1157. clock-names = "apb_pclk", "atclk";
  1158. cpu = <&CPU3>;
  1159. out-ports {
  1160. port {
  1161. etm3_out: endpoint {
  1162. remote-endpoint = <&funnel1_in3>;
  1163. };
  1164. };
  1165. };
  1166. };
  1167. venus: video-codec@1d00000 {
  1168. compatible = "qcom,msm8916-venus";
  1169. reg = <0x01d00000 0xff000>;
  1170. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
  1171. power-domains = <&gcc VENUS_GDSC>;
  1172. clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
  1173. <&gcc GCC_VENUS0_AHB_CLK>,
  1174. <&gcc GCC_VENUS0_AXI_CLK>;
  1175. clock-names = "core", "iface", "bus";
  1176. iommus = <&apps_iommu 5>;
  1177. memory-region = <&venus_mem>;
  1178. status = "okay";
  1179. video-decoder {
  1180. compatible = "venus-decoder";
  1181. };
  1182. video-encoder {
  1183. compatible = "venus-encoder";
  1184. };
  1185. };
  1186. };
  1187. smd {
  1188. compatible = "qcom,smd";
  1189. rpm {
  1190. interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
  1191. qcom,ipc = <&apcs 8 0>;
  1192. qcom,smd-edge = <15>;
  1193. rpm_requests {
  1194. compatible = "qcom,rpm-msm8916";
  1195. qcom,smd-channels = "rpm_requests";
  1196. rpmcc: qcom,rpmcc {
  1197. compatible = "qcom,rpmcc-msm8916";
  1198. #clock-cells = <1>;
  1199. };
  1200. smd_rpm_regulators: pm8916-regulators {
  1201. compatible = "qcom,rpm-pm8916-regulators";
  1202. pm8916_s1: s1 {};
  1203. pm8916_s3: s3 {};
  1204. pm8916_s4: s4 {};
  1205. pm8916_l1: l1 {};
  1206. pm8916_l2: l2 {};
  1207. pm8916_l3: l3 {};
  1208. pm8916_l4: l4 {};
  1209. pm8916_l5: l5 {};
  1210. pm8916_l6: l6 {};
  1211. pm8916_l7: l7 {};
  1212. pm8916_l8: l8 {};
  1213. pm8916_l9: l9 {};
  1214. pm8916_l10: l10 {};
  1215. pm8916_l11: l11 {};
  1216. pm8916_l12: l12 {};
  1217. pm8916_l13: l13 {};
  1218. pm8916_l14: l14 {};
  1219. pm8916_l15: l15 {};
  1220. pm8916_l16: l16 {};
  1221. pm8916_l17: l17 {};
  1222. pm8916_l18: l18 {};
  1223. };
  1224. };
  1225. };
  1226. };
  1227. hexagon-smp2p {
  1228. compatible = "qcom,smp2p";
  1229. qcom,smem = <435>, <428>;
  1230. interrupts = <0 27 IRQ_TYPE_EDGE_RISING>;
  1231. qcom,ipc = <&apcs 8 14>;
  1232. qcom,local-pid = <0>;
  1233. qcom,remote-pid = <1>;
  1234. hexagon_smp2p_out: master-kernel {
  1235. qcom,entry-name = "master-kernel";
  1236. #qcom,smem-state-cells = <1>;
  1237. };
  1238. hexagon_smp2p_in: slave-kernel {
  1239. qcom,entry-name = "slave-kernel";
  1240. interrupt-controller;
  1241. #interrupt-cells = <2>;
  1242. };
  1243. };
  1244. wcnss-smp2p {
  1245. compatible = "qcom,smp2p";
  1246. qcom,smem = <451>, <431>;
  1247. interrupts = <0 143 IRQ_TYPE_EDGE_RISING>;
  1248. qcom,ipc = <&apcs 8 18>;
  1249. qcom,local-pid = <0>;
  1250. qcom,remote-pid = <4>;
  1251. wcnss_smp2p_out: master-kernel {
  1252. qcom,entry-name = "master-kernel";
  1253. #qcom,smem-state-cells = <1>;
  1254. };
  1255. wcnss_smp2p_in: slave-kernel {
  1256. qcom,entry-name = "slave-kernel";
  1257. interrupt-controller;
  1258. #interrupt-cells = <2>;
  1259. };
  1260. };
  1261. smsm {
  1262. compatible = "qcom,smsm";
  1263. #address-cells = <1>;
  1264. #size-cells = <0>;
  1265. qcom,ipc-1 = <&apcs 8 13>;
  1266. qcom,ipc-3 = <&apcs 8 19>;
  1267. apps_smsm: apps@0 {
  1268. reg = <0>;
  1269. #qcom,smem-state-cells = <1>;
  1270. };
  1271. hexagon_smsm: hexagon@1 {
  1272. reg = <1>;
  1273. interrupts = <0 26 IRQ_TYPE_EDGE_RISING>;
  1274. interrupt-controller;
  1275. #interrupt-cells = <2>;
  1276. };
  1277. wcnss_smsm: wcnss@6 {
  1278. reg = <6>;
  1279. interrupts = <0 144 IRQ_TYPE_EDGE_RISING>;
  1280. interrupt-controller;
  1281. #interrupt-cells = <2>;
  1282. };
  1283. };
  1284. };
  1285. #include "msm8916-pins.dtsi"