msm8916.dtsi 48 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
  4. */
  5. #include <dt-bindings/arm/coresight-cti-dt.h>
  6. #include <dt-bindings/clock/qcom,gcc-msm8916.h>
  7. #include <dt-bindings/clock/qcom,rpmcc.h>
  8. #include <dt-bindings/interconnect/qcom,msm8916.h>
  9. #include <dt-bindings/interrupt-controller/arm-gic.h>
  10. #include <dt-bindings/power/qcom-rpmpd.h>
  11. #include <dt-bindings/reset/qcom,gcc-msm8916.h>
  12. #include <dt-bindings/thermal/thermal.h>
  13. / {
  14. interrupt-parent = <&intc>;
  15. #address-cells = <2>;
  16. #size-cells = <2>;
  17. aliases {
  18. mmc0 = &sdhc_1; /* SDC1 eMMC slot */
  19. mmc1 = &sdhc_2; /* SDC2 SD card slot */
  20. };
  21. chosen { };
  22. memory@80000000 {
  23. device_type = "memory";
  24. /* We expect the bootloader to fill in the reg */
  25. reg = <0 0x80000000 0 0>;
  26. };
  27. reserved-memory {
  28. #address-cells = <2>;
  29. #size-cells = <2>;
  30. ranges;
  31. tz-apps@86000000 {
  32. reg = <0x0 0x86000000 0x0 0x300000>;
  33. no-map;
  34. };
  35. smem@86300000 {
  36. compatible = "qcom,smem";
  37. reg = <0x0 0x86300000 0x0 0x100000>;
  38. no-map;
  39. hwlocks = <&tcsr_mutex 3>;
  40. qcom,rpm-msg-ram = <&rpm_msg_ram>;
  41. };
  42. hypervisor@86400000 {
  43. reg = <0x0 0x86400000 0x0 0x100000>;
  44. no-map;
  45. };
  46. tz@86500000 {
  47. reg = <0x0 0x86500000 0x0 0x180000>;
  48. no-map;
  49. };
  50. reserved@86680000 {
  51. reg = <0x0 0x86680000 0x0 0x80000>;
  52. no-map;
  53. };
  54. rmtfs@86700000 {
  55. compatible = "qcom,rmtfs-mem";
  56. reg = <0x0 0x86700000 0x0 0xe0000>;
  57. no-map;
  58. qcom,client-id = <1>;
  59. };
  60. rfsa@867e0000 {
  61. reg = <0x0 0x867e0000 0x0 0x20000>;
  62. no-map;
  63. };
  64. mpss_mem: mpss@86800000 {
  65. reg = <0x0 0x86800000 0x0 0x2b00000>;
  66. no-map;
  67. };
  68. wcnss_mem: wcnss@89300000 {
  69. reg = <0x0 0x89300000 0x0 0x600000>;
  70. no-map;
  71. };
  72. venus_mem: venus@89900000 {
  73. reg = <0x0 0x89900000 0x0 0x600000>;
  74. no-map;
  75. };
  76. mba_mem: mba@8ea00000 {
  77. no-map;
  78. reg = <0 0x8ea00000 0 0x100000>;
  79. };
  80. };
  81. clocks {
  82. xo_board: xo-board {
  83. compatible = "fixed-clock";
  84. #clock-cells = <0>;
  85. clock-frequency = <19200000>;
  86. };
  87. sleep_clk: sleep-clk {
  88. compatible = "fixed-clock";
  89. #clock-cells = <0>;
  90. clock-frequency = <32768>;
  91. };
  92. };
  93. cpus {
  94. #address-cells = <1>;
  95. #size-cells = <0>;
  96. CPU0: cpu@0 {
  97. device_type = "cpu";
  98. compatible = "arm,cortex-a53";
  99. reg = <0x0>;
  100. next-level-cache = <&L2_0>;
  101. enable-method = "psci";
  102. clocks = <&apcs>;
  103. operating-points-v2 = <&cpu_opp_table>;
  104. #cooling-cells = <2>;
  105. power-domains = <&CPU_PD0>;
  106. power-domain-names = "psci";
  107. qcom,acc = <&cpu0_acc>;
  108. qcom,saw = <&cpu0_saw>;
  109. };
  110. CPU1: cpu@1 {
  111. device_type = "cpu";
  112. compatible = "arm,cortex-a53";
  113. reg = <0x1>;
  114. next-level-cache = <&L2_0>;
  115. enable-method = "psci";
  116. clocks = <&apcs>;
  117. operating-points-v2 = <&cpu_opp_table>;
  118. #cooling-cells = <2>;
  119. power-domains = <&CPU_PD1>;
  120. power-domain-names = "psci";
  121. qcom,acc = <&cpu1_acc>;
  122. qcom,saw = <&cpu1_saw>;
  123. };
  124. CPU2: cpu@2 {
  125. device_type = "cpu";
  126. compatible = "arm,cortex-a53";
  127. reg = <0x2>;
  128. next-level-cache = <&L2_0>;
  129. enable-method = "psci";
  130. clocks = <&apcs>;
  131. operating-points-v2 = <&cpu_opp_table>;
  132. #cooling-cells = <2>;
  133. power-domains = <&CPU_PD2>;
  134. power-domain-names = "psci";
  135. qcom,acc = <&cpu2_acc>;
  136. qcom,saw = <&cpu2_saw>;
  137. };
  138. CPU3: cpu@3 {
  139. device_type = "cpu";
  140. compatible = "arm,cortex-a53";
  141. reg = <0x3>;
  142. next-level-cache = <&L2_0>;
  143. enable-method = "psci";
  144. clocks = <&apcs>;
  145. operating-points-v2 = <&cpu_opp_table>;
  146. #cooling-cells = <2>;
  147. power-domains = <&CPU_PD3>;
  148. power-domain-names = "psci";
  149. qcom,acc = <&cpu3_acc>;
  150. qcom,saw = <&cpu3_saw>;
  151. };
  152. L2_0: l2-cache {
  153. compatible = "cache";
  154. cache-level = <2>;
  155. };
  156. idle-states {
  157. entry-method = "psci";
  158. CPU_SLEEP_0: cpu-sleep-0 {
  159. compatible = "arm,idle-state";
  160. idle-state-name = "standalone-power-collapse";
  161. arm,psci-suspend-param = <0x40000002>;
  162. entry-latency-us = <130>;
  163. exit-latency-us = <150>;
  164. min-residency-us = <2000>;
  165. local-timer-stop;
  166. };
  167. };
  168. domain-idle-states {
  169. CLUSTER_RET: cluster-retention {
  170. compatible = "domain-idle-state";
  171. arm,psci-suspend-param = <0x41000012>;
  172. entry-latency-us = <500>;
  173. exit-latency-us = <500>;
  174. min-residency-us = <2000>;
  175. };
  176. CLUSTER_PWRDN: cluster-gdhs {
  177. compatible = "domain-idle-state";
  178. arm,psci-suspend-param = <0x41000032>;
  179. entry-latency-us = <2000>;
  180. exit-latency-us = <2000>;
  181. min-residency-us = <6000>;
  182. };
  183. };
  184. };
  185. cpu_opp_table: opp-table-cpu {
  186. compatible = "operating-points-v2";
  187. opp-shared;
  188. opp-200000000 {
  189. opp-hz = /bits/ 64 <200000000>;
  190. };
  191. opp-400000000 {
  192. opp-hz = /bits/ 64 <400000000>;
  193. };
  194. opp-800000000 {
  195. opp-hz = /bits/ 64 <800000000>;
  196. };
  197. opp-998400000 {
  198. opp-hz = /bits/ 64 <998400000>;
  199. };
  200. };
  201. firmware {
  202. scm: scm {
  203. compatible = "qcom,scm-msm8916", "qcom,scm";
  204. clocks = <&gcc GCC_CRYPTO_CLK>,
  205. <&gcc GCC_CRYPTO_AXI_CLK>,
  206. <&gcc GCC_CRYPTO_AHB_CLK>;
  207. clock-names = "core", "bus", "iface";
  208. #reset-cells = <1>;
  209. qcom,dload-mode = <&tcsr 0x6100>;
  210. };
  211. };
  212. pmu {
  213. compatible = "arm,cortex-a53-pmu";
  214. interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  215. };
  216. psci {
  217. compatible = "arm,psci-1.0";
  218. method = "smc";
  219. CPU_PD0: power-domain-cpu0 {
  220. #power-domain-cells = <0>;
  221. power-domains = <&CLUSTER_PD>;
  222. domain-idle-states = <&CPU_SLEEP_0>;
  223. };
  224. CPU_PD1: power-domain-cpu1 {
  225. #power-domain-cells = <0>;
  226. power-domains = <&CLUSTER_PD>;
  227. domain-idle-states = <&CPU_SLEEP_0>;
  228. };
  229. CPU_PD2: power-domain-cpu2 {
  230. #power-domain-cells = <0>;
  231. power-domains = <&CLUSTER_PD>;
  232. domain-idle-states = <&CPU_SLEEP_0>;
  233. };
  234. CPU_PD3: power-domain-cpu3 {
  235. #power-domain-cells = <0>;
  236. power-domains = <&CLUSTER_PD>;
  237. domain-idle-states = <&CPU_SLEEP_0>;
  238. };
  239. CLUSTER_PD: power-domain-cluster {
  240. #power-domain-cells = <0>;
  241. domain-idle-states = <&CLUSTER_RET>, <&CLUSTER_PWRDN>;
  242. };
  243. };
  244. smd {
  245. compatible = "qcom,smd";
  246. rpm {
  247. interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
  248. qcom,ipc = <&apcs 8 0>;
  249. qcom,smd-edge = <15>;
  250. rpm_requests: rpm-requests {
  251. compatible = "qcom,rpm-msm8916";
  252. qcom,smd-channels = "rpm_requests";
  253. rpmcc: clock-controller {
  254. compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
  255. #clock-cells = <1>;
  256. clocks = <&xo_board>;
  257. clock-names = "xo";
  258. };
  259. rpmpd: power-controller {
  260. compatible = "qcom,msm8916-rpmpd";
  261. #power-domain-cells = <1>;
  262. operating-points-v2 = <&rpmpd_opp_table>;
  263. rpmpd_opp_table: opp-table {
  264. compatible = "operating-points-v2";
  265. rpmpd_opp_ret: opp1 {
  266. opp-level = <1>;
  267. };
  268. rpmpd_opp_svs_krait: opp2 {
  269. opp-level = <2>;
  270. };
  271. rpmpd_opp_svs_soc: opp3 {
  272. opp-level = <3>;
  273. };
  274. rpmpd_opp_nom: opp4 {
  275. opp-level = <4>;
  276. };
  277. rpmpd_opp_turbo: opp5 {
  278. opp-level = <5>;
  279. };
  280. rpmpd_opp_super_turbo: opp6 {
  281. opp-level = <6>;
  282. };
  283. };
  284. };
  285. };
  286. };
  287. };
  288. smp2p-hexagon {
  289. compatible = "qcom,smp2p";
  290. qcom,smem = <435>, <428>;
  291. interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
  292. qcom,ipc = <&apcs 8 14>;
  293. qcom,local-pid = <0>;
  294. qcom,remote-pid = <1>;
  295. hexagon_smp2p_out: master-kernel {
  296. qcom,entry-name = "master-kernel";
  297. #qcom,smem-state-cells = <1>;
  298. };
  299. hexagon_smp2p_in: slave-kernel {
  300. qcom,entry-name = "slave-kernel";
  301. interrupt-controller;
  302. #interrupt-cells = <2>;
  303. };
  304. };
  305. smp2p-wcnss {
  306. compatible = "qcom,smp2p";
  307. qcom,smem = <451>, <431>;
  308. interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
  309. qcom,ipc = <&apcs 8 18>;
  310. qcom,local-pid = <0>;
  311. qcom,remote-pid = <4>;
  312. wcnss_smp2p_out: master-kernel {
  313. qcom,entry-name = "master-kernel";
  314. #qcom,smem-state-cells = <1>;
  315. };
  316. wcnss_smp2p_in: slave-kernel {
  317. qcom,entry-name = "slave-kernel";
  318. interrupt-controller;
  319. #interrupt-cells = <2>;
  320. };
  321. };
  322. smsm {
  323. compatible = "qcom,smsm";
  324. #address-cells = <1>;
  325. #size-cells = <0>;
  326. qcom,ipc-1 = <&apcs 8 13>;
  327. qcom,ipc-3 = <&apcs 8 19>;
  328. apps_smsm: apps@0 {
  329. reg = <0>;
  330. #qcom,smem-state-cells = <1>;
  331. };
  332. hexagon_smsm: hexagon@1 {
  333. reg = <1>;
  334. interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
  335. interrupt-controller;
  336. #interrupt-cells = <2>;
  337. };
  338. wcnss_smsm: wcnss@6 {
  339. reg = <6>;
  340. interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
  341. interrupt-controller;
  342. #interrupt-cells = <2>;
  343. };
  344. };
  345. soc: soc@0 {
  346. #address-cells = <1>;
  347. #size-cells = <1>;
  348. ranges = <0 0 0 0xffffffff>;
  349. compatible = "simple-bus";
  350. rng@22000 {
  351. compatible = "qcom,prng";
  352. reg = <0x00022000 0x200>;
  353. clocks = <&gcc GCC_PRNG_AHB_CLK>;
  354. clock-names = "core";
  355. };
  356. restart@4ab000 {
  357. compatible = "qcom,pshold";
  358. reg = <0x004ab000 0x4>;
  359. };
  360. qfprom: qfprom@5c000 {
  361. compatible = "qcom,msm8916-qfprom", "qcom,qfprom";
  362. reg = <0x0005c000 0x1000>;
  363. #address-cells = <1>;
  364. #size-cells = <1>;
  365. tsens_caldata: caldata@d0 {
  366. reg = <0xd0 0x8>;
  367. };
  368. tsens_calsel: calsel@ec {
  369. reg = <0xec 0x4>;
  370. };
  371. };
  372. rpm_msg_ram: sram@60000 {
  373. compatible = "qcom,rpm-msg-ram";
  374. reg = <0x00060000 0x8000>;
  375. };
  376. sram@290000 {
  377. compatible = "qcom,msm8916-rpm-stats";
  378. reg = <0x00290000 0x10000>;
  379. };
  380. bimc: interconnect@400000 {
  381. compatible = "qcom,msm8916-bimc";
  382. reg = <0x00400000 0x62000>;
  383. #interconnect-cells = <1>;
  384. clock-names = "bus", "bus_a";
  385. clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
  386. <&rpmcc RPM_SMD_BIMC_A_CLK>;
  387. };
  388. tsens: thermal-sensor@4a9000 {
  389. compatible = "qcom,msm8916-tsens", "qcom,tsens-v0_1";
  390. reg = <0x004a9000 0x1000>, /* TM */
  391. <0x004a8000 0x1000>; /* SROT */
  392. nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
  393. nvmem-cell-names = "calib", "calib_sel";
  394. #qcom,sensors = <5>;
  395. interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
  396. interrupt-names = "uplow";
  397. #thermal-sensor-cells = <1>;
  398. };
  399. pcnoc: interconnect@500000 {
  400. compatible = "qcom,msm8916-pcnoc";
  401. reg = <0x00500000 0x11000>;
  402. #interconnect-cells = <1>;
  403. clock-names = "bus", "bus_a";
  404. clocks = <&rpmcc RPM_SMD_PCNOC_CLK>,
  405. <&rpmcc RPM_SMD_PCNOC_A_CLK>;
  406. };
  407. snoc: interconnect@580000 {
  408. compatible = "qcom,msm8916-snoc";
  409. reg = <0x00580000 0x14000>;
  410. #interconnect-cells = <1>;
  411. clock-names = "bus", "bus_a";
  412. clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
  413. <&rpmcc RPM_SMD_SNOC_A_CLK>;
  414. };
  415. stm: stm@802000 {
  416. compatible = "arm,coresight-stm", "arm,primecell";
  417. reg = <0x00802000 0x1000>,
  418. <0x09280000 0x180000>;
  419. reg-names = "stm-base", "stm-stimulus-base";
  420. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  421. clock-names = "apb_pclk", "atclk";
  422. status = "disabled";
  423. out-ports {
  424. port {
  425. stm_out: endpoint {
  426. remote-endpoint = <&funnel0_in7>;
  427. };
  428. };
  429. };
  430. };
  431. /* System CTIs */
  432. /* CTI 0 - TMC connections */
  433. cti0: cti@810000 {
  434. compatible = "arm,coresight-cti", "arm,primecell";
  435. reg = <0x00810000 0x1000>;
  436. clocks = <&rpmcc RPM_QDSS_CLK>;
  437. clock-names = "apb_pclk";
  438. status = "disabled";
  439. };
  440. /* CTI 1 - TPIU connections */
  441. cti1: cti@811000 {
  442. compatible = "arm,coresight-cti", "arm,primecell";
  443. reg = <0x00811000 0x1000>;
  444. clocks = <&rpmcc RPM_QDSS_CLK>;
  445. clock-names = "apb_pclk";
  446. status = "disabled";
  447. };
  448. /* CTIs 2-11 - no information - not instantiated */
  449. tpiu: tpiu@820000 {
  450. compatible = "arm,coresight-tpiu", "arm,primecell";
  451. reg = <0x00820000 0x1000>;
  452. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  453. clock-names = "apb_pclk", "atclk";
  454. status = "disabled";
  455. in-ports {
  456. port {
  457. tpiu_in: endpoint {
  458. remote-endpoint = <&replicator_out1>;
  459. };
  460. };
  461. };
  462. };
  463. funnel0: funnel@821000 {
  464. compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
  465. reg = <0x00821000 0x1000>;
  466. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  467. clock-names = "apb_pclk", "atclk";
  468. status = "disabled";
  469. in-ports {
  470. #address-cells = <1>;
  471. #size-cells = <0>;
  472. /*
  473. * Not described input ports:
  474. * 0 - connected to Resource and Power Manger CPU ETM
  475. * 1 - not-connected
  476. * 2 - connected to Modem CPU ETM
  477. * 3 - not-connected
  478. * 5 - not-connected
  479. * 6 - connected trought funnel to Wireless CPU ETM
  480. * 7 - connected to STM component
  481. */
  482. port@4 {
  483. reg = <4>;
  484. funnel0_in4: endpoint {
  485. remote-endpoint = <&funnel1_out>;
  486. };
  487. };
  488. port@7 {
  489. reg = <7>;
  490. funnel0_in7: endpoint {
  491. remote-endpoint = <&stm_out>;
  492. };
  493. };
  494. };
  495. out-ports {
  496. port {
  497. funnel0_out: endpoint {
  498. remote-endpoint = <&etf_in>;
  499. };
  500. };
  501. };
  502. };
  503. replicator: replicator@824000 {
  504. compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
  505. reg = <0x00824000 0x1000>;
  506. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  507. clock-names = "apb_pclk", "atclk";
  508. status = "disabled";
  509. out-ports {
  510. #address-cells = <1>;
  511. #size-cells = <0>;
  512. port@0 {
  513. reg = <0>;
  514. replicator_out0: endpoint {
  515. remote-endpoint = <&etr_in>;
  516. };
  517. };
  518. port@1 {
  519. reg = <1>;
  520. replicator_out1: endpoint {
  521. remote-endpoint = <&tpiu_in>;
  522. };
  523. };
  524. };
  525. in-ports {
  526. port {
  527. replicator_in: endpoint {
  528. remote-endpoint = <&etf_out>;
  529. };
  530. };
  531. };
  532. };
  533. etf: etf@825000 {
  534. compatible = "arm,coresight-tmc", "arm,primecell";
  535. reg = <0x00825000 0x1000>;
  536. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  537. clock-names = "apb_pclk", "atclk";
  538. status = "disabled";
  539. in-ports {
  540. port {
  541. etf_in: endpoint {
  542. remote-endpoint = <&funnel0_out>;
  543. };
  544. };
  545. };
  546. out-ports {
  547. port {
  548. etf_out: endpoint {
  549. remote-endpoint = <&replicator_in>;
  550. };
  551. };
  552. };
  553. };
  554. etr: etr@826000 {
  555. compatible = "arm,coresight-tmc", "arm,primecell";
  556. reg = <0x00826000 0x1000>;
  557. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  558. clock-names = "apb_pclk", "atclk";
  559. status = "disabled";
  560. in-ports {
  561. port {
  562. etr_in: endpoint {
  563. remote-endpoint = <&replicator_out0>;
  564. };
  565. };
  566. };
  567. };
  568. funnel1: funnel@841000 { /* APSS funnel only 4 inputs are used */
  569. compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
  570. reg = <0x00841000 0x1000>;
  571. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  572. clock-names = "apb_pclk", "atclk";
  573. status = "disabled";
  574. in-ports {
  575. #address-cells = <1>;
  576. #size-cells = <0>;
  577. port@0 {
  578. reg = <0>;
  579. funnel1_in0: endpoint {
  580. remote-endpoint = <&etm0_out>;
  581. };
  582. };
  583. port@1 {
  584. reg = <1>;
  585. funnel1_in1: endpoint {
  586. remote-endpoint = <&etm1_out>;
  587. };
  588. };
  589. port@2 {
  590. reg = <2>;
  591. funnel1_in2: endpoint {
  592. remote-endpoint = <&etm2_out>;
  593. };
  594. };
  595. port@3 {
  596. reg = <3>;
  597. funnel1_in3: endpoint {
  598. remote-endpoint = <&etm3_out>;
  599. };
  600. };
  601. };
  602. out-ports {
  603. port {
  604. funnel1_out: endpoint {
  605. remote-endpoint = <&funnel0_in4>;
  606. };
  607. };
  608. };
  609. };
  610. debug0: debug@850000 {
  611. compatible = "arm,coresight-cpu-debug", "arm,primecell";
  612. reg = <0x00850000 0x1000>;
  613. clocks = <&rpmcc RPM_QDSS_CLK>;
  614. clock-names = "apb_pclk";
  615. cpu = <&CPU0>;
  616. status = "disabled";
  617. };
  618. debug1: debug@852000 {
  619. compatible = "arm,coresight-cpu-debug", "arm,primecell";
  620. reg = <0x00852000 0x1000>;
  621. clocks = <&rpmcc RPM_QDSS_CLK>;
  622. clock-names = "apb_pclk";
  623. cpu = <&CPU1>;
  624. status = "disabled";
  625. };
  626. debug2: debug@854000 {
  627. compatible = "arm,coresight-cpu-debug", "arm,primecell";
  628. reg = <0x00854000 0x1000>;
  629. clocks = <&rpmcc RPM_QDSS_CLK>;
  630. clock-names = "apb_pclk";
  631. cpu = <&CPU2>;
  632. status = "disabled";
  633. };
  634. debug3: debug@856000 {
  635. compatible = "arm,coresight-cpu-debug", "arm,primecell";
  636. reg = <0x00856000 0x1000>;
  637. clocks = <&rpmcc RPM_QDSS_CLK>;
  638. clock-names = "apb_pclk";
  639. cpu = <&CPU3>;
  640. status = "disabled";
  641. };
  642. /* Core CTIs; CTIs 12-15 */
  643. /* CTI - CPU-0 */
  644. cti12: cti@858000 {
  645. compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
  646. "arm,primecell";
  647. reg = <0x00858000 0x1000>;
  648. clocks = <&rpmcc RPM_QDSS_CLK>;
  649. clock-names = "apb_pclk";
  650. cpu = <&CPU0>;
  651. arm,cs-dev-assoc = <&etm0>;
  652. status = "disabled";
  653. };
  654. /* CTI - CPU-1 */
  655. cti13: cti@859000 {
  656. compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
  657. "arm,primecell";
  658. reg = <0x00859000 0x1000>;
  659. clocks = <&rpmcc RPM_QDSS_CLK>;
  660. clock-names = "apb_pclk";
  661. cpu = <&CPU1>;
  662. arm,cs-dev-assoc = <&etm1>;
  663. status = "disabled";
  664. };
  665. /* CTI - CPU-2 */
  666. cti14: cti@85a000 {
  667. compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
  668. "arm,primecell";
  669. reg = <0x0085a000 0x1000>;
  670. clocks = <&rpmcc RPM_QDSS_CLK>;
  671. clock-names = "apb_pclk";
  672. cpu = <&CPU2>;
  673. arm,cs-dev-assoc = <&etm2>;
  674. status = "disabled";
  675. };
  676. /* CTI - CPU-3 */
  677. cti15: cti@85b000 {
  678. compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
  679. "arm,primecell";
  680. reg = <0x0085b000 0x1000>;
  681. clocks = <&rpmcc RPM_QDSS_CLK>;
  682. clock-names = "apb_pclk";
  683. cpu = <&CPU3>;
  684. arm,cs-dev-assoc = <&etm3>;
  685. status = "disabled";
  686. };
  687. etm0: etm@85c000 {
  688. compatible = "arm,coresight-etm4x", "arm,primecell";
  689. reg = <0x0085c000 0x1000>;
  690. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  691. clock-names = "apb_pclk", "atclk";
  692. arm,coresight-loses-context-with-cpu;
  693. cpu = <&CPU0>;
  694. status = "disabled";
  695. out-ports {
  696. port {
  697. etm0_out: endpoint {
  698. remote-endpoint = <&funnel1_in0>;
  699. };
  700. };
  701. };
  702. };
  703. etm1: etm@85d000 {
  704. compatible = "arm,coresight-etm4x", "arm,primecell";
  705. reg = <0x0085d000 0x1000>;
  706. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  707. clock-names = "apb_pclk", "atclk";
  708. arm,coresight-loses-context-with-cpu;
  709. cpu = <&CPU1>;
  710. status = "disabled";
  711. out-ports {
  712. port {
  713. etm1_out: endpoint {
  714. remote-endpoint = <&funnel1_in1>;
  715. };
  716. };
  717. };
  718. };
  719. etm2: etm@85e000 {
  720. compatible = "arm,coresight-etm4x", "arm,primecell";
  721. reg = <0x0085e000 0x1000>;
  722. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  723. clock-names = "apb_pclk", "atclk";
  724. arm,coresight-loses-context-with-cpu;
  725. cpu = <&CPU2>;
  726. status = "disabled";
  727. out-ports {
  728. port {
  729. etm2_out: endpoint {
  730. remote-endpoint = <&funnel1_in2>;
  731. };
  732. };
  733. };
  734. };
  735. etm3: etm@85f000 {
  736. compatible = "arm,coresight-etm4x", "arm,primecell";
  737. reg = <0x0085f000 0x1000>;
  738. clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
  739. clock-names = "apb_pclk", "atclk";
  740. arm,coresight-loses-context-with-cpu;
  741. cpu = <&CPU3>;
  742. status = "disabled";
  743. out-ports {
  744. port {
  745. etm3_out: endpoint {
  746. remote-endpoint = <&funnel1_in3>;
  747. };
  748. };
  749. };
  750. };
  751. msmgpio: pinctrl@1000000 {
  752. compatible = "qcom,msm8916-pinctrl";
  753. reg = <0x01000000 0x300000>;
  754. interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
  755. gpio-controller;
  756. gpio-ranges = <&msmgpio 0 0 122>;
  757. #gpio-cells = <2>;
  758. interrupt-controller;
  759. #interrupt-cells = <2>;
  760. };
  761. gcc: clock-controller@1800000 {
  762. compatible = "qcom,gcc-msm8916";
  763. #clock-cells = <1>;
  764. #reset-cells = <1>;
  765. #power-domain-cells = <1>;
  766. reg = <0x01800000 0x80000>;
  767. clocks = <&xo_board>,
  768. <&sleep_clk>,
  769. <&dsi_phy0 1>,
  770. <&dsi_phy0 0>,
  771. <0>,
  772. <0>,
  773. <0>;
  774. clock-names = "xo",
  775. "sleep_clk",
  776. "dsi0pll",
  777. "dsi0pllbyte",
  778. "ext_mclk",
  779. "ext_pri_i2s",
  780. "ext_sec_i2s";
  781. };
  782. tcsr_mutex: hwlock@1905000 {
  783. compatible = "qcom,tcsr-mutex";
  784. reg = <0x01905000 0x20000>;
  785. #hwlock-cells = <1>;
  786. };
  787. tcsr: syscon@1937000 {
  788. compatible = "qcom,tcsr-msm8916", "syscon";
  789. reg = <0x01937000 0x30000>;
  790. };
  791. mdss: mdss@1a00000 {
  792. status = "disabled";
  793. compatible = "qcom,mdss";
  794. reg = <0x01a00000 0x1000>,
  795. <0x01ac8000 0x3000>;
  796. reg-names = "mdss_phys", "vbif_phys";
  797. power-domains = <&gcc MDSS_GDSC>;
  798. clocks = <&gcc GCC_MDSS_AHB_CLK>,
  799. <&gcc GCC_MDSS_AXI_CLK>,
  800. <&gcc GCC_MDSS_VSYNC_CLK>;
  801. clock-names = "iface",
  802. "bus",
  803. "vsync";
  804. interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
  805. interrupt-controller;
  806. #interrupt-cells = <1>;
  807. #address-cells = <1>;
  808. #size-cells = <1>;
  809. ranges;
  810. mdp: mdp@1a01000 {
  811. compatible = "qcom,mdp5";
  812. reg = <0x01a01000 0x89000>;
  813. reg-names = "mdp_phys";
  814. interrupt-parent = <&mdss>;
  815. interrupts = <0>;
  816. clocks = <&gcc GCC_MDSS_AHB_CLK>,
  817. <&gcc GCC_MDSS_AXI_CLK>,
  818. <&gcc GCC_MDSS_MDP_CLK>,
  819. <&gcc GCC_MDSS_VSYNC_CLK>;
  820. clock-names = "iface",
  821. "bus",
  822. "core",
  823. "vsync";
  824. iommus = <&apps_iommu 4>;
  825. ports {
  826. #address-cells = <1>;
  827. #size-cells = <0>;
  828. port@0 {
  829. reg = <0>;
  830. mdp5_intf1_out: endpoint {
  831. remote-endpoint = <&dsi0_in>;
  832. };
  833. };
  834. };
  835. };
  836. dsi0: dsi@1a98000 {
  837. compatible = "qcom,mdss-dsi-ctrl";
  838. reg = <0x01a98000 0x25c>;
  839. reg-names = "dsi_ctrl";
  840. interrupt-parent = <&mdss>;
  841. interrupts = <4>;
  842. assigned-clocks = <&gcc BYTE0_CLK_SRC>,
  843. <&gcc PCLK0_CLK_SRC>;
  844. assigned-clock-parents = <&dsi_phy0 0>,
  845. <&dsi_phy0 1>;
  846. clocks = <&gcc GCC_MDSS_MDP_CLK>,
  847. <&gcc GCC_MDSS_AHB_CLK>,
  848. <&gcc GCC_MDSS_AXI_CLK>,
  849. <&gcc GCC_MDSS_BYTE0_CLK>,
  850. <&gcc GCC_MDSS_PCLK0_CLK>,
  851. <&gcc GCC_MDSS_ESC0_CLK>;
  852. clock-names = "mdp_core",
  853. "iface",
  854. "bus",
  855. "byte",
  856. "pixel",
  857. "core";
  858. phys = <&dsi_phy0>;
  859. phy-names = "dsi-phy";
  860. #address-cells = <1>;
  861. #size-cells = <0>;
  862. ports {
  863. #address-cells = <1>;
  864. #size-cells = <0>;
  865. port@0 {
  866. reg = <0>;
  867. dsi0_in: endpoint {
  868. remote-endpoint = <&mdp5_intf1_out>;
  869. };
  870. };
  871. port@1 {
  872. reg = <1>;
  873. dsi0_out: endpoint {
  874. };
  875. };
  876. };
  877. };
  878. dsi_phy0: dsi-phy@1a98300 {
  879. compatible = "qcom,dsi-phy-28nm-lp";
  880. reg = <0x01a98300 0xd4>,
  881. <0x01a98500 0x280>,
  882. <0x01a98780 0x30>;
  883. reg-names = "dsi_pll",
  884. "dsi_phy",
  885. "dsi_phy_regulator";
  886. #clock-cells = <1>;
  887. #phy-cells = <0>;
  888. clocks = <&gcc GCC_MDSS_AHB_CLK>,
  889. <&xo_board>;
  890. clock-names = "iface", "ref";
  891. };
  892. };
  893. camss: camss@1b0ac00 {
  894. compatible = "qcom,msm8916-camss";
  895. reg = <0x01b0ac00 0x200>,
  896. <0x01b00030 0x4>,
  897. <0x01b0b000 0x200>,
  898. <0x01b00038 0x4>,
  899. <0x01b08000 0x100>,
  900. <0x01b08400 0x100>,
  901. <0x01b0a000 0x500>,
  902. <0x01b00020 0x10>,
  903. <0x01b10000 0x1000>;
  904. reg-names = "csiphy0",
  905. "csiphy0_clk_mux",
  906. "csiphy1",
  907. "csiphy1_clk_mux",
  908. "csid0",
  909. "csid1",
  910. "ispif",
  911. "csi_clk_mux",
  912. "vfe0";
  913. interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>,
  914. <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>,
  915. <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>,
  916. <GIC_SPI 52 IRQ_TYPE_EDGE_RISING>,
  917. <GIC_SPI 55 IRQ_TYPE_EDGE_RISING>,
  918. <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
  919. interrupt-names = "csiphy0",
  920. "csiphy1",
  921. "csid0",
  922. "csid1",
  923. "ispif",
  924. "vfe0";
  925. power-domains = <&gcc VFE_GDSC>;
  926. clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
  927. <&gcc GCC_CAMSS_ISPIF_AHB_CLK>,
  928. <&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>,
  929. <&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>,
  930. <&gcc GCC_CAMSS_CSI0_AHB_CLK>,
  931. <&gcc GCC_CAMSS_CSI0_CLK>,
  932. <&gcc GCC_CAMSS_CSI0PHY_CLK>,
  933. <&gcc GCC_CAMSS_CSI0PIX_CLK>,
  934. <&gcc GCC_CAMSS_CSI0RDI_CLK>,
  935. <&gcc GCC_CAMSS_CSI1_AHB_CLK>,
  936. <&gcc GCC_CAMSS_CSI1_CLK>,
  937. <&gcc GCC_CAMSS_CSI1PHY_CLK>,
  938. <&gcc GCC_CAMSS_CSI1PIX_CLK>,
  939. <&gcc GCC_CAMSS_CSI1RDI_CLK>,
  940. <&gcc GCC_CAMSS_AHB_CLK>,
  941. <&gcc GCC_CAMSS_VFE0_CLK>,
  942. <&gcc GCC_CAMSS_CSI_VFE0_CLK>,
  943. <&gcc GCC_CAMSS_VFE_AHB_CLK>,
  944. <&gcc GCC_CAMSS_VFE_AXI_CLK>;
  945. clock-names = "top_ahb",
  946. "ispif_ahb",
  947. "csiphy0_timer",
  948. "csiphy1_timer",
  949. "csi0_ahb",
  950. "csi0",
  951. "csi0_phy",
  952. "csi0_pix",
  953. "csi0_rdi",
  954. "csi1_ahb",
  955. "csi1",
  956. "csi1_phy",
  957. "csi1_pix",
  958. "csi1_rdi",
  959. "ahb",
  960. "vfe0",
  961. "csi_vfe0",
  962. "vfe_ahb",
  963. "vfe_axi";
  964. iommus = <&apps_iommu 3>;
  965. status = "disabled";
  966. ports {
  967. #address-cells = <1>;
  968. #size-cells = <0>;
  969. };
  970. };
  971. cci: cci@1b0c000 {
  972. compatible = "qcom,msm8916-cci";
  973. #address-cells = <1>;
  974. #size-cells = <0>;
  975. reg = <0x01b0c000 0x1000>;
  976. interrupts = <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
  977. clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
  978. <&gcc GCC_CAMSS_CCI_AHB_CLK>,
  979. <&gcc GCC_CAMSS_CCI_CLK>,
  980. <&gcc GCC_CAMSS_AHB_CLK>;
  981. clock-names = "camss_top_ahb", "cci_ahb",
  982. "cci", "camss_ahb";
  983. assigned-clocks = <&gcc GCC_CAMSS_CCI_AHB_CLK>,
  984. <&gcc GCC_CAMSS_CCI_CLK>;
  985. assigned-clock-rates = <80000000>, <19200000>;
  986. pinctrl-names = "default";
  987. pinctrl-0 = <&cci0_default>;
  988. status = "disabled";
  989. cci_i2c0: i2c-bus@0 {
  990. reg = <0>;
  991. clock-frequency = <400000>;
  992. #address-cells = <1>;
  993. #size-cells = <0>;
  994. };
  995. };
  996. gpu@1c00000 {
  997. compatible = "qcom,adreno-306.0", "qcom,adreno";
  998. reg = <0x01c00000 0x20000>;
  999. reg-names = "kgsl_3d0_reg_memory";
  1000. interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
  1001. interrupt-names = "kgsl_3d0_irq";
  1002. clock-names =
  1003. "core",
  1004. "iface",
  1005. "mem",
  1006. "mem_iface",
  1007. "alt_mem_iface",
  1008. "gfx3d";
  1009. clocks =
  1010. <&gcc GCC_OXILI_GFX3D_CLK>,
  1011. <&gcc GCC_OXILI_AHB_CLK>,
  1012. <&gcc GCC_OXILI_GMEM_CLK>,
  1013. <&gcc GCC_BIMC_GFX_CLK>,
  1014. <&gcc GCC_BIMC_GPU_CLK>,
  1015. <&gcc GFX3D_CLK_SRC>;
  1016. power-domains = <&gcc OXILI_GDSC>;
  1017. operating-points-v2 = <&gpu_opp_table>;
  1018. iommus = <&gpu_iommu 1>, <&gpu_iommu 2>;
  1019. gpu_opp_table: opp-table {
  1020. compatible = "operating-points-v2";
  1021. opp-400000000 {
  1022. opp-hz = /bits/ 64 <400000000>;
  1023. };
  1024. opp-19200000 {
  1025. opp-hz = /bits/ 64 <19200000>;
  1026. };
  1027. };
  1028. };
  1029. venus: video-codec@1d00000 {
  1030. compatible = "qcom,msm8916-venus";
  1031. reg = <0x01d00000 0xff000>;
  1032. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
  1033. power-domains = <&gcc VENUS_GDSC>;
  1034. clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
  1035. <&gcc GCC_VENUS0_AHB_CLK>,
  1036. <&gcc GCC_VENUS0_AXI_CLK>;
  1037. clock-names = "core", "iface", "bus";
  1038. iommus = <&apps_iommu 5>;
  1039. memory-region = <&venus_mem>;
  1040. status = "okay";
  1041. video-decoder {
  1042. compatible = "venus-decoder";
  1043. };
  1044. video-encoder {
  1045. compatible = "venus-encoder";
  1046. };
  1047. };
  1048. apps_iommu: iommu@1ef0000 {
  1049. #address-cells = <1>;
  1050. #size-cells = <1>;
  1051. #iommu-cells = <1>;
  1052. compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
  1053. ranges = <0 0x01e20000 0x20000>;
  1054. reg = <0x01ef0000 0x3000>;
  1055. clocks = <&gcc GCC_SMMU_CFG_CLK>,
  1056. <&gcc GCC_APSS_TCU_CLK>;
  1057. clock-names = "iface", "bus";
  1058. qcom,iommu-secure-id = <17>;
  1059. // vfe:
  1060. iommu-ctx@3000 {
  1061. compatible = "qcom,msm-iommu-v1-sec";
  1062. reg = <0x3000 0x1000>;
  1063. interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
  1064. };
  1065. // mdp_0:
  1066. iommu-ctx@4000 {
  1067. compatible = "qcom,msm-iommu-v1-ns";
  1068. reg = <0x4000 0x1000>;
  1069. interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
  1070. };
  1071. // venus_ns:
  1072. iommu-ctx@5000 {
  1073. compatible = "qcom,msm-iommu-v1-sec";
  1074. reg = <0x5000 0x1000>;
  1075. interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
  1076. };
  1077. };
  1078. gpu_iommu: iommu@1f08000 {
  1079. #address-cells = <1>;
  1080. #size-cells = <1>;
  1081. #iommu-cells = <1>;
  1082. compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
  1083. ranges = <0 0x01f08000 0x10000>;
  1084. clocks = <&gcc GCC_SMMU_CFG_CLK>,
  1085. <&gcc GCC_GFX_TCU_CLK>;
  1086. clock-names = "iface", "bus";
  1087. qcom,iommu-secure-id = <18>;
  1088. // gfx3d_user:
  1089. iommu-ctx@1000 {
  1090. compatible = "qcom,msm-iommu-v1-ns";
  1091. reg = <0x1000 0x1000>;
  1092. interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
  1093. };
  1094. // gfx3d_priv:
  1095. iommu-ctx@2000 {
  1096. compatible = "qcom,msm-iommu-v1-ns";
  1097. reg = <0x2000 0x1000>;
  1098. interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
  1099. };
  1100. };
  1101. spmi_bus: spmi@200f000 {
  1102. compatible = "qcom,spmi-pmic-arb";
  1103. reg = <0x0200f000 0x001000>,
  1104. <0x02400000 0x400000>,
  1105. <0x02c00000 0x400000>,
  1106. <0x03800000 0x200000>,
  1107. <0x0200a000 0x002100>;
  1108. reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
  1109. interrupt-names = "periph_irq";
  1110. interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
  1111. qcom,ee = <0>;
  1112. qcom,channel = <0>;
  1113. #address-cells = <2>;
  1114. #size-cells = <0>;
  1115. interrupt-controller;
  1116. #interrupt-cells = <4>;
  1117. };
  1118. bam_dmux_dma: dma-controller@4044000 {
  1119. compatible = "qcom,bam-v1.7.0";
  1120. reg = <0x04044000 0x19000>;
  1121. interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
  1122. #dma-cells = <1>;
  1123. qcom,ee = <0>;
  1124. num-channels = <6>;
  1125. qcom,num-ees = <1>;
  1126. qcom,powered-remotely;
  1127. status = "disabled";
  1128. };
  1129. mpss: remoteproc@4080000 {
  1130. compatible = "qcom,msm8916-mss-pil";
  1131. reg = <0x04080000 0x100>,
  1132. <0x04020000 0x040>;
  1133. reg-names = "qdsp6", "rmb";
  1134. interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
  1135. <&hexagon_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
  1136. <&hexagon_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
  1137. <&hexagon_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
  1138. <&hexagon_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
  1139. interrupt-names = "wdog", "fatal", "ready",
  1140. "handover", "stop-ack";
  1141. power-domains = <&rpmpd MSM8916_VDDCX>,
  1142. <&rpmpd MSM8916_VDDMX>;
  1143. power-domain-names = "cx", "mx";
  1144. clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
  1145. <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
  1146. <&gcc GCC_BOOT_ROM_AHB_CLK>,
  1147. <&xo_board>;
  1148. clock-names = "iface", "bus", "mem", "xo";
  1149. qcom,smem-states = <&hexagon_smp2p_out 0>;
  1150. qcom,smem-state-names = "stop";
  1151. resets = <&scm 0>;
  1152. reset-names = "mss_restart";
  1153. qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
  1154. status = "disabled";
  1155. mba {
  1156. memory-region = <&mba_mem>;
  1157. };
  1158. mpss {
  1159. memory-region = <&mpss_mem>;
  1160. };
  1161. bam_dmux: bam-dmux {
  1162. compatible = "qcom,bam-dmux";
  1163. interrupt-parent = <&hexagon_smsm>;
  1164. interrupts = <1 IRQ_TYPE_EDGE_BOTH>, <11 IRQ_TYPE_EDGE_BOTH>;
  1165. interrupt-names = "pc", "pc-ack";
  1166. qcom,smem-states = <&apps_smsm 1>, <&apps_smsm 11>;
  1167. qcom,smem-state-names = "pc", "pc-ack";
  1168. dmas = <&bam_dmux_dma 4>, <&bam_dmux_dma 5>;
  1169. dma-names = "tx", "rx";
  1170. status = "disabled";
  1171. };
  1172. smd-edge {
  1173. interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
  1174. qcom,smd-edge = <0>;
  1175. qcom,ipc = <&apcs 8 12>;
  1176. qcom,remote-pid = <1>;
  1177. label = "hexagon";
  1178. fastrpc {
  1179. compatible = "qcom,fastrpc";
  1180. qcom,smd-channels = "fastrpcsmd-apps-dsp";
  1181. label = "adsp";
  1182. qcom,non-secure-domain;
  1183. #address-cells = <1>;
  1184. #size-cells = <0>;
  1185. cb@1 {
  1186. compatible = "qcom,fastrpc-compute-cb";
  1187. reg = <1>;
  1188. };
  1189. };
  1190. };
  1191. };
  1192. sound: sound@7702000 {
  1193. status = "disabled";
  1194. compatible = "qcom,apq8016-sbc-sndcard";
  1195. reg = <0x07702000 0x4>, <0x07702004 0x4>;
  1196. reg-names = "mic-iomux", "spkr-iomux";
  1197. };
  1198. lpass: audio-controller@7708000 {
  1199. status = "disabled";
  1200. compatible = "qcom,lpass-cpu-apq8016";
  1201. /*
  1202. * Note: Unlike the name would suggest, the SEC_I2S_CLK
  1203. * is actually only used by Tertiary MI2S while
  1204. * Primary/Secondary MI2S both use the PRI_I2S_CLK.
  1205. */
  1206. clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
  1207. <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
  1208. <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>,
  1209. <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
  1210. <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
  1211. <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
  1212. <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>;
  1213. clock-names = "ahbix-clk",
  1214. "pcnoc-mport-clk",
  1215. "pcnoc-sway-clk",
  1216. "mi2s-bit-clk0",
  1217. "mi2s-bit-clk1",
  1218. "mi2s-bit-clk2",
  1219. "mi2s-bit-clk3";
  1220. #sound-dai-cells = <1>;
  1221. interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
  1222. interrupt-names = "lpass-irq-lpaif";
  1223. reg = <0x07708000 0x10000>;
  1224. reg-names = "lpass-lpaif";
  1225. #address-cells = <1>;
  1226. #size-cells = <0>;
  1227. };
  1228. lpass_codec: audio-codec@771c000 {
  1229. compatible = "qcom,msm8916-wcd-digital-codec";
  1230. reg = <0x0771c000 0x400>;
  1231. clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
  1232. <&gcc GCC_CODEC_DIGCODEC_CLK>;
  1233. clock-names = "ahbix-clk", "mclk";
  1234. #sound-dai-cells = <1>;
  1235. };
  1236. sdhc_1: mmc@7824900 {
  1237. compatible = "qcom,msm8916-sdhci", "qcom,sdhci-msm-v4";
  1238. reg = <0x07824900 0x11c>, <0x07824000 0x800>;
  1239. reg-names = "hc", "core";
  1240. interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
  1241. <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
  1242. interrupt-names = "hc_irq", "pwr_irq";
  1243. clocks = <&gcc GCC_SDCC1_AHB_CLK>,
  1244. <&gcc GCC_SDCC1_APPS_CLK>,
  1245. <&xo_board>;
  1246. clock-names = "iface", "core", "xo";
  1247. mmc-ddr-1_8v;
  1248. bus-width = <8>;
  1249. non-removable;
  1250. status = "disabled";
  1251. };
  1252. sdhc_2: mmc@7864900 {
  1253. compatible = "qcom,msm8916-sdhci", "qcom,sdhci-msm-v4";
  1254. reg = <0x07864900 0x11c>, <0x07864000 0x800>;
  1255. reg-names = "hc", "core";
  1256. interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
  1257. <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
  1258. interrupt-names = "hc_irq", "pwr_irq";
  1259. clocks = <&gcc GCC_SDCC2_AHB_CLK>,
  1260. <&gcc GCC_SDCC2_APPS_CLK>,
  1261. <&xo_board>;
  1262. clock-names = "iface", "core", "xo";
  1263. bus-width = <4>;
  1264. status = "disabled";
  1265. };
  1266. blsp_dma: dma-controller@7884000 {
  1267. compatible = "qcom,bam-v1.7.0";
  1268. reg = <0x07884000 0x23000>;
  1269. interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
  1270. clocks = <&gcc GCC_BLSP1_AHB_CLK>;
  1271. clock-names = "bam_clk";
  1272. #dma-cells = <1>;
  1273. qcom,ee = <0>;
  1274. status = "disabled";
  1275. };
  1276. blsp1_uart1: serial@78af000 {
  1277. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  1278. reg = <0x078af000 0x200>;
  1279. interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
  1280. clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
  1281. clock-names = "core", "iface";
  1282. dmas = <&blsp_dma 0>, <&blsp_dma 1>;
  1283. dma-names = "tx", "rx";
  1284. pinctrl-names = "default", "sleep";
  1285. pinctrl-0 = <&blsp1_uart1_default>;
  1286. pinctrl-1 = <&blsp1_uart1_sleep>;
  1287. status = "disabled";
  1288. };
  1289. blsp1_uart2: serial@78b0000 {
  1290. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  1291. reg = <0x078b0000 0x200>;
  1292. interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
  1293. clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
  1294. clock-names = "core", "iface";
  1295. dmas = <&blsp_dma 2>, <&blsp_dma 3>;
  1296. dma-names = "tx", "rx";
  1297. pinctrl-names = "default", "sleep";
  1298. pinctrl-0 = <&blsp1_uart2_default>;
  1299. pinctrl-1 = <&blsp1_uart2_sleep>;
  1300. status = "disabled";
  1301. };
  1302. blsp_i2c1: i2c@78b5000 {
  1303. compatible = "qcom,i2c-qup-v2.2.1";
  1304. reg = <0x078b5000 0x500>;
  1305. interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
  1306. clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
  1307. <&gcc GCC_BLSP1_AHB_CLK>;
  1308. clock-names = "core", "iface";
  1309. pinctrl-names = "default", "sleep";
  1310. pinctrl-0 = <&i2c1_default>;
  1311. pinctrl-1 = <&i2c1_sleep>;
  1312. #address-cells = <1>;
  1313. #size-cells = <0>;
  1314. status = "disabled";
  1315. };
  1316. blsp_spi1: spi@78b5000 {
  1317. compatible = "qcom,spi-qup-v2.2.1";
  1318. reg = <0x078b5000 0x500>;
  1319. interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
  1320. clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
  1321. <&gcc GCC_BLSP1_AHB_CLK>;
  1322. clock-names = "core", "iface";
  1323. dmas = <&blsp_dma 4>, <&blsp_dma 5>;
  1324. dma-names = "tx", "rx";
  1325. pinctrl-names = "default", "sleep";
  1326. pinctrl-0 = <&spi1_default>;
  1327. pinctrl-1 = <&spi1_sleep>;
  1328. #address-cells = <1>;
  1329. #size-cells = <0>;
  1330. status = "disabled";
  1331. };
  1332. blsp_i2c2: i2c@78b6000 {
  1333. compatible = "qcom,i2c-qup-v2.2.1";
  1334. reg = <0x078b6000 0x500>;
  1335. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  1336. clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
  1337. <&gcc GCC_BLSP1_AHB_CLK>;
  1338. clock-names = "core", "iface";
  1339. pinctrl-names = "default", "sleep";
  1340. pinctrl-0 = <&i2c2_default>;
  1341. pinctrl-1 = <&i2c2_sleep>;
  1342. #address-cells = <1>;
  1343. #size-cells = <0>;
  1344. status = "disabled";
  1345. };
  1346. blsp_spi2: spi@78b6000 {
  1347. compatible = "qcom,spi-qup-v2.2.1";
  1348. reg = <0x078b6000 0x500>;
  1349. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  1350. clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
  1351. <&gcc GCC_BLSP1_AHB_CLK>;
  1352. clock-names = "core", "iface";
  1353. dmas = <&blsp_dma 6>, <&blsp_dma 7>;
  1354. dma-names = "tx", "rx";
  1355. pinctrl-names = "default", "sleep";
  1356. pinctrl-0 = <&spi2_default>;
  1357. pinctrl-1 = <&spi2_sleep>;
  1358. #address-cells = <1>;
  1359. #size-cells = <0>;
  1360. status = "disabled";
  1361. };
  1362. blsp_i2c3: i2c@78b7000 {
  1363. compatible = "qcom,i2c-qup-v2.2.1";
  1364. reg = <0x078b7000 0x500>;
  1365. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  1366. clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
  1367. <&gcc GCC_BLSP1_AHB_CLK>;
  1368. clock-names = "core", "iface";
  1369. pinctrl-names = "default", "sleep";
  1370. pinctrl-0 = <&i2c3_default>;
  1371. pinctrl-1 = <&i2c3_sleep>;
  1372. #address-cells = <1>;
  1373. #size-cells = <0>;
  1374. status = "disabled";
  1375. };
  1376. blsp_spi3: spi@78b7000 {
  1377. compatible = "qcom,spi-qup-v2.2.1";
  1378. reg = <0x078b7000 0x500>;
  1379. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  1380. clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
  1381. <&gcc GCC_BLSP1_AHB_CLK>;
  1382. clock-names = "core", "iface";
  1383. dmas = <&blsp_dma 8>, <&blsp_dma 9>;
  1384. dma-names = "tx", "rx";
  1385. pinctrl-names = "default", "sleep";
  1386. pinctrl-0 = <&spi3_default>;
  1387. pinctrl-1 = <&spi3_sleep>;
  1388. #address-cells = <1>;
  1389. #size-cells = <0>;
  1390. status = "disabled";
  1391. };
  1392. blsp_i2c4: i2c@78b8000 {
  1393. compatible = "qcom,i2c-qup-v2.2.1";
  1394. reg = <0x078b8000 0x500>;
  1395. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  1396. clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
  1397. <&gcc GCC_BLSP1_AHB_CLK>;
  1398. clock-names = "core", "iface";
  1399. pinctrl-names = "default", "sleep";
  1400. pinctrl-0 = <&i2c4_default>;
  1401. pinctrl-1 = <&i2c4_sleep>;
  1402. #address-cells = <1>;
  1403. #size-cells = <0>;
  1404. status = "disabled";
  1405. };
  1406. blsp_spi4: spi@78b8000 {
  1407. compatible = "qcom,spi-qup-v2.2.1";
  1408. reg = <0x078b8000 0x500>;
  1409. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  1410. clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
  1411. <&gcc GCC_BLSP1_AHB_CLK>;
  1412. clock-names = "core", "iface";
  1413. dmas = <&blsp_dma 10>, <&blsp_dma 11>;
  1414. dma-names = "tx", "rx";
  1415. pinctrl-names = "default", "sleep";
  1416. pinctrl-0 = <&spi4_default>;
  1417. pinctrl-1 = <&spi4_sleep>;
  1418. #address-cells = <1>;
  1419. #size-cells = <0>;
  1420. status = "disabled";
  1421. };
  1422. blsp_i2c5: i2c@78b9000 {
  1423. compatible = "qcom,i2c-qup-v2.2.1";
  1424. reg = <0x078b9000 0x500>;
  1425. interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
  1426. clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
  1427. <&gcc GCC_BLSP1_AHB_CLK>;
  1428. clock-names = "core", "iface";
  1429. pinctrl-names = "default", "sleep";
  1430. pinctrl-0 = <&i2c5_default>;
  1431. pinctrl-1 = <&i2c5_sleep>;
  1432. #address-cells = <1>;
  1433. #size-cells = <0>;
  1434. status = "disabled";
  1435. };
  1436. blsp_spi5: spi@78b9000 {
  1437. compatible = "qcom,spi-qup-v2.2.1";
  1438. reg = <0x078b9000 0x500>;
  1439. interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
  1440. clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
  1441. <&gcc GCC_BLSP1_AHB_CLK>;
  1442. clock-names = "core", "iface";
  1443. dmas = <&blsp_dma 12>, <&blsp_dma 13>;
  1444. dma-names = "tx", "rx";
  1445. pinctrl-names = "default", "sleep";
  1446. pinctrl-0 = <&spi5_default>;
  1447. pinctrl-1 = <&spi5_sleep>;
  1448. #address-cells = <1>;
  1449. #size-cells = <0>;
  1450. status = "disabled";
  1451. };
  1452. blsp_i2c6: i2c@78ba000 {
  1453. compatible = "qcom,i2c-qup-v2.2.1";
  1454. reg = <0x078ba000 0x500>;
  1455. interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
  1456. clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
  1457. <&gcc GCC_BLSP1_AHB_CLK>;
  1458. clock-names = "core", "iface";
  1459. pinctrl-names = "default", "sleep";
  1460. pinctrl-0 = <&i2c6_default>;
  1461. pinctrl-1 = <&i2c6_sleep>;
  1462. #address-cells = <1>;
  1463. #size-cells = <0>;
  1464. status = "disabled";
  1465. };
  1466. blsp_spi6: spi@78ba000 {
  1467. compatible = "qcom,spi-qup-v2.2.1";
  1468. reg = <0x078ba000 0x500>;
  1469. interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
  1470. clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
  1471. <&gcc GCC_BLSP1_AHB_CLK>;
  1472. clock-names = "core", "iface";
  1473. dmas = <&blsp_dma 14>, <&blsp_dma 15>;
  1474. dma-names = "tx", "rx";
  1475. pinctrl-names = "default", "sleep";
  1476. pinctrl-0 = <&spi6_default>;
  1477. pinctrl-1 = <&spi6_sleep>;
  1478. #address-cells = <1>;
  1479. #size-cells = <0>;
  1480. status = "disabled";
  1481. };
  1482. usb: usb@78d9000 {
  1483. compatible = "qcom,ci-hdrc";
  1484. reg = <0x078d9000 0x200>,
  1485. <0x078d9200 0x200>;
  1486. interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
  1487. <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
  1488. clocks = <&gcc GCC_USB_HS_AHB_CLK>,
  1489. <&gcc GCC_USB_HS_SYSTEM_CLK>;
  1490. clock-names = "iface", "core";
  1491. assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
  1492. assigned-clock-rates = <80000000>;
  1493. resets = <&gcc GCC_USB_HS_BCR>;
  1494. reset-names = "core";
  1495. phy_type = "ulpi";
  1496. dr_mode = "otg";
  1497. hnp-disable;
  1498. srp-disable;
  1499. adp-disable;
  1500. ahb-burst-config = <0>;
  1501. phy-names = "usb-phy";
  1502. phys = <&usb_hs_phy>;
  1503. status = "disabled";
  1504. #reset-cells = <1>;
  1505. ulpi {
  1506. usb_hs_phy: phy {
  1507. compatible = "qcom,usb-hs-phy-msm8916",
  1508. "qcom,usb-hs-phy";
  1509. #phy-cells = <0>;
  1510. clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
  1511. clock-names = "ref", "sleep";
  1512. resets = <&gcc GCC_USB2A_PHY_BCR>, <&usb 0>;
  1513. reset-names = "phy", "por";
  1514. qcom,init-seq = /bits/ 8 <0x0 0x44>,
  1515. <0x1 0x6b>,
  1516. <0x2 0x24>,
  1517. <0x3 0x13>;
  1518. };
  1519. };
  1520. };
  1521. pronto: remoteproc@a21b000 {
  1522. compatible = "qcom,pronto-v2-pil", "qcom,pronto";
  1523. reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
  1524. reg-names = "ccu", "dxe", "pmu";
  1525. memory-region = <&wcnss_mem>;
  1526. interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
  1527. <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
  1528. <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
  1529. <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
  1530. <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
  1531. interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
  1532. power-domains = <&rpmpd MSM8916_VDDCX>,
  1533. <&rpmpd MSM8916_VDDMX>;
  1534. power-domain-names = "cx", "mx";
  1535. qcom,smem-states = <&wcnss_smp2p_out 0>;
  1536. qcom,smem-state-names = "stop";
  1537. pinctrl-names = "default";
  1538. pinctrl-0 = <&wcnss_pin_a>;
  1539. status = "disabled";
  1540. iris {
  1541. compatible = "qcom,wcn3620";
  1542. clocks = <&rpmcc RPM_SMD_RF_CLK2>;
  1543. clock-names = "xo";
  1544. };
  1545. smd-edge {
  1546. interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
  1547. qcom,ipc = <&apcs 8 17>;
  1548. qcom,smd-edge = <6>;
  1549. qcom,remote-pid = <4>;
  1550. label = "pronto";
  1551. wcnss_ctrl: wcnss {
  1552. compatible = "qcom,wcnss";
  1553. qcom,smd-channels = "WCNSS_CTRL";
  1554. qcom,mmio = <&pronto>;
  1555. bluetooth {
  1556. compatible = "qcom,wcnss-bt";
  1557. };
  1558. wifi {
  1559. compatible = "qcom,wcnss-wlan";
  1560. interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
  1561. <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
  1562. interrupt-names = "tx", "rx";
  1563. qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
  1564. qcom,smem-state-names = "tx-enable", "tx-rings-empty";
  1565. };
  1566. };
  1567. };
  1568. };
  1569. intc: interrupt-controller@b000000 {
  1570. compatible = "qcom,msm-qgic2";
  1571. interrupt-controller;
  1572. #interrupt-cells = <3>;
  1573. reg = <0x0b000000 0x1000>, <0x0b002000 0x2000>,
  1574. <0x0b001000 0x1000>, <0x0b004000 0x2000>;
  1575. interrupts = <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  1576. };
  1577. apcs: mailbox@b011000 {
  1578. compatible = "qcom,msm8916-apcs-kpss-global", "syscon";
  1579. reg = <0x0b011000 0x1000>;
  1580. #mbox-cells = <1>;
  1581. clocks = <&a53pll>, <&gcc GPLL0_VOTE>;
  1582. clock-names = "pll", "aux";
  1583. #clock-cells = <0>;
  1584. };
  1585. a53pll: clock@b016000 {
  1586. compatible = "qcom,msm8916-a53pll";
  1587. reg = <0x0b016000 0x40>;
  1588. #clock-cells = <0>;
  1589. clocks = <&xo_board>;
  1590. clock-names = "xo";
  1591. };
  1592. timer@b020000 {
  1593. #address-cells = <1>;
  1594. #size-cells = <1>;
  1595. ranges;
  1596. compatible = "arm,armv7-timer-mem";
  1597. reg = <0x0b020000 0x1000>;
  1598. clock-frequency = <19200000>;
  1599. frame@b021000 {
  1600. frame-number = <0>;
  1601. interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
  1602. <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
  1603. reg = <0x0b021000 0x1000>,
  1604. <0x0b022000 0x1000>;
  1605. };
  1606. frame@b023000 {
  1607. frame-number = <1>;
  1608. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
  1609. reg = <0x0b023000 0x1000>;
  1610. status = "disabled";
  1611. };
  1612. frame@b024000 {
  1613. frame-number = <2>;
  1614. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  1615. reg = <0x0b024000 0x1000>;
  1616. status = "disabled";
  1617. };
  1618. frame@b025000 {
  1619. frame-number = <3>;
  1620. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
  1621. reg = <0x0b025000 0x1000>;
  1622. status = "disabled";
  1623. };
  1624. frame@b026000 {
  1625. frame-number = <4>;
  1626. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
  1627. reg = <0x0b026000 0x1000>;
  1628. status = "disabled";
  1629. };
  1630. frame@b027000 {
  1631. frame-number = <5>;
  1632. interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
  1633. reg = <0x0b027000 0x1000>;
  1634. status = "disabled";
  1635. };
  1636. frame@b028000 {
  1637. frame-number = <6>;
  1638. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  1639. reg = <0x0b028000 0x1000>;
  1640. status = "disabled";
  1641. };
  1642. };
  1643. cpu0_acc: power-manager@b088000 {
  1644. compatible = "qcom,msm8916-acc";
  1645. reg = <0x0b088000 0x1000>;
  1646. status = "reserved"; /* Controlled by PSCI firmware */
  1647. };
  1648. cpu0_saw: power-manager@b089000 {
  1649. compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
  1650. reg = <0x0b089000 0x1000>;
  1651. status = "reserved"; /* Controlled by PSCI firmware */
  1652. };
  1653. cpu1_acc: power-manager@b098000 {
  1654. compatible = "qcom,msm8916-acc";
  1655. reg = <0x0b098000 0x1000>;
  1656. status = "reserved"; /* Controlled by PSCI firmware */
  1657. };
  1658. cpu1_saw: power-manager@b099000 {
  1659. compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
  1660. reg = <0x0b099000 0x1000>;
  1661. status = "reserved"; /* Controlled by PSCI firmware */
  1662. };
  1663. cpu2_acc: power-manager@b0a8000 {
  1664. compatible = "qcom,msm8916-acc";
  1665. reg = <0x0b0a8000 0x1000>;
  1666. status = "reserved"; /* Controlled by PSCI firmware */
  1667. };
  1668. cpu2_saw: power-manager@b0a9000 {
  1669. compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
  1670. reg = <0x0b0a9000 0x1000>;
  1671. status = "reserved"; /* Controlled by PSCI firmware */
  1672. };
  1673. cpu3_acc: power-manager@b0b8000 {
  1674. compatible = "qcom,msm8916-acc";
  1675. reg = <0x0b0b8000 0x1000>;
  1676. status = "reserved"; /* Controlled by PSCI firmware */
  1677. };
  1678. cpu3_saw: power-manager@b0b9000 {
  1679. compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
  1680. reg = <0x0b0b9000 0x1000>;
  1681. status = "reserved"; /* Controlled by PSCI firmware */
  1682. };
  1683. };
  1684. thermal-zones {
  1685. cpu0-1-thermal {
  1686. polling-delay-passive = <250>;
  1687. polling-delay = <1000>;
  1688. thermal-sensors = <&tsens 5>;
  1689. trips {
  1690. cpu0_1_alert0: trip-point0 {
  1691. temperature = <75000>;
  1692. hysteresis = <2000>;
  1693. type = "passive";
  1694. };
  1695. cpu0_1_crit: cpu_crit {
  1696. temperature = <110000>;
  1697. hysteresis = <2000>;
  1698. type = "critical";
  1699. };
  1700. };
  1701. cooling-maps {
  1702. map0 {
  1703. trip = <&cpu0_1_alert0>;
  1704. cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1705. <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1706. <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1707. <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1708. };
  1709. };
  1710. };
  1711. cpu2-3-thermal {
  1712. polling-delay-passive = <250>;
  1713. polling-delay = <1000>;
  1714. thermal-sensors = <&tsens 4>;
  1715. trips {
  1716. cpu2_3_alert0: trip-point0 {
  1717. temperature = <75000>;
  1718. hysteresis = <2000>;
  1719. type = "passive";
  1720. };
  1721. cpu2_3_crit: cpu_crit {
  1722. temperature = <110000>;
  1723. hysteresis = <2000>;
  1724. type = "critical";
  1725. };
  1726. };
  1727. cooling-maps {
  1728. map0 {
  1729. trip = <&cpu2_3_alert0>;
  1730. cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1731. <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1732. <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1733. <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1734. };
  1735. };
  1736. };
  1737. gpu-thermal {
  1738. polling-delay-passive = <250>;
  1739. polling-delay = <1000>;
  1740. thermal-sensors = <&tsens 2>;
  1741. trips {
  1742. gpu_alert0: trip-point0 {
  1743. temperature = <75000>;
  1744. hysteresis = <2000>;
  1745. type = "passive";
  1746. };
  1747. gpu_crit: gpu_crit {
  1748. temperature = <95000>;
  1749. hysteresis = <2000>;
  1750. type = "critical";
  1751. };
  1752. };
  1753. };
  1754. camera-thermal {
  1755. polling-delay-passive = <250>;
  1756. polling-delay = <1000>;
  1757. thermal-sensors = <&tsens 1>;
  1758. trips {
  1759. cam_alert0: trip-point0 {
  1760. temperature = <75000>;
  1761. hysteresis = <2000>;
  1762. type = "hot";
  1763. };
  1764. };
  1765. };
  1766. modem-thermal {
  1767. polling-delay-passive = <250>;
  1768. polling-delay = <1000>;
  1769. thermal-sensors = <&tsens 0>;
  1770. trips {
  1771. modem_alert0: trip-point0 {
  1772. temperature = <85000>;
  1773. hysteresis = <2000>;
  1774. type = "hot";
  1775. };
  1776. };
  1777. };
  1778. };
  1779. timer {
  1780. compatible = "arm,armv8-timer";
  1781. interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  1782. <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  1783. <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  1784. <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  1785. };
  1786. };
  1787. #include "msm8916-pins.dtsi"