msm8953.dtsi 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329
  1. // SPDX-License-Identifier: BSD-3-Clause
  2. /* Copyright (c) 2022, The Linux Foundation. All rights reserved. */
  3. #include <dt-bindings/clock/qcom,gcc-msm8953.h>
  4. #include <dt-bindings/gpio/gpio.h>
  5. #include <dt-bindings/interrupt-controller/arm-gic.h>
  6. #include <dt-bindings/power/qcom-rpmpd.h>
  7. #include <dt-bindings/thermal/thermal.h>
  8. / {
  9. interrupt-parent = <&intc>;
  10. #address-cells = <2>;
  11. #size-cells = <2>;
  12. chosen { };
  13. clocks {
  14. sleep_clk: sleep-clk {
  15. compatible = "fixed-clock";
  16. #clock-cells = <0>;
  17. clock-frequency = <32768>;
  18. };
  19. xo_board: xo-board {
  20. compatible = "fixed-clock";
  21. #clock-cells = <0>;
  22. clock-frequency = <19200000>;
  23. clock-output-names = "xo";
  24. };
  25. };
  26. cpus {
  27. #address-cells = <1>;
  28. #size-cells = <0>;
  29. CPU0: cpu@0 {
  30. device_type = "cpu";
  31. compatible = "arm,cortex-a53";
  32. reg = <0x0>;
  33. enable-method = "psci";
  34. capacity-dmips-mhz = <1024>;
  35. next-level-cache = <&L2_0>;
  36. #cooling-cells = <2>;
  37. l1-icache {
  38. compatible = "cache";
  39. };
  40. l1-dcache {
  41. compatible = "cache";
  42. };
  43. };
  44. CPU1: cpu@1 {
  45. device_type = "cpu";
  46. compatible = "arm,cortex-a53";
  47. reg = <0x1>;
  48. enable-method = "psci";
  49. capacity-dmips-mhz = <1024>;
  50. next-level-cache = <&L2_0>;
  51. #cooling-cells = <2>;
  52. l1-icache {
  53. compatible = "cache";
  54. };
  55. l1-dcache {
  56. compatible = "cache";
  57. };
  58. };
  59. CPU2: cpu@2 {
  60. device_type = "cpu";
  61. compatible = "arm,cortex-a53";
  62. reg = <0x2>;
  63. enable-method = "psci";
  64. capacity-dmips-mhz = <1024>;
  65. next-level-cache = <&L2_0>;
  66. #cooling-cells = <2>;
  67. l1-icache {
  68. compatible = "cache";
  69. };
  70. l1-dcache {
  71. compatible = "cache";
  72. };
  73. };
  74. CPU3: cpu@3 {
  75. device_type = "cpu";
  76. compatible = "arm,cortex-a53";
  77. reg = <0x3>;
  78. enable-method = "psci";
  79. capacity-dmips-mhz = <1024>;
  80. next-level-cache = <&L2_0>;
  81. #cooling-cells = <2>;
  82. l1-icache {
  83. compatible = "cache";
  84. };
  85. l1-dcache {
  86. compatible = "cache";
  87. };
  88. };
  89. CPU4: cpu@100 {
  90. device_type = "cpu";
  91. compatible = "arm,cortex-a53";
  92. reg = <0x100>;
  93. enable-method = "psci";
  94. capacity-dmips-mhz = <1024>;
  95. next-level-cache = <&L2_1>;
  96. #cooling-cells = <2>;
  97. l1-icache {
  98. compatible = "cache";
  99. };
  100. l1-dcache {
  101. compatible = "cache";
  102. };
  103. };
  104. CPU5: cpu@101 {
  105. device_type = "cpu";
  106. compatible = "arm,cortex-a53";
  107. reg = <0x101>;
  108. enable-method = "psci";
  109. capacity-dmips-mhz = <1024>;
  110. next-level-cache = <&L2_1>;
  111. #cooling-cells = <2>;
  112. l1-icache {
  113. compatible = "cache";
  114. };
  115. l1-dcache {
  116. compatible = "cache";
  117. };
  118. };
  119. CPU6: cpu@102 {
  120. device_type = "cpu";
  121. compatible = "arm,cortex-a53";
  122. reg = <0x102>;
  123. enable-method = "psci";
  124. capacity-dmips-mhz = <1024>;
  125. next-level-cache = <&L2_1>;
  126. #cooling-cells = <2>;
  127. l1-icache {
  128. compatible = "cache";
  129. };
  130. l1-dcache {
  131. compatible = "cache";
  132. };
  133. };
  134. CPU7: cpu@103 {
  135. device_type = "cpu";
  136. compatible = "arm,cortex-a53";
  137. reg = <0x103>;
  138. enable-method = "psci";
  139. capacity-dmips-mhz = <1024>;
  140. next-level-cache = <&L2_1>;
  141. #cooling-cells = <2>;
  142. l1-icache {
  143. compatible = "cache";
  144. };
  145. l1-dcache {
  146. compatible = "cache";
  147. };
  148. };
  149. cpu-map {
  150. cluster0 {
  151. core0 {
  152. cpu = <&CPU0>;
  153. };
  154. core1 {
  155. cpu = <&CPU1>;
  156. };
  157. core2 {
  158. cpu = <&CPU2>;
  159. };
  160. core3 {
  161. cpu = <&CPU3>;
  162. };
  163. };
  164. cluster1 {
  165. core0 {
  166. cpu = <&CPU4>;
  167. };
  168. core1 {
  169. cpu = <&CPU5>;
  170. };
  171. core2 {
  172. cpu = <&CPU6>;
  173. };
  174. core3 {
  175. cpu = <&CPU7>;
  176. };
  177. };
  178. };
  179. L2_0: l2-cache_0 {
  180. compatible = "cache";
  181. cache-level = <2>;
  182. };
  183. L2_1: l2-cache_1 {
  184. compatible = "cache";
  185. cache-level = <2>;
  186. };
  187. };
  188. firmware {
  189. scm: scm {
  190. compatible = "qcom,scm-msm8953", "qcom,scm";
  191. clocks = <&gcc GCC_CRYPTO_CLK>,
  192. <&gcc GCC_CRYPTO_AXI_CLK>,
  193. <&gcc GCC_CRYPTO_AHB_CLK>;
  194. clock-names = "core", "bus", "iface";
  195. #reset-cells = <1>;
  196. };
  197. };
  198. memory {
  199. device_type = "memory";
  200. /* We expect the bootloader to fill in the reg */
  201. reg = <0 0 0 0>;
  202. };
  203. pmu {
  204. compatible = "arm,cortex-a53-pmu";
  205. interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
  206. };
  207. psci {
  208. compatible = "arm,psci-1.0";
  209. method = "smc";
  210. };
  211. reserved-memory {
  212. #address-cells = <2>;
  213. #size-cells = <2>;
  214. ranges;
  215. zap_shader_region: memory@81800000 {
  216. compatible = "shared-dma-pool";
  217. reg = <0x0 0x81800000 0x0 0x2000>;
  218. no-map;
  219. };
  220. memory@85b00000 {
  221. reg = <0x0 0x85b00000 0x0 0x800000>;
  222. no-map;
  223. };
  224. smem_mem: memory@86300000 {
  225. compatible = "qcom,smem";
  226. reg = <0x0 0x86300000 0x0 0x100000>;
  227. qcom,rpm-msg-ram = <&rpm_msg_ram>;
  228. hwlocks = <&tcsr_mutex 3>;
  229. no-map;
  230. };
  231. memory@86400000 {
  232. reg = <0x0 0x86400000 0x0 0x400000>;
  233. no-map;
  234. };
  235. mpss_mem: memory@86c00000 {
  236. reg = <0x0 0x86c00000 0x0 0x6a00000>;
  237. no-map;
  238. };
  239. adsp_fw_mem: memory@8d600000 {
  240. reg = <0x0 0x8d600000 0x0 0x1100000>;
  241. no-map;
  242. };
  243. wcnss_fw_mem: memory@8e700000 {
  244. reg = <0x0 0x8e700000 0x0 0x700000>;
  245. no-map;
  246. };
  247. memory@90000000 {
  248. reg = <0 0x90000000 0 0x1000>;
  249. no-map;
  250. };
  251. memory@90001000 {
  252. reg = <0x0 0x90001000 0x0 0x13ff000>;
  253. no-map;
  254. };
  255. venus_mem: memory@91400000 {
  256. reg = <0x0 0x91400000 0x0 0x700000>;
  257. no-map;
  258. };
  259. mba_mem: memory@92000000 {
  260. reg = <0x0 0x92000000 0x0 0x100000>;
  261. no-map;
  262. };
  263. memory@f2d00000 {
  264. compatible = "qcom,rmtfs-mem";
  265. reg = <0x0 0xf2d00000 0x0 0x180000>;
  266. no-map;
  267. qcom,client-id = <1>;
  268. };
  269. };
  270. smd {
  271. compatible = "qcom,smd";
  272. rpm {
  273. interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
  274. qcom,ipc = <&apcs 8 0>;
  275. qcom,smd-edge = <15>;
  276. rpm_requests: rpm-requests {
  277. compatible = "qcom,rpm-msm8953";
  278. qcom,smd-channels = "rpm_requests";
  279. rpmcc: rpmcc {
  280. compatible = "qcom,rpmcc-msm8953", "qcom,rpmcc";
  281. clocks = <&xo_board>;
  282. clock-names = "xo";
  283. #clock-cells = <1>;
  284. };
  285. rpmpd: power-controller {
  286. compatible = "qcom,msm8953-rpmpd";
  287. #power-domain-cells = <1>;
  288. operating-points-v2 = <&rpmpd_opp_table>;
  289. clocks = <&xo_board>;
  290. clock-names = "ref";
  291. rpmpd_opp_table: opp-table {
  292. compatible = "operating-points-v2";
  293. rpmpd_opp_ret: opp1 {
  294. opp-level = <RPM_SMD_LEVEL_RETENTION>;
  295. };
  296. rpmpd_opp_ret_plus: opp2 {
  297. opp-level = <RPM_SMD_LEVEL_RETENTION_PLUS>;
  298. };
  299. rpmpd_opp_min_svs: opp3 {
  300. opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
  301. };
  302. rpmpd_opp_low_svs: opp4 {
  303. opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
  304. };
  305. rpmpd_opp_svs: opp5 {
  306. opp-level = <RPM_SMD_LEVEL_SVS>;
  307. };
  308. rpmpd_opp_svs_plus: opp6 {
  309. opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
  310. };
  311. rpmpd_opp_nom: opp7 {
  312. opp-level = <RPM_SMD_LEVEL_NOM>;
  313. };
  314. rpmpd_opp_nom_plus: opp8 {
  315. opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
  316. };
  317. rpmpd_opp_turbo: opp9 {
  318. opp-level = <RPM_SMD_LEVEL_TURBO>;
  319. };
  320. };
  321. };
  322. };
  323. };
  324. };
  325. smsm {
  326. compatible = "qcom,smsm";
  327. #address-cells = <1>;
  328. #size-cells = <0>;
  329. qcom,ipc-1 = <&apcs 8 13>;
  330. qcom,ipc-3 = <&apcs 8 19>;
  331. apps_smsm: apps@0 {
  332. reg = <0>;
  333. #qcom,smem-state-cells = <1>;
  334. };
  335. };
  336. soc: soc@0 {
  337. #address-cells = <1>;
  338. #size-cells = <1>;
  339. ranges = <0 0 0 0xffffffff>;
  340. compatible = "simple-bus";
  341. rpm_msg_ram: sram@60000 {
  342. compatible = "qcom,rpm-msg-ram";
  343. reg = <0x60000 0x8000>;
  344. };
  345. hsusb_phy: phy@79000 {
  346. compatible = "qcom,msm8953-qusb2-phy";
  347. reg = <0x79000 0x180>;
  348. #phy-cells = <0>;
  349. clocks = <&gcc GCC_USB_PHY_CFG_AHB_CLK>,
  350. <&gcc GCC_QUSB_REF_CLK>;
  351. clock-names = "cfg_ahb", "ref";
  352. qcom,tcsr-syscon = <&tcsr_phy_clk_scheme_sel>;
  353. resets = <&gcc GCC_QUSB2_PHY_BCR>;
  354. status = "disabled";
  355. };
  356. rng@e3000 {
  357. compatible = "qcom,prng";
  358. reg = <0x000e3000 0x1000>;
  359. clocks = <&gcc GCC_PRNG_AHB_CLK>;
  360. clock-names = "core";
  361. };
  362. tsens0: thermal-sensor@4a9000 {
  363. compatible = "qcom,msm8953-tsens", "qcom,tsens-v2";
  364. reg = <0x4a9000 0x1000>, /* TM */
  365. <0x4a8000 0x1000>; /* SROT */
  366. #qcom,sensors = <16>;
  367. interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
  368. <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>;
  369. interrupt-names = "uplow", "critical";
  370. #thermal-sensor-cells = <1>;
  371. };
  372. restart@4ab000 {
  373. compatible = "qcom,pshold";
  374. reg = <0x4ab000 0x4>;
  375. };
  376. tlmm: pinctrl@1000000 {
  377. compatible = "qcom,msm8953-pinctrl";
  378. reg = <0x1000000 0x300000>;
  379. interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
  380. gpio-controller;
  381. gpio-ranges = <&tlmm 0 0 142>;
  382. #gpio-cells = <2>;
  383. interrupt-controller;
  384. #interrupt-cells = <2>;
  385. uart_console_active: uart-console-active-pins {
  386. pins = "gpio4", "gpio5";
  387. function = "blsp_uart2";
  388. drive-strength = <2>;
  389. bias-disable;
  390. };
  391. uart_console_sleep: uart-console-sleep-pins {
  392. pins = "gpio4", "gpio5";
  393. function = "blsp_uart2";
  394. drive-strength = <2>;
  395. bias-pull-down;
  396. };
  397. sdc1_clk_on: sdc1-clk-on-pins {
  398. pins = "sdc1_clk";
  399. bias-disable;
  400. drive-strength = <16>;
  401. };
  402. sdc1_clk_off: sdc1-clk-off-pins {
  403. pins = "sdc1_clk";
  404. bias-disable;
  405. drive-strength = <2>;
  406. };
  407. sdc1_cmd_on: sdc1-cmd-on-pins {
  408. pins = "sdc1_cmd";
  409. bias-disable;
  410. drive-strength = <10>;
  411. };
  412. sdc1_cmd_off: sdc1-cmd-off-pins {
  413. pins = "sdc1_cmd";
  414. bias-disable;
  415. drive-strength = <2>;
  416. };
  417. sdc1_data_on: sdc1-data-on-pins {
  418. pins = "sdc1_data";
  419. bias-pull-up;
  420. drive-strength = <10>;
  421. };
  422. sdc1_data_off: sdc1-data-off-pins {
  423. pins = "sdc1_data";
  424. bias-pull-up;
  425. drive-strength = <2>;
  426. };
  427. sdc1_rclk_on: sdc1-rclk-on-pins {
  428. pins = "sdc1_rclk";
  429. bias-pull-down;
  430. };
  431. sdc1_rclk_off: sdc1-rclk-off-pins {
  432. pins = "sdc1_rclk";
  433. bias-pull-down;
  434. };
  435. sdc2_clk_on: sdc2-clk-on-pins {
  436. pins = "sdc2_clk";
  437. drive-strength = <16>;
  438. bias-disable;
  439. };
  440. sdc2_clk_off: sdc2-clk-off-pins {
  441. pins = "sdc2_clk";
  442. bias-disable;
  443. drive-strength = <2>;
  444. };
  445. sdc2_cmd_on: sdc2-cmd-on-pins {
  446. pins = "sdc2_cmd";
  447. bias-pull-up;
  448. drive-strength = <10>;
  449. };
  450. sdc2_cmd_off: sdc2-cmd-off-pins {
  451. pins = "sdc2_cmd";
  452. bias-pull-up;
  453. drive-strength = <2>;
  454. };
  455. sdc2_data_on: sdc2-data-on-pins {
  456. pins = "sdc2_data";
  457. bias-pull-up;
  458. drive-strength = <10>;
  459. };
  460. sdc2_data_off: sdc2-data-off-pins {
  461. pins = "sdc2_data";
  462. bias-pull-up;
  463. drive-strength = <2>;
  464. };
  465. sdc2_cd_on: cd-on-pins {
  466. pins = "gpio133";
  467. function = "gpio";
  468. drive-strength = <2>;
  469. bias-pull-up;
  470. };
  471. sdc2_cd_off: cd-off-pins {
  472. pins = "gpio133";
  473. function = "gpio";
  474. drive-strength = <2>;
  475. bias-disable;
  476. };
  477. gpio_key_default: gpio-key-default-pins {
  478. pins = "gpio85";
  479. function = "gpio";
  480. drive-strength = <2>;
  481. bias-pull-up;
  482. };
  483. i2c_1_default: i2c-1-default-pins {
  484. pins = "gpio2", "gpio3";
  485. function = "blsp_i2c1";
  486. drive-strength = <2>;
  487. bias-disable;
  488. };
  489. i2c_1_sleep: i2c-1-sleep-pins {
  490. pins = "gpio2", "gpio3";
  491. function = "gpio";
  492. drive-strength = <2>;
  493. bias-disable;
  494. };
  495. i2c_2_default: i2c-2-default-pins {
  496. pins = "gpio6", "gpio7";
  497. function = "blsp_i2c2";
  498. drive-strength = <2>;
  499. bias-disable;
  500. };
  501. i2c_2_sleep: i2c-2-sleep-pins {
  502. pins = "gpio6", "gpio7";
  503. function = "gpio";
  504. drive-strength = <2>;
  505. bias-disable;
  506. };
  507. i2c_3_default: i2c-3-default-pins {
  508. pins = "gpio10", "gpio11";
  509. function = "blsp_i2c3";
  510. drive-strength = <2>;
  511. bias-disable;
  512. };
  513. i2c_3_sleep: i2c-3-sleep-pins {
  514. pins = "gpio10", "gpio11";
  515. function = "gpio";
  516. drive-strength = <2>;
  517. bias-disable;
  518. };
  519. i2c_4_default: i2c-4-default-pins {
  520. pins = "gpio14", "gpio15";
  521. function = "blsp_i2c4";
  522. drive-strength = <2>;
  523. bias-disable;
  524. };
  525. i2c_4_sleep: i2c-4-sleep-pins {
  526. pins = "gpio14", "gpio15";
  527. function = "gpio";
  528. drive-strength = <2>;
  529. bias-disable;
  530. };
  531. i2c_5_default: i2c-5-default-pins {
  532. pins = "gpio18", "gpio19";
  533. function = "blsp_i2c5";
  534. drive-strength = <2>;
  535. bias-disable;
  536. };
  537. i2c_5_sleep: i2c-5-sleep-pins {
  538. pins = "gpio18", "gpio19";
  539. function = "gpio";
  540. drive-strength = <2>;
  541. bias-disable;
  542. };
  543. i2c_6_default: i2c-6-default-pins {
  544. pins = "gpio22", "gpio23";
  545. function = "blsp_i2c6";
  546. drive-strength = <2>;
  547. bias-disable;
  548. };
  549. i2c_6_sleep: i2c-6-sleep-pins {
  550. pins = "gpio22", "gpio23";
  551. function = "gpio";
  552. drive-strength = <2>;
  553. bias-disable;
  554. };
  555. i2c_7_default: i2c-7-default-pins {
  556. pins = "gpio135", "gpio136";
  557. function = "blsp_i2c7";
  558. drive-strength = <2>;
  559. bias-disable;
  560. };
  561. i2c_7_sleep: i2c-7-sleep-pins {
  562. pins = "gpio135", "gpio136";
  563. function = "gpio";
  564. drive-strength = <2>;
  565. bias-disable;
  566. };
  567. i2c_8_default: i2c-8-default-pins {
  568. pins = "gpio98", "gpio99";
  569. function = "blsp_i2c8";
  570. drive-strength = <2>;
  571. bias-disable;
  572. };
  573. i2c_8_sleep: i2c-8-sleep-pins {
  574. pins = "gpio98", "gpio99";
  575. function = "gpio";
  576. drive-strength = <2>;
  577. bias-disable;
  578. };
  579. };
  580. gcc: clock-controller@1800000 {
  581. compatible = "qcom,gcc-msm8953";
  582. reg = <0x1800000 0x80000>;
  583. #clock-cells = <1>;
  584. #reset-cells = <1>;
  585. #power-domain-cells = <1>;
  586. clocks = <&xo_board>,
  587. <&sleep_clk>,
  588. <0>,
  589. <0>,
  590. <0>,
  591. <0>;
  592. clock-names = "xo",
  593. "sleep",
  594. "dsi0pll",
  595. "dsi0pllbyte",
  596. "dsi1pll",
  597. "dsi1pllbyte";
  598. };
  599. tcsr_mutex: hwlock@1905000 {
  600. compatible = "qcom,tcsr-mutex";
  601. reg = <0x1905000 0x20000>;
  602. #hwlock-cells = <1>;
  603. };
  604. tcsr: syscon@1937000 {
  605. compatible = "qcom,tcsr-msm8953", "syscon";
  606. reg = <0x1937000 0x30000>;
  607. };
  608. tcsr_phy_clk_scheme_sel: syscon@193f044 {
  609. compatible = "qcom,tcsr-msm8953", "syscon";
  610. reg = <0x193f044 0x4>;
  611. };
  612. spmi_bus: spmi@200f000 {
  613. compatible = "qcom,spmi-pmic-arb";
  614. reg = <0x200f000 0x1000>,
  615. <0x2400000 0x800000>,
  616. <0x2c00000 0x800000>,
  617. <0x3800000 0x200000>,
  618. <0x200a000 0x2100>;
  619. reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
  620. interrupt-names = "periph_irq";
  621. interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
  622. qcom,ee = <0>;
  623. qcom,channel = <0>;
  624. interrupt-controller;
  625. #interrupt-cells = <4>;
  626. #address-cells = <2>;
  627. #size-cells = <0>;
  628. };
  629. usb3: usb@70f8800 {
  630. compatible = "qcom,msm8953-dwc3", "qcom,dwc3";
  631. reg = <0x70f8800 0x400>;
  632. #address-cells = <1>;
  633. #size-cells = <1>;
  634. ranges;
  635. interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
  636. <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
  637. interrupt-names = "hs_phy_irq", "ss_phy_irq";
  638. clocks = <&gcc GCC_USB_PHY_CFG_AHB_CLK>,
  639. <&gcc GCC_USB30_MASTER_CLK>,
  640. <&gcc GCC_PCNOC_USB3_AXI_CLK>,
  641. <&gcc GCC_USB30_SLEEP_CLK>,
  642. <&gcc GCC_USB30_MOCK_UTMI_CLK>;
  643. clock-names = "cfg_noc",
  644. "core",
  645. "iface",
  646. "sleep",
  647. "mock_utmi";
  648. assigned-clocks = <&gcc GCC_USB30_MOCK_UTMI_CLK>,
  649. <&gcc GCC_USB30_MASTER_CLK>;
  650. assigned-clock-rates = <19200000>, <133330000>;
  651. power-domains = <&gcc USB30_GDSC>;
  652. qcom,select-utmi-as-pipe-clk;
  653. status = "disabled";
  654. usb3_dwc3: usb@7000000 {
  655. compatible = "snps,dwc3";
  656. reg = <0x07000000 0xcc00>;
  657. interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
  658. phys = <&hsusb_phy>;
  659. phy-names = "usb2-phy";
  660. snps,usb2-gadget-lpm-disable;
  661. snps,dis-u1-entry-quirk;
  662. snps,dis-u2-entry-quirk;
  663. snps,is-utmi-l1-suspend;
  664. snps,hird-threshold = /bits/ 8 <0x00>;
  665. maximum-speed = "high-speed";
  666. phy_mode = "utmi";
  667. };
  668. };
  669. sdhc_1: mmc@7824900 {
  670. compatible = "qcom,msm8953-sdhci", "qcom,sdhci-msm-v4";
  671. reg = <0x7824900 0x500>, <0x7824000 0x800>;
  672. reg-names = "hc", "core";
  673. interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
  674. <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
  675. interrupt-names = "hc_irq", "pwr_irq";
  676. clocks = <&gcc GCC_SDCC1_AHB_CLK>,
  677. <&gcc GCC_SDCC1_APPS_CLK>,
  678. <&xo_board>;
  679. clock-names = "iface", "core", "xo";
  680. power-domains = <&rpmpd MSM8953_VDDCX>;
  681. operating-points-v2 = <&sdhc1_opp_table>;
  682. pinctrl-names = "default", "sleep";
  683. pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>;
  684. pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;
  685. mmc-hs400-1_8v;
  686. mmc-hs200-1_8v;
  687. mmc-ddr-1_8v;
  688. bus-width = <8>;
  689. non-removable;
  690. status = "disabled";
  691. sdhc1_opp_table: opp-table-sdhc1 {
  692. compatible = "operating-points-v2";
  693. opp-25000000 {
  694. opp-hz = /bits/ 64 <25000000>;
  695. required-opps = <&rpmpd_opp_low_svs>;
  696. };
  697. opp-50000000 {
  698. opp-hz = /bits/ 64 <50000000>;
  699. required-opps = <&rpmpd_opp_svs>;
  700. };
  701. opp-100000000 {
  702. opp-hz = /bits/ 64 <100000000>;
  703. required-opps = <&rpmpd_opp_svs>;
  704. };
  705. opp-192000000 {
  706. opp-hz = /bits/ 64 <192000000>;
  707. required-opps = <&rpmpd_opp_nom>;
  708. };
  709. opp-384000000 {
  710. opp-hz = /bits/ 64 <384000000>;
  711. required-opps = <&rpmpd_opp_nom>;
  712. };
  713. };
  714. };
  715. sdhc_2: mmc@7864900 {
  716. compatible = "qcom,msm8953-sdhci", "qcom,sdhci-msm-v4";
  717. reg = <0x7864900 0x500>, <0x7864000 0x800>;
  718. reg-names = "hc", "core";
  719. interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
  720. <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
  721. interrupt-names = "hc_irq", "pwr_irq";
  722. clocks = <&gcc GCC_SDCC2_AHB_CLK>,
  723. <&gcc GCC_SDCC2_APPS_CLK>,
  724. <&xo_board>;
  725. clock-names = "iface", "core", "xo";
  726. power-domains = <&rpmpd MSM8953_VDDCX>;
  727. operating-points-v2 = <&sdhc2_opp_table>;
  728. pinctrl-names = "default", "sleep";
  729. pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
  730. pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
  731. bus-width = <4>;
  732. status = "disabled";
  733. sdhc2_opp_table: opp-table-sdhc2 {
  734. compatible = "operating-points-v2";
  735. opp-25000000 {
  736. opp-hz = /bits/ 64 <25000000>;
  737. required-opps = <&rpmpd_opp_low_svs>;
  738. };
  739. opp-50000000 {
  740. opp-hz = /bits/ 64 <50000000>;
  741. required-opps = <&rpmpd_opp_svs>;
  742. };
  743. opp-100000000 {
  744. opp-hz = /bits/ 64 <100000000>;
  745. required-opps = <&rpmpd_opp_svs>;
  746. };
  747. opp-177770000 {
  748. opp-hz = /bits/ 64 <177770000>;
  749. required-opps = <&rpmpd_opp_nom>;
  750. };
  751. opp-200000000 {
  752. opp-hz = /bits/ 64 <200000000>;
  753. required-opps = <&rpmpd_opp_nom>;
  754. };
  755. };
  756. };
  757. uart_0: serial@78af000 {
  758. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  759. reg = <0x78af000 0x200>;
  760. interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
  761. clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
  762. <&gcc GCC_BLSP1_AHB_CLK>;
  763. clock-names = "core", "iface";
  764. status = "disabled";
  765. };
  766. i2c_1: i2c@78b5000 {
  767. compatible = "qcom,i2c-qup-v2.2.1";
  768. reg = <0x78b5000 0x600>;
  769. interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
  770. clock-names = "core", "iface";
  771. clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
  772. <&gcc GCC_BLSP1_AHB_CLK>;
  773. pinctrl-names = "default", "sleep";
  774. pinctrl-0 = <&i2c_1_default>;
  775. pinctrl-1 = <&i2c_1_sleep>;
  776. #address-cells = <1>;
  777. #size-cells = <0>;
  778. status = "disabled";
  779. };
  780. i2c_2: i2c@78b6000 {
  781. compatible = "qcom,i2c-qup-v2.2.1";
  782. reg = <0x78b6000 0x600>;
  783. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  784. clock-names = "core", "iface";
  785. clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
  786. <&gcc GCC_BLSP1_AHB_CLK>;
  787. pinctrl-names = "default", "sleep";
  788. pinctrl-0 = <&i2c_2_default>;
  789. pinctrl-1 = <&i2c_2_sleep>;
  790. #address-cells = <1>;
  791. #size-cells = <0>;
  792. status = "disabled";
  793. };
  794. i2c_3: i2c@78b7000 {
  795. compatible = "qcom,i2c-qup-v2.2.1";
  796. reg = <0x78b7000 0x600>;
  797. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  798. clock-names = "core", "iface";
  799. clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
  800. <&gcc GCC_BLSP1_AHB_CLK>;
  801. pinctrl-names = "default", "sleep";
  802. pinctrl-0 = <&i2c_3_default>;
  803. pinctrl-1 = <&i2c_3_sleep>;
  804. #address-cells = <1>;
  805. #size-cells = <0>;
  806. status = "disabled";
  807. };
  808. i2c_4: i2c@78b8000 {
  809. compatible = "qcom,i2c-qup-v2.2.1";
  810. reg = <0x78b8000 0x600>;
  811. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  812. clock-names = "core", "iface";
  813. clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
  814. <&gcc GCC_BLSP1_AHB_CLK>;
  815. pinctrl-names = "default", "sleep";
  816. pinctrl-0 = <&i2c_4_default>;
  817. pinctrl-1 = <&i2c_4_sleep>;
  818. #address-cells = <1>;
  819. #size-cells = <0>;
  820. status = "disabled";
  821. };
  822. i2c_5: i2c@7af5000 {
  823. compatible = "qcom,i2c-qup-v2.2.1";
  824. reg = <0x7af5000 0x600>;
  825. interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
  826. clock-names = "core", "iface";
  827. clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>,
  828. <&gcc GCC_BLSP2_AHB_CLK>;
  829. pinctrl-names = "default", "sleep";
  830. pinctrl-0 = <&i2c_5_default>;
  831. pinctrl-1 = <&i2c_5_sleep>;
  832. #address-cells = <1>;
  833. #size-cells = <0>;
  834. status = "disabled";
  835. };
  836. i2c_6: i2c@7af6000 {
  837. compatible = "qcom,i2c-qup-v2.2.1";
  838. reg = <0x7af6000 0x600>;
  839. interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
  840. clock-names = "core", "iface";
  841. clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>,
  842. <&gcc GCC_BLSP2_AHB_CLK>;
  843. pinctrl-names = "default", "sleep";
  844. pinctrl-0 = <&i2c_6_default>;
  845. pinctrl-1 = <&i2c_6_sleep>;
  846. #address-cells = <1>;
  847. #size-cells = <0>;
  848. status = "disabled";
  849. };
  850. i2c_7: i2c@7af7000 {
  851. compatible = "qcom,i2c-qup-v2.2.1";
  852. reg = <0x7af7000 0x600>;
  853. interrupts = <GIC_SPI 301 IRQ_TYPE_LEVEL_HIGH>;
  854. clock-names = "core", "iface";
  855. clocks = <&gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>,
  856. <&gcc GCC_BLSP2_AHB_CLK>;
  857. pinctrl-names = "default", "sleep";
  858. pinctrl-0 = <&i2c_7_default>;
  859. pinctrl-1 = <&i2c_7_sleep>;
  860. #address-cells = <1>;
  861. #size-cells = <0>;
  862. status = "disabled";
  863. };
  864. i2c_8: i2c@7af8000 {
  865. compatible = "qcom,i2c-qup-v2.2.1";
  866. reg = <0x7af8000 0x600>;
  867. interrupts = <GIC_SPI 302 IRQ_TYPE_LEVEL_HIGH>;
  868. clock-names = "core", "iface";
  869. clocks = <&gcc GCC_BLSP2_QUP4_I2C_APPS_CLK>,
  870. <&gcc GCC_BLSP2_AHB_CLK>;
  871. pinctrl-names = "default", "sleep";
  872. pinctrl-0 = <&i2c_8_default>;
  873. pinctrl-1 = <&i2c_8_sleep>;
  874. #address-cells = <1>;
  875. #size-cells = <0>;
  876. status = "disabled";
  877. };
  878. intc: interrupt-controller@b000000 {
  879. compatible = "qcom,msm-qgic2";
  880. interrupt-controller;
  881. #interrupt-cells = <3>;
  882. reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
  883. };
  884. apcs: mailbox@b011000 {
  885. compatible = "qcom,msm8953-apcs-kpss-global", "syscon";
  886. reg = <0xb011000 0x1000>;
  887. #mbox-cells = <1>;
  888. };
  889. timer@b120000 {
  890. compatible = "arm,armv7-timer-mem";
  891. reg = <0xb120000 0x1000>;
  892. #address-cells = <0x01>;
  893. #size-cells = <0x01>;
  894. ranges;
  895. frame@b121000 {
  896. frame-number = <0>;
  897. interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
  898. <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
  899. reg = <0xb121000 0x1000>,
  900. <0xb122000 0x1000>;
  901. };
  902. frame@b123000 {
  903. frame-number = <1>;
  904. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
  905. reg = <0xb123000 0x1000>;
  906. status = "disabled";
  907. };
  908. frame@b124000 {
  909. frame-number = <2>;
  910. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  911. reg = <0xb124000 0x1000>;
  912. status = "disabled";
  913. };
  914. frame@b125000 {
  915. frame-number = <3>;
  916. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
  917. reg = <0xb125000 0x1000>;
  918. status = "disabled";
  919. };
  920. frame@b126000 {
  921. frame-number = <4>;
  922. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
  923. reg = <0xb126000 0x1000>;
  924. status = "disabled";
  925. };
  926. frame@b127000 {
  927. frame-number = <5>;
  928. interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
  929. reg = <0xb127000 0x1000>;
  930. status = "disabled";
  931. };
  932. frame@b128000 {
  933. frame-number = <6>;
  934. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  935. reg = <0xb128000 0x1000>;
  936. status = "disabled";
  937. };
  938. };
  939. };
  940. thermal-zones {
  941. cpu0-thermal {
  942. polling-delay-passive = <250>;
  943. polling-delay = <1000>;
  944. thermal-sensors = <&tsens0 9>;
  945. trips {
  946. cpu0_alert: trip-point0 {
  947. temperature = <80000>;
  948. hysteresis = <2000>;
  949. type = "passive";
  950. };
  951. cpu0_crit: crit {
  952. temperature = <100000>;
  953. hysteresis = <2000>;
  954. type = "critical";
  955. };
  956. };
  957. cooling-maps {
  958. map0 {
  959. trip = <&cpu0_alert>;
  960. cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  961. };
  962. };
  963. };
  964. cpu1-thermal {
  965. polling-delay-passive = <250>;
  966. polling-delay = <1000>;
  967. thermal-sensors = <&tsens0 10>;
  968. trips {
  969. cpu1_alert: trip-point0 {
  970. temperature = <80000>;
  971. hysteresis = <2000>;
  972. type = "passive";
  973. };
  974. cpu1_crit: crit {
  975. temperature = <100000>;
  976. hysteresis = <2000>;
  977. type = "critical";
  978. };
  979. };
  980. cooling-maps {
  981. map0 {
  982. trip = <&cpu1_alert>;
  983. cooling-device = <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  984. };
  985. };
  986. };
  987. cpu2-thermal {
  988. polling-delay-passive = <250>;
  989. polling-delay = <1000>;
  990. thermal-sensors = <&tsens0 11>;
  991. trips {
  992. cpu2_alert: trip-point0 {
  993. temperature = <80000>;
  994. hysteresis = <2000>;
  995. type = "passive";
  996. };
  997. cpu2_crit: crit {
  998. temperature = <100000>;
  999. hysteresis = <2000>;
  1000. type = "critical";
  1001. };
  1002. };
  1003. cooling-maps {
  1004. map0 {
  1005. trip = <&cpu2_alert>;
  1006. cooling-device = <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1007. };
  1008. };
  1009. };
  1010. cpu3-thermal {
  1011. polling-delay-passive = <250>;
  1012. polling-delay = <1000>;
  1013. thermal-sensors = <&tsens0 12>;
  1014. trips {
  1015. cpu3_alert: trip-point0 {
  1016. temperature = <80000>;
  1017. hysteresis = <2000>;
  1018. type = "passive";
  1019. };
  1020. cpu3_crit: crit {
  1021. temperature = <100000>;
  1022. hysteresis = <2000>;
  1023. type = "critical";
  1024. };
  1025. };
  1026. cooling-maps {
  1027. map0 {
  1028. trip = <&cpu3_alert>;
  1029. cooling-device = <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1030. };
  1031. };
  1032. };
  1033. cpu4-thermal {
  1034. polling-delay-passive = <250>;
  1035. polling-delay = <1000>;
  1036. thermal-sensors = <&tsens0 4>;
  1037. trips {
  1038. cpu4_alert: trip-point0 {
  1039. temperature = <80000>;
  1040. hysteresis = <2000>;
  1041. type = "passive";
  1042. };
  1043. cpu4_crit: crit {
  1044. temperature = <100000>;
  1045. hysteresis = <2000>;
  1046. type = "critical";
  1047. };
  1048. };
  1049. cooling-maps {
  1050. map0 {
  1051. trip = <&cpu4_alert>;
  1052. cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1053. };
  1054. };
  1055. };
  1056. cpu5-thermal {
  1057. polling-delay-passive = <250>;
  1058. polling-delay = <1000>;
  1059. thermal-sensors = <&tsens0 5>;
  1060. trips {
  1061. cpu5_alert: trip-point0 {
  1062. temperature = <80000>;
  1063. hysteresis = <2000>;
  1064. type = "passive";
  1065. };
  1066. cpu5_crit: crit {
  1067. temperature = <100000>;
  1068. hysteresis = <2000>;
  1069. type = "critical";
  1070. };
  1071. };
  1072. cooling-maps {
  1073. map0 {
  1074. trip = <&cpu5_alert>;
  1075. cooling-device = <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1076. };
  1077. };
  1078. };
  1079. cpu6-thermal {
  1080. polling-delay-passive = <250>;
  1081. polling-delay = <1000>;
  1082. thermal-sensors = <&tsens0 6>;
  1083. trips {
  1084. cpu6_alert: trip-point0 {
  1085. temperature = <80000>;
  1086. hysteresis = <2000>;
  1087. type = "passive";
  1088. };
  1089. cpu6_crit: crit {
  1090. temperature = <100000>;
  1091. hysteresis = <2000>;
  1092. type = "critical";
  1093. };
  1094. };
  1095. cooling-maps {
  1096. map0 {
  1097. trip = <&cpu6_alert>;
  1098. cooling-device = <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1099. };
  1100. };
  1101. };
  1102. cpu7-thermal {
  1103. polling-delay-passive = <250>;
  1104. polling-delay = <1000>;
  1105. thermal-sensors = <&tsens0 7>;
  1106. trips {
  1107. cpu7_alert: trip-point0 {
  1108. temperature = <80000>;
  1109. hysteresis = <2000>;
  1110. type = "passive";
  1111. };
  1112. cpu7_crit: crit {
  1113. temperature = <100000>;
  1114. hysteresis = <2000>;
  1115. type = "critical";
  1116. };
  1117. };
  1118. cooling-maps {
  1119. map0 {
  1120. trip = <&cpu7_alert>;
  1121. cooling-device = <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1122. };
  1123. };
  1124. };
  1125. };
  1126. timer {
  1127. compatible = "arm,armv8-timer";
  1128. interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
  1129. <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
  1130. <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
  1131. <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
  1132. };
  1133. };