msm8916.dtsi 34 KB

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