qcs404.dtsi 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659
  1. // SPDX-License-Identifier: GPL-2.0
  2. // Copyright (c) 2018, Linaro Limited
  3. #include <dt-bindings/interrupt-controller/arm-gic.h>
  4. #include <dt-bindings/clock/qcom,gcc-qcs404.h>
  5. #include <dt-bindings/clock/qcom,turingcc-qcs404.h>
  6. #include <dt-bindings/clock/qcom,rpmcc.h>
  7. #include <dt-bindings/power/qcom-rpmpd.h>
  8. #include <dt-bindings/thermal/thermal.h>
  9. / {
  10. interrupt-parent = <&intc>;
  11. #address-cells = <2>;
  12. #size-cells = <2>;
  13. chosen { };
  14. clocks {
  15. xo_board: xo-board {
  16. compatible = "fixed-clock";
  17. #clock-cells = <0>;
  18. clock-frequency = <19200000>;
  19. };
  20. sleep_clk: sleep-clk {
  21. compatible = "fixed-clock";
  22. #clock-cells = <0>;
  23. clock-frequency = <32768>;
  24. };
  25. };
  26. cpus {
  27. #address-cells = <1>;
  28. #size-cells = <0>;
  29. CPU0: cpu@100 {
  30. device_type = "cpu";
  31. compatible = "arm,cortex-a53";
  32. reg = <0x100>;
  33. enable-method = "psci";
  34. cpu-idle-states = <&CPU_SLEEP_0>;
  35. next-level-cache = <&L2_0>;
  36. #cooling-cells = <2>;
  37. clocks = <&apcs_glb>;
  38. operating-points-v2 = <&cpu_opp_table>;
  39. power-domains = <&cpr>;
  40. power-domain-names = "cpr";
  41. };
  42. CPU1: cpu@101 {
  43. device_type = "cpu";
  44. compatible = "arm,cortex-a53";
  45. reg = <0x101>;
  46. enable-method = "psci";
  47. cpu-idle-states = <&CPU_SLEEP_0>;
  48. next-level-cache = <&L2_0>;
  49. #cooling-cells = <2>;
  50. clocks = <&apcs_glb>;
  51. operating-points-v2 = <&cpu_opp_table>;
  52. power-domains = <&cpr>;
  53. power-domain-names = "cpr";
  54. };
  55. CPU2: cpu@102 {
  56. device_type = "cpu";
  57. compatible = "arm,cortex-a53";
  58. reg = <0x102>;
  59. enable-method = "psci";
  60. cpu-idle-states = <&CPU_SLEEP_0>;
  61. next-level-cache = <&L2_0>;
  62. #cooling-cells = <2>;
  63. clocks = <&apcs_glb>;
  64. operating-points-v2 = <&cpu_opp_table>;
  65. power-domains = <&cpr>;
  66. power-domain-names = "cpr";
  67. };
  68. CPU3: cpu@103 {
  69. device_type = "cpu";
  70. compatible = "arm,cortex-a53";
  71. reg = <0x103>;
  72. enable-method = "psci";
  73. cpu-idle-states = <&CPU_SLEEP_0>;
  74. next-level-cache = <&L2_0>;
  75. #cooling-cells = <2>;
  76. clocks = <&apcs_glb>;
  77. operating-points-v2 = <&cpu_opp_table>;
  78. power-domains = <&cpr>;
  79. power-domain-names = "cpr";
  80. };
  81. L2_0: l2-cache {
  82. compatible = "cache";
  83. cache-level = <2>;
  84. };
  85. idle-states {
  86. entry-method = "psci";
  87. CPU_SLEEP_0: cpu-sleep-0 {
  88. compatible = "arm,idle-state";
  89. idle-state-name = "standalone-power-collapse";
  90. arm,psci-suspend-param = <0x40000003>;
  91. entry-latency-us = <125>;
  92. exit-latency-us = <180>;
  93. min-residency-us = <595>;
  94. local-timer-stop;
  95. };
  96. };
  97. };
  98. cpu_opp_table: opp-table-cpu {
  99. compatible = "operating-points-v2-kryo-cpu";
  100. opp-shared;
  101. opp-1094400000 {
  102. opp-hz = /bits/ 64 <1094400000>;
  103. required-opps = <&cpr_opp1>;
  104. };
  105. opp-1248000000 {
  106. opp-hz = /bits/ 64 <1248000000>;
  107. required-opps = <&cpr_opp2>;
  108. };
  109. opp-1401600000 {
  110. opp-hz = /bits/ 64 <1401600000>;
  111. required-opps = <&cpr_opp3>;
  112. };
  113. };
  114. cpr_opp_table: opp-table-cpr {
  115. compatible = "operating-points-v2-qcom-level";
  116. cpr_opp1: opp1 {
  117. opp-level = <1>;
  118. qcom,opp-fuse-level = <1>;
  119. };
  120. cpr_opp2: opp2 {
  121. opp-level = <2>;
  122. qcom,opp-fuse-level = <2>;
  123. };
  124. cpr_opp3: opp3 {
  125. opp-level = <3>;
  126. qcom,opp-fuse-level = <3>;
  127. };
  128. };
  129. firmware {
  130. scm: scm {
  131. compatible = "qcom,scm-qcs404", "qcom,scm";
  132. #reset-cells = <1>;
  133. };
  134. };
  135. memory@80000000 {
  136. device_type = "memory";
  137. /* We expect the bootloader to fill in the size */
  138. reg = <0 0x80000000 0 0>;
  139. };
  140. psci {
  141. compatible = "arm,psci-1.0";
  142. method = "smc";
  143. };
  144. reserved-memory {
  145. #address-cells = <2>;
  146. #size-cells = <2>;
  147. ranges;
  148. tz_apps_mem: memory@85900000 {
  149. reg = <0 0x85900000 0 0x500000>;
  150. no-map;
  151. };
  152. xbl_mem: memory@85e00000 {
  153. reg = <0 0x85e00000 0 0x100000>;
  154. no-map;
  155. };
  156. smem_region: memory@85f00000 {
  157. reg = <0 0x85f00000 0 0x200000>;
  158. no-map;
  159. };
  160. tz_mem: memory@86100000 {
  161. reg = <0 0x86100000 0 0x300000>;
  162. no-map;
  163. };
  164. wlan_fw_mem: memory@86400000 {
  165. reg = <0 0x86400000 0 0x1100000>;
  166. no-map;
  167. };
  168. adsp_fw_mem: memory@87500000 {
  169. reg = <0 0x87500000 0 0x1a00000>;
  170. no-map;
  171. };
  172. cdsp_fw_mem: memory@88f00000 {
  173. reg = <0 0x88f00000 0 0x600000>;
  174. no-map;
  175. };
  176. wlan_msa_mem: memory@89500000 {
  177. reg = <0 0x89500000 0 0x100000>;
  178. no-map;
  179. };
  180. uefi_mem: memory@9f800000 {
  181. reg = <0 0x9f800000 0 0x800000>;
  182. no-map;
  183. };
  184. };
  185. rpm-glink {
  186. compatible = "qcom,glink-rpm";
  187. interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
  188. qcom,rpm-msg-ram = <&rpm_msg_ram>;
  189. mboxes = <&apcs_glb 0>;
  190. rpm_requests: glink-channel {
  191. compatible = "qcom,rpm-qcs404";
  192. qcom,glink-channels = "rpm_requests";
  193. rpmcc: clock-controller {
  194. compatible = "qcom,rpmcc-qcs404", "qcom,rpmcc";
  195. #clock-cells = <1>;
  196. };
  197. rpmpd: power-controller {
  198. compatible = "qcom,qcs404-rpmpd";
  199. #power-domain-cells = <1>;
  200. operating-points-v2 = <&rpmpd_opp_table>;
  201. rpmpd_opp_table: opp-table {
  202. compatible = "operating-points-v2";
  203. rpmpd_opp_ret: opp1 {
  204. opp-level = <16>;
  205. };
  206. rpmpd_opp_ret_plus: opp2 {
  207. opp-level = <32>;
  208. };
  209. rpmpd_opp_min_svs: opp3 {
  210. opp-level = <48>;
  211. };
  212. rpmpd_opp_low_svs: opp4 {
  213. opp-level = <64>;
  214. };
  215. rpmpd_opp_svs: opp5 {
  216. opp-level = <128>;
  217. };
  218. rpmpd_opp_svs_plus: opp6 {
  219. opp-level = <192>;
  220. };
  221. rpmpd_opp_nom: opp7 {
  222. opp-level = <256>;
  223. };
  224. rpmpd_opp_nom_plus: opp8 {
  225. opp-level = <320>;
  226. };
  227. rpmpd_opp_turbo: opp9 {
  228. opp-level = <384>;
  229. };
  230. rpmpd_opp_turbo_no_cpr: opp10 {
  231. opp-level = <416>;
  232. };
  233. rpmpd_opp_turbo_plus: opp11 {
  234. opp-level = <512>;
  235. };
  236. };
  237. };
  238. };
  239. };
  240. smem {
  241. compatible = "qcom,smem";
  242. memory-region = <&smem_region>;
  243. qcom,rpm-msg-ram = <&rpm_msg_ram>;
  244. hwlocks = <&tcsr_mutex 3>;
  245. };
  246. soc: soc@0 {
  247. #address-cells = <1>;
  248. #size-cells = <1>;
  249. ranges = <0 0 0 0xffffffff>;
  250. compatible = "simple-bus";
  251. turingcc: clock-controller@800000 {
  252. compatible = "qcom,qcs404-turingcc";
  253. reg = <0x00800000 0x30000>;
  254. clocks = <&gcc GCC_CDSP_CFG_AHB_CLK>;
  255. #clock-cells = <1>;
  256. #reset-cells = <1>;
  257. status = "disabled";
  258. };
  259. rpm_msg_ram: sram@60000 {
  260. compatible = "qcom,rpm-msg-ram";
  261. reg = <0x00060000 0x6000>;
  262. };
  263. usb3_phy: phy@78000 {
  264. compatible = "qcom,usb-ss-28nm-phy";
  265. reg = <0x00078000 0x400>;
  266. #phy-cells = <0>;
  267. clocks = <&rpmcc RPM_SMD_LN_BB_CLK>,
  268. <&gcc GCC_USB_HS_PHY_CFG_AHB_CLK>,
  269. <&gcc GCC_USB3_PHY_PIPE_CLK>;
  270. clock-names = "ref", "ahb", "pipe";
  271. resets = <&gcc GCC_USB3_PHY_BCR>,
  272. <&gcc GCC_USB3PHY_PHY_BCR>;
  273. reset-names = "com", "phy";
  274. status = "disabled";
  275. };
  276. usb2_phy_prim: phy@7a000 {
  277. compatible = "qcom,usb-hs-28nm-femtophy";
  278. reg = <0x0007a000 0x200>;
  279. #phy-cells = <0>;
  280. clocks = <&rpmcc RPM_SMD_LN_BB_CLK>,
  281. <&gcc GCC_USB_HS_PHY_CFG_AHB_CLK>,
  282. <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
  283. clock-names = "ref", "ahb", "sleep";
  284. resets = <&gcc GCC_USB_HS_PHY_CFG_AHB_BCR>,
  285. <&gcc GCC_USB2A_PHY_BCR>;
  286. reset-names = "phy", "por";
  287. status = "disabled";
  288. };
  289. usb2_phy_sec: phy@7c000 {
  290. compatible = "qcom,usb-hs-28nm-femtophy";
  291. reg = <0x0007c000 0x200>;
  292. #phy-cells = <0>;
  293. clocks = <&rpmcc RPM_SMD_LN_BB_CLK>,
  294. <&gcc GCC_USB_HS_PHY_CFG_AHB_CLK>,
  295. <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
  296. clock-names = "ref", "ahb", "sleep";
  297. resets = <&gcc GCC_QUSB2_PHY_BCR>,
  298. <&gcc GCC_USB2_HS_PHY_ONLY_BCR>;
  299. reset-names = "phy", "por";
  300. status = "disabled";
  301. };
  302. qfprom: qfprom@a4000 {
  303. compatible = "qcom,qcs404-qfprom", "qcom,qfprom";
  304. reg = <0x000a4000 0x1000>;
  305. #address-cells = <1>;
  306. #size-cells = <1>;
  307. tsens_caldata: caldata@d0 {
  308. reg = <0x1f8 0x14>;
  309. };
  310. cpr_efuse_speedbin: speedbin@13c {
  311. reg = <0x13c 0x4>;
  312. bits = <2 3>;
  313. };
  314. cpr_efuse_quot_offset1: qoffset1@231 {
  315. reg = <0x231 0x4>;
  316. bits = <4 7>;
  317. };
  318. cpr_efuse_quot_offset2: qoffset2@232 {
  319. reg = <0x232 0x4>;
  320. bits = <3 7>;
  321. };
  322. cpr_efuse_quot_offset3: qoffset3@233 {
  323. reg = <0x233 0x4>;
  324. bits = <2 7>;
  325. };
  326. cpr_efuse_init_voltage1: ivoltage1@229 {
  327. reg = <0x229 0x4>;
  328. bits = <4 6>;
  329. };
  330. cpr_efuse_init_voltage2: ivoltage2@22a {
  331. reg = <0x22a 0x4>;
  332. bits = <2 6>;
  333. };
  334. cpr_efuse_init_voltage3: ivoltage3@22b {
  335. reg = <0x22b 0x4>;
  336. bits = <0 6>;
  337. };
  338. cpr_efuse_quot1: quot1@22b {
  339. reg = <0x22b 0x4>;
  340. bits = <6 12>;
  341. };
  342. cpr_efuse_quot2: quot2@22d {
  343. reg = <0x22d 0x4>;
  344. bits = <2 12>;
  345. };
  346. cpr_efuse_quot3: quot3@230 {
  347. reg = <0x230 0x4>;
  348. bits = <0 12>;
  349. };
  350. cpr_efuse_ring1: ring1@228 {
  351. reg = <0x228 0x4>;
  352. bits = <0 3>;
  353. };
  354. cpr_efuse_ring2: ring2@228 {
  355. reg = <0x228 0x4>;
  356. bits = <4 3>;
  357. };
  358. cpr_efuse_ring3: ring3@229 {
  359. reg = <0x229 0x4>;
  360. bits = <0 3>;
  361. };
  362. cpr_efuse_revision: revision@218 {
  363. reg = <0x218 0x4>;
  364. bits = <3 3>;
  365. };
  366. };
  367. rng: rng@e3000 {
  368. compatible = "qcom,prng-ee";
  369. reg = <0x000e3000 0x1000>;
  370. clocks = <&gcc GCC_PRNG_AHB_CLK>;
  371. clock-names = "core";
  372. };
  373. bimc: interconnect@400000 {
  374. reg = <0x00400000 0x80000>;
  375. compatible = "qcom,qcs404-bimc";
  376. #interconnect-cells = <1>;
  377. clock-names = "bus", "bus_a";
  378. clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
  379. <&rpmcc RPM_SMD_BIMC_A_CLK>;
  380. };
  381. tsens: thermal-sensor@4a9000 {
  382. compatible = "qcom,qcs404-tsens", "qcom,tsens-v1";
  383. reg = <0x004a9000 0x1000>, /* TM */
  384. <0x004a8000 0x1000>; /* SROT */
  385. nvmem-cells = <&tsens_caldata>;
  386. nvmem-cell-names = "calib";
  387. #qcom,sensors = <10>;
  388. interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
  389. interrupt-names = "uplow";
  390. #thermal-sensor-cells = <1>;
  391. };
  392. pcnoc: interconnect@500000 {
  393. reg = <0x00500000 0x15080>;
  394. compatible = "qcom,qcs404-pcnoc";
  395. #interconnect-cells = <1>;
  396. clock-names = "bus", "bus_a";
  397. clocks = <&rpmcc RPM_SMD_PNOC_CLK>,
  398. <&rpmcc RPM_SMD_PNOC_A_CLK>;
  399. };
  400. snoc: interconnect@580000 {
  401. reg = <0x00580000 0x23080>;
  402. compatible = "qcom,qcs404-snoc";
  403. #interconnect-cells = <1>;
  404. clock-names = "bus", "bus_a";
  405. clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
  406. <&rpmcc RPM_SMD_SNOC_A_CLK>;
  407. };
  408. remoteproc_cdsp: remoteproc@b00000 {
  409. compatible = "qcom,qcs404-cdsp-pas";
  410. reg = <0x00b00000 0x4040>;
  411. interrupts-extended = <&intc GIC_SPI 229 IRQ_TYPE_EDGE_RISING>,
  412. <&cdsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
  413. <&cdsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
  414. <&cdsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
  415. <&cdsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
  416. interrupt-names = "wdog", "fatal", "ready",
  417. "handover", "stop-ack";
  418. clocks = <&xo_board>,
  419. <&gcc GCC_CDSP_CFG_AHB_CLK>,
  420. <&gcc GCC_CDSP_TBU_CLK>,
  421. <&gcc GCC_BIMC_CDSP_CLK>,
  422. <&turingcc TURING_WRAPPER_AON_CLK>,
  423. <&turingcc TURING_Q6SS_AHBS_AON_CLK>,
  424. <&turingcc TURING_Q6SS_AHBM_AON_CLK>,
  425. <&turingcc TURING_Q6SS_Q6_AXIM_CLK>;
  426. clock-names = "xo",
  427. "sway",
  428. "tbu",
  429. "bimc",
  430. "ahb_aon",
  431. "q6ss_slave",
  432. "q6ss_master",
  433. "q6_axim";
  434. resets = <&gcc GCC_CDSP_RESTART>;
  435. reset-names = "restart";
  436. qcom,halt-regs = <&tcsr 0x19004>;
  437. memory-region = <&cdsp_fw_mem>;
  438. qcom,smem-states = <&cdsp_smp2p_out 0>;
  439. qcom,smem-state-names = "stop";
  440. status = "disabled";
  441. glink-edge {
  442. interrupts = <GIC_SPI 141 IRQ_TYPE_EDGE_RISING>;
  443. qcom,remote-pid = <5>;
  444. mboxes = <&apcs_glb 12>;
  445. label = "cdsp";
  446. };
  447. };
  448. usb3: usb@7678800 {
  449. compatible = "qcom,qcs404-dwc3", "qcom,dwc3";
  450. reg = <0x07678800 0x400>;
  451. #address-cells = <1>;
  452. #size-cells = <1>;
  453. ranges;
  454. clocks = <&gcc GCC_USB30_MASTER_CLK>,
  455. <&gcc GCC_SYS_NOC_USB3_CLK>,
  456. <&gcc GCC_USB30_SLEEP_CLK>,
  457. <&gcc GCC_USB30_MOCK_UTMI_CLK>;
  458. clock-names = "core", "iface", "sleep", "mock_utmi";
  459. assigned-clocks = <&gcc GCC_USB20_MOCK_UTMI_CLK>,
  460. <&gcc GCC_USB30_MASTER_CLK>;
  461. assigned-clock-rates = <19200000>, <200000000>;
  462. status = "disabled";
  463. usb3_dwc3: usb@7580000 {
  464. compatible = "snps,dwc3";
  465. reg = <0x07580000 0xcd00>;
  466. interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
  467. phys = <&usb2_phy_prim>, <&usb3_phy>;
  468. phy-names = "usb2-phy", "usb3-phy";
  469. snps,has-lpm-erratum;
  470. snps,hird-threshold = /bits/ 8 <0x10>;
  471. snps,usb3_lpm_capable;
  472. dr_mode = "otg";
  473. };
  474. };
  475. usb2: usb@79b8800 {
  476. compatible = "qcom,qcs404-dwc3", "qcom,dwc3";
  477. reg = <0x079b8800 0x400>;
  478. #address-cells = <1>;
  479. #size-cells = <1>;
  480. ranges;
  481. clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>,
  482. <&gcc GCC_PCNOC_USB2_CLK>,
  483. <&gcc GCC_USB_HS_INACTIVITY_TIMERS_CLK>,
  484. <&gcc GCC_USB20_MOCK_UTMI_CLK>;
  485. clock-names = "core", "iface", "sleep", "mock_utmi";
  486. assigned-clocks = <&gcc GCC_USB20_MOCK_UTMI_CLK>,
  487. <&gcc GCC_USB_HS_SYSTEM_CLK>;
  488. assigned-clock-rates = <19200000>, <133333333>;
  489. status = "disabled";
  490. usb@78c0000 {
  491. compatible = "snps,dwc3";
  492. reg = <0x078c0000 0xcc00>;
  493. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
  494. phys = <&usb2_phy_sec>;
  495. phy-names = "usb2-phy";
  496. snps,has-lpm-erratum;
  497. snps,hird-threshold = /bits/ 8 <0x10>;
  498. snps,usb3_lpm_capable;
  499. dr_mode = "peripheral";
  500. };
  501. };
  502. tlmm: pinctrl@1000000 {
  503. compatible = "qcom,qcs404-pinctrl";
  504. reg = <0x01000000 0x200000>,
  505. <0x01300000 0x200000>,
  506. <0x07b00000 0x200000>;
  507. reg-names = "south", "north", "east";
  508. interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
  509. gpio-ranges = <&tlmm 0 0 120>;
  510. gpio-controller;
  511. #gpio-cells = <2>;
  512. interrupt-controller;
  513. #interrupt-cells = <2>;
  514. blsp1_i2c0_default: blsp1-i2c0-default {
  515. pins = "gpio32", "gpio33";
  516. function = "blsp_i2c0";
  517. };
  518. blsp1_i2c1_default: blsp1-i2c1-default {
  519. pins = "gpio24", "gpio25";
  520. function = "blsp_i2c1";
  521. };
  522. blsp1_i2c2_default: blsp1-i2c2-default {
  523. sda {
  524. pins = "gpio19";
  525. function = "blsp_i2c_sda_a2";
  526. };
  527. scl {
  528. pins = "gpio20";
  529. function = "blsp_i2c_scl_a2";
  530. };
  531. };
  532. blsp1_i2c3_default: blsp1-i2c3-default {
  533. pins = "gpio84", "gpio85";
  534. function = "blsp_i2c3";
  535. };
  536. blsp1_i2c4_default: blsp1-i2c4-default {
  537. pins = "gpio117", "gpio118";
  538. function = "blsp_i2c4";
  539. };
  540. blsp1_uart0_default: blsp1-uart0-default {
  541. pins = "gpio30", "gpio31", "gpio32", "gpio33";
  542. function = "blsp_uart0";
  543. };
  544. blsp1_uart1_default: blsp1-uart1-default {
  545. pins = "gpio22", "gpio23";
  546. function = "blsp_uart1";
  547. };
  548. blsp1_uart2_default: blsp1-uart2-default {
  549. rx {
  550. pins = "gpio18";
  551. function = "blsp_uart_rx_a2";
  552. };
  553. tx {
  554. pins = "gpio17";
  555. function = "blsp_uart_tx_a2";
  556. };
  557. };
  558. blsp1_uart3_default: blsp1-uart3-default {
  559. pins = "gpio82", "gpio83", "gpio84", "gpio85";
  560. function = "blsp_uart3";
  561. };
  562. blsp2_i2c0_default: blsp2-i2c0-default {
  563. pins = "gpio28", "gpio29";
  564. function = "blsp_i2c5";
  565. };
  566. blsp1_spi0_default: blsp1-spi0-default {
  567. pins = "gpio30", "gpio31", "gpio32", "gpio33";
  568. function = "blsp_spi0";
  569. };
  570. blsp1_spi1_default: blsp1-spi1-default {
  571. mosi {
  572. pins = "gpio22";
  573. function = "blsp_spi_mosi_a1";
  574. };
  575. miso {
  576. pins = "gpio23";
  577. function = "blsp_spi_miso_a1";
  578. };
  579. cs_n {
  580. pins = "gpio24";
  581. function = "blsp_spi_cs_n_a1";
  582. };
  583. clk {
  584. pins = "gpio25";
  585. function = "blsp_spi_clk_a1";
  586. };
  587. };
  588. blsp1_spi2_default: blsp1-spi2-default {
  589. pins = "gpio17", "gpio18", "gpio19", "gpio20";
  590. function = "blsp_spi2";
  591. };
  592. blsp1_spi3_default: blsp1-spi3-default {
  593. pins = "gpio82", "gpio83", "gpio84", "gpio85";
  594. function = "blsp_spi3";
  595. };
  596. blsp1_spi4_default: blsp1-spi4-default {
  597. pins = "gpio37", "gpio38", "gpio117", "gpio118";
  598. function = "blsp_spi4";
  599. };
  600. blsp2_spi0_default: blsp2-spi0-default {
  601. pins = "gpio26", "gpio27", "gpio28", "gpio29";
  602. function = "blsp_spi5";
  603. };
  604. blsp2_uart0_default: blsp2-uart0-default {
  605. pins = "gpio26", "gpio27", "gpio28", "gpio29";
  606. function = "blsp_uart5";
  607. };
  608. };
  609. gcc: clock-controller@1800000 {
  610. compatible = "qcom,gcc-qcs404";
  611. reg = <0x01800000 0x80000>;
  612. #clock-cells = <1>;
  613. #reset-cells = <1>;
  614. assigned-clocks = <&gcc GCC_APSS_AHB_CLK_SRC>;
  615. assigned-clock-rates = <19200000>;
  616. };
  617. tcsr_mutex: hwlock@1905000 {
  618. compatible = "qcom,tcsr-mutex";
  619. reg = <0x01905000 0x20000>;
  620. #hwlock-cells = <1>;
  621. };
  622. tcsr: syscon@1937000 {
  623. compatible = "qcom,qcs404-tcsr", "syscon";
  624. reg = <0x01937000 0x25000>;
  625. };
  626. sram@290000 {
  627. compatible = "qcom,rpm-stats";
  628. reg = <0x00290000 0x10000>;
  629. };
  630. spmi_bus: spmi@200f000 {
  631. compatible = "qcom,spmi-pmic-arb";
  632. reg = <0x0200f000 0x001000>,
  633. <0x02400000 0x800000>,
  634. <0x02c00000 0x800000>,
  635. <0x03800000 0x200000>,
  636. <0x0200a000 0x002100>;
  637. reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
  638. interrupt-names = "periph_irq";
  639. interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
  640. qcom,ee = <0>;
  641. qcom,channel = <0>;
  642. #address-cells = <2>;
  643. #size-cells = <0>;
  644. interrupt-controller;
  645. #interrupt-cells = <4>;
  646. };
  647. remoteproc_wcss: remoteproc@7400000 {
  648. compatible = "qcom,qcs404-wcss-pas";
  649. reg = <0x07400000 0x4040>;
  650. interrupts-extended = <&intc GIC_SPI 153 IRQ_TYPE_EDGE_RISING>,
  651. <&wcss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
  652. <&wcss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
  653. <&wcss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
  654. <&wcss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
  655. interrupt-names = "wdog", "fatal", "ready",
  656. "handover", "stop-ack";
  657. clocks = <&xo_board>;
  658. clock-names = "xo";
  659. memory-region = <&wlan_fw_mem>;
  660. qcom,smem-states = <&wcss_smp2p_out 0>;
  661. qcom,smem-state-names = "stop";
  662. status = "disabled";
  663. glink-edge {
  664. interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
  665. qcom,remote-pid = <1>;
  666. mboxes = <&apcs_glb 16>;
  667. label = "wcss";
  668. };
  669. };
  670. pcie_phy: phy@7786000 {
  671. compatible = "qcom,qcs404-pcie2-phy", "qcom,pcie2-phy";
  672. reg = <0x07786000 0xb8>;
  673. clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
  674. resets = <&gcc GCC_PCIEPHY_0_PHY_BCR>,
  675. <&gcc GCC_PCIE_0_PIPE_ARES>;
  676. reset-names = "phy", "pipe";
  677. clock-output-names = "pcie_0_pipe_clk";
  678. #phy-cells = <0>;
  679. status = "disabled";
  680. };
  681. sdcc1: mmc@7804000 {
  682. compatible = "qcom,qcs404-sdhci", "qcom,sdhci-msm-v5";
  683. reg = <0x07804000 0x1000>, <0x7805000 0x1000>;
  684. reg-names = "hc", "cqhci";
  685. interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
  686. <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
  687. interrupt-names = "hc_irq", "pwr_irq";
  688. clocks = <&gcc GCC_SDCC1_AHB_CLK>,
  689. <&gcc GCC_SDCC1_APPS_CLK>,
  690. <&xo_board>;
  691. clock-names = "iface", "core", "xo";
  692. status = "disabled";
  693. };
  694. blsp1_dma: dma-controller@7884000 {
  695. compatible = "qcom,bam-v1.7.0";
  696. reg = <0x07884000 0x25000>;
  697. interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
  698. clocks = <&gcc GCC_BLSP1_AHB_CLK>;
  699. clock-names = "bam_clk";
  700. #dma-cells = <1>;
  701. qcom,ee = <0>;
  702. status = "okay";
  703. };
  704. blsp1_uart0: serial@78af000 {
  705. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  706. reg = <0x078af000 0x200>;
  707. interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
  708. clocks = <&gcc GCC_BLSP1_UART0_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
  709. clock-names = "core", "iface";
  710. dmas = <&blsp1_dma 0>, <&blsp1_dma 1>;
  711. dma-names = "tx", "rx";
  712. pinctrl-names = "default";
  713. pinctrl-0 = <&blsp1_uart0_default>;
  714. status = "disabled";
  715. };
  716. blsp1_uart1: serial@78b0000 {
  717. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  718. reg = <0x078b0000 0x200>;
  719. interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
  720. clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
  721. clock-names = "core", "iface";
  722. dmas = <&blsp1_dma 2>, <&blsp1_dma 3>;
  723. dma-names = "tx", "rx";
  724. pinctrl-names = "default";
  725. pinctrl-0 = <&blsp1_uart1_default>;
  726. status = "disabled";
  727. };
  728. blsp1_uart2: serial@78b1000 {
  729. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  730. reg = <0x078b1000 0x200>;
  731. interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
  732. clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
  733. clock-names = "core", "iface";
  734. dmas = <&blsp1_dma 4>, <&blsp1_dma 5>;
  735. dma-names = "tx", "rx";
  736. pinctrl-names = "default";
  737. pinctrl-0 = <&blsp1_uart2_default>;
  738. status = "okay";
  739. };
  740. ethernet: ethernet@7a80000 {
  741. compatible = "qcom,qcs404-ethqos";
  742. reg = <0x07a80000 0x10000>,
  743. <0x07a96000 0x100>;
  744. reg-names = "stmmaceth", "rgmii";
  745. clock-names = "stmmaceth", "pclk", "ptp_ref", "rgmii";
  746. clocks = <&gcc GCC_ETH_AXI_CLK>,
  747. <&gcc GCC_ETH_SLAVE_AHB_CLK>,
  748. <&gcc GCC_ETH_PTP_CLK>,
  749. <&gcc GCC_ETH_RGMII_CLK>;
  750. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
  751. <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
  752. interrupt-names = "macirq", "eth_lpi";
  753. snps,tso;
  754. rx-fifo-depth = <4096>;
  755. tx-fifo-depth = <4096>;
  756. status = "disabled";
  757. };
  758. wifi: wifi@a000000 {
  759. compatible = "qcom,wcn3990-wifi";
  760. reg = <0xa000000 0x800000>;
  761. reg-names = "membase";
  762. memory-region = <&wlan_msa_mem>;
  763. interrupts = <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>,
  764. <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>,
  765. <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
  766. <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>,
  767. <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>,
  768. <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
  769. <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
  770. <GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
  771. <GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>,
  772. <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>,
  773. <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>,
  774. <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
  775. status = "disabled";
  776. };
  777. blsp1_uart3: serial@78b2000 {
  778. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  779. reg = <0x078b2000 0x200>;
  780. interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
  781. clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
  782. clock-names = "core", "iface";
  783. dmas = <&blsp1_dma 6>, <&blsp1_dma 7>;
  784. dma-names = "tx", "rx";
  785. pinctrl-names = "default";
  786. pinctrl-0 = <&blsp1_uart3_default>;
  787. status = "disabled";
  788. };
  789. blsp1_i2c0: i2c@78b5000 {
  790. compatible = "qcom,i2c-qup-v2.2.1";
  791. reg = <0x078b5000 0x600>;
  792. interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
  793. clocks = <&gcc GCC_BLSP1_QUP0_I2C_APPS_CLK>,
  794. <&gcc GCC_BLSP1_AHB_CLK>;
  795. clock-names = "core", "iface";
  796. pinctrl-names = "default";
  797. pinctrl-0 = <&blsp1_i2c0_default>;
  798. #address-cells = <1>;
  799. #size-cells = <0>;
  800. status = "disabled";
  801. };
  802. blsp1_spi0: spi@78b5000 {
  803. compatible = "qcom,spi-qup-v2.2.1";
  804. reg = <0x078b5000 0x600>;
  805. interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
  806. clocks = <&gcc GCC_BLSP1_QUP0_SPI_APPS_CLK>,
  807. <&gcc GCC_BLSP1_AHB_CLK>;
  808. clock-names = "core", "iface";
  809. pinctrl-names = "default";
  810. pinctrl-0 = <&blsp1_spi0_default>;
  811. #address-cells = <1>;
  812. #size-cells = <0>;
  813. status = "disabled";
  814. };
  815. blsp1_i2c1: i2c@78b6000 {
  816. compatible = "qcom,i2c-qup-v2.2.1";
  817. reg = <0x078b6000 0x600>;
  818. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  819. clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
  820. <&gcc GCC_BLSP1_AHB_CLK>;
  821. clock-names = "core", "iface";
  822. pinctrl-names = "default";
  823. pinctrl-0 = <&blsp1_i2c1_default>;
  824. #address-cells = <1>;
  825. #size-cells = <0>;
  826. status = "disabled";
  827. };
  828. blsp1_spi1: spi@78b6000 {
  829. compatible = "qcom,spi-qup-v2.2.1";
  830. reg = <0x078b6000 0x600>;
  831. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  832. clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
  833. <&gcc GCC_BLSP1_AHB_CLK>;
  834. clock-names = "core", "iface";
  835. pinctrl-names = "default";
  836. pinctrl-0 = <&blsp1_spi1_default>;
  837. #address-cells = <1>;
  838. #size-cells = <0>;
  839. status = "disabled";
  840. };
  841. blsp1_i2c2: i2c@78b7000 {
  842. compatible = "qcom,i2c-qup-v2.2.1";
  843. reg = <0x078b7000 0x600>;
  844. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  845. clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
  846. <&gcc GCC_BLSP1_AHB_CLK>;
  847. clock-names = "core", "iface";
  848. pinctrl-names = "default";
  849. pinctrl-0 = <&blsp1_i2c2_default>;
  850. #address-cells = <1>;
  851. #size-cells = <0>;
  852. status = "disabled";
  853. };
  854. blsp1_spi2: spi@78b7000 {
  855. compatible = "qcom,spi-qup-v2.2.1";
  856. reg = <0x078b7000 0x600>;
  857. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  858. clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
  859. <&gcc GCC_BLSP1_AHB_CLK>;
  860. clock-names = "core", "iface";
  861. pinctrl-names = "default";
  862. pinctrl-0 = <&blsp1_spi2_default>;
  863. #address-cells = <1>;
  864. #size-cells = <0>;
  865. status = "disabled";
  866. };
  867. blsp1_i2c3: i2c@78b8000 {
  868. compatible = "qcom,i2c-qup-v2.2.1";
  869. reg = <0x078b8000 0x600>;
  870. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  871. clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
  872. <&gcc GCC_BLSP1_AHB_CLK>;
  873. clock-names = "core", "iface";
  874. pinctrl-names = "default";
  875. pinctrl-0 = <&blsp1_i2c3_default>;
  876. #address-cells = <1>;
  877. #size-cells = <0>;
  878. status = "disabled";
  879. };
  880. blsp1_spi3: spi@78b8000 {
  881. compatible = "qcom,spi-qup-v2.2.1";
  882. reg = <0x078b8000 0x600>;
  883. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  884. clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
  885. <&gcc GCC_BLSP1_AHB_CLK>;
  886. clock-names = "core", "iface";
  887. pinctrl-names = "default";
  888. pinctrl-0 = <&blsp1_spi3_default>;
  889. #address-cells = <1>;
  890. #size-cells = <0>;
  891. status = "disabled";
  892. };
  893. blsp1_i2c4: i2c@78b9000 {
  894. compatible = "qcom,i2c-qup-v2.2.1";
  895. reg = <0x078b9000 0x600>;
  896. interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
  897. clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
  898. <&gcc GCC_BLSP1_AHB_CLK>;
  899. clock-names = "core", "iface";
  900. pinctrl-names = "default";
  901. pinctrl-0 = <&blsp1_i2c4_default>;
  902. #address-cells = <1>;
  903. #size-cells = <0>;
  904. status = "disabled";
  905. };
  906. blsp1_spi4: spi@78b9000 {
  907. compatible = "qcom,spi-qup-v2.2.1";
  908. reg = <0x078b9000 0x600>;
  909. interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
  910. clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
  911. <&gcc GCC_BLSP1_AHB_CLK>;
  912. clock-names = "core", "iface";
  913. pinctrl-names = "default";
  914. pinctrl-0 = <&blsp1_spi4_default>;
  915. #address-cells = <1>;
  916. #size-cells = <0>;
  917. status = "disabled";
  918. };
  919. blsp2_dma: dma-controller@7ac4000 {
  920. compatible = "qcom,bam-v1.7.0";
  921. reg = <0x07ac4000 0x17000>;
  922. interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
  923. clocks = <&gcc GCC_BLSP2_AHB_CLK>;
  924. clock-names = "bam_clk";
  925. #dma-cells = <1>;
  926. qcom,ee = <0>;
  927. status = "disabled";
  928. };
  929. blsp2_uart0: serial@7aef000 {
  930. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  931. reg = <0x07aef000 0x200>;
  932. interrupts = <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>;
  933. clocks = <&gcc GCC_BLSP2_UART0_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
  934. clock-names = "core", "iface";
  935. dmas = <&blsp2_dma 0>, <&blsp2_dma 1>;
  936. dma-names = "tx", "rx";
  937. pinctrl-names = "default";
  938. pinctrl-0 = <&blsp2_uart0_default>;
  939. status = "disabled";
  940. };
  941. blsp2_i2c0: i2c@7af5000 {
  942. compatible = "qcom,i2c-qup-v2.2.1";
  943. reg = <0x07af5000 0x600>;
  944. interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
  945. clocks = <&gcc GCC_BLSP2_QUP0_I2C_APPS_CLK>,
  946. <&gcc GCC_BLSP2_AHB_CLK>;
  947. clock-names = "core", "iface";
  948. pinctrl-names = "default";
  949. pinctrl-0 = <&blsp2_i2c0_default>;
  950. #address-cells = <1>;
  951. #size-cells = <0>;
  952. status = "disabled";
  953. };
  954. blsp2_spi0: spi@7af5000 {
  955. compatible = "qcom,spi-qup-v2.2.1";
  956. reg = <0x07af5000 0x600>;
  957. interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
  958. clocks = <&gcc GCC_BLSP2_QUP0_SPI_APPS_CLK>,
  959. <&gcc GCC_BLSP2_AHB_CLK>;
  960. clock-names = "core", "iface";
  961. pinctrl-names = "default";
  962. pinctrl-0 = <&blsp2_spi0_default>;
  963. #address-cells = <1>;
  964. #size-cells = <0>;
  965. status = "disabled";
  966. };
  967. sram@8600000 {
  968. compatible = "qcom,qcs404-imem", "syscon", "simple-mfd";
  969. reg = <0x08600000 0x1000>;
  970. #address-cells = <1>;
  971. #size-cells = <1>;
  972. ranges = <0 0x08600000 0x1000>;
  973. pil-reloc@94c {
  974. compatible = "qcom,pil-reloc-info";
  975. reg = <0x94c 0xc8>;
  976. };
  977. };
  978. intc: interrupt-controller@b000000 {
  979. compatible = "qcom,msm-qgic2";
  980. interrupt-controller;
  981. #interrupt-cells = <3>;
  982. reg = <0x0b000000 0x1000>,
  983. <0x0b002000 0x1000>;
  984. };
  985. apcs_glb: mailbox@b011000 {
  986. compatible = "qcom,qcs404-apcs-apps-global", "syscon";
  987. reg = <0x0b011000 0x1000>;
  988. #mbox-cells = <1>;
  989. clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
  990. clock-names = "pll", "aux";
  991. #clock-cells = <0>;
  992. };
  993. apcs_hfpll: clock-controller@b016000 {
  994. compatible = "qcom,hfpll";
  995. reg = <0x0b016000 0x30>;
  996. #clock-cells = <0>;
  997. clock-output-names = "apcs_hfpll";
  998. clocks = <&xo_board>;
  999. clock-names = "xo";
  1000. };
  1001. watchdog@b017000 {
  1002. compatible = "qcom,apss-wdt-qcs404", "qcom,kpss-wdt";
  1003. reg = <0x0b017000 0x1000>;
  1004. clocks = <&sleep_clk>;
  1005. };
  1006. cpr: power-controller@b018000 {
  1007. compatible = "qcom,qcs404-cpr", "qcom,cpr";
  1008. reg = <0x0b018000 0x1000>;
  1009. interrupts = <0 15 IRQ_TYPE_EDGE_RISING>;
  1010. clocks = <&xo_board>;
  1011. clock-names = "ref";
  1012. vdd-apc-supply = <&pms405_s3>;
  1013. #power-domain-cells = <0>;
  1014. operating-points-v2 = <&cpr_opp_table>;
  1015. acc-syscon = <&tcsr>;
  1016. nvmem-cells = <&cpr_efuse_quot_offset1>,
  1017. <&cpr_efuse_quot_offset2>,
  1018. <&cpr_efuse_quot_offset3>,
  1019. <&cpr_efuse_init_voltage1>,
  1020. <&cpr_efuse_init_voltage2>,
  1021. <&cpr_efuse_init_voltage3>,
  1022. <&cpr_efuse_quot1>,
  1023. <&cpr_efuse_quot2>,
  1024. <&cpr_efuse_quot3>,
  1025. <&cpr_efuse_ring1>,
  1026. <&cpr_efuse_ring2>,
  1027. <&cpr_efuse_ring3>,
  1028. <&cpr_efuse_revision>;
  1029. nvmem-cell-names = "cpr_quotient_offset1",
  1030. "cpr_quotient_offset2",
  1031. "cpr_quotient_offset3",
  1032. "cpr_init_voltage1",
  1033. "cpr_init_voltage2",
  1034. "cpr_init_voltage3",
  1035. "cpr_quotient1",
  1036. "cpr_quotient2",
  1037. "cpr_quotient3",
  1038. "cpr_ring_osc1",
  1039. "cpr_ring_osc2",
  1040. "cpr_ring_osc3",
  1041. "cpr_fuse_revision";
  1042. };
  1043. timer@b120000 {
  1044. #address-cells = <1>;
  1045. #size-cells = <1>;
  1046. ranges;
  1047. compatible = "arm,armv7-timer-mem";
  1048. reg = <0x0b120000 0x1000>;
  1049. clock-frequency = <19200000>;
  1050. frame@b121000 {
  1051. frame-number = <0>;
  1052. interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
  1053. <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
  1054. reg = <0x0b121000 0x1000>,
  1055. <0x0b122000 0x1000>;
  1056. };
  1057. frame@b123000 {
  1058. frame-number = <1>;
  1059. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
  1060. reg = <0x0b123000 0x1000>;
  1061. status = "disabled";
  1062. };
  1063. frame@b124000 {
  1064. frame-number = <2>;
  1065. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  1066. reg = <0x0b124000 0x1000>;
  1067. status = "disabled";
  1068. };
  1069. frame@b125000 {
  1070. frame-number = <3>;
  1071. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
  1072. reg = <0x0b125000 0x1000>;
  1073. status = "disabled";
  1074. };
  1075. frame@b126000 {
  1076. frame-number = <4>;
  1077. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
  1078. reg = <0x0b126000 0x1000>;
  1079. status = "disabled";
  1080. };
  1081. frame@b127000 {
  1082. frame-number = <5>;
  1083. interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
  1084. reg = <0xb127000 0x1000>;
  1085. status = "disabled";
  1086. };
  1087. frame@b128000 {
  1088. frame-number = <6>;
  1089. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  1090. reg = <0x0b128000 0x1000>;
  1091. status = "disabled";
  1092. };
  1093. };
  1094. remoteproc_adsp: remoteproc@c700000 {
  1095. compatible = "qcom,qcs404-adsp-pas";
  1096. reg = <0x0c700000 0x4040>;
  1097. interrupts-extended = <&intc GIC_SPI 293 IRQ_TYPE_EDGE_RISING>,
  1098. <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
  1099. <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
  1100. <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
  1101. <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
  1102. interrupt-names = "wdog", "fatal", "ready",
  1103. "handover", "stop-ack";
  1104. clocks = <&xo_board>;
  1105. clock-names = "xo";
  1106. memory-region = <&adsp_fw_mem>;
  1107. qcom,smem-states = <&adsp_smp2p_out 0>;
  1108. qcom,smem-state-names = "stop";
  1109. status = "disabled";
  1110. glink-edge {
  1111. interrupts = <GIC_SPI 289 IRQ_TYPE_EDGE_RISING>;
  1112. qcom,remote-pid = <2>;
  1113. mboxes = <&apcs_glb 8>;
  1114. label = "adsp";
  1115. };
  1116. };
  1117. pcie: pci@10000000 {
  1118. compatible = "qcom,pcie-qcs404";
  1119. reg = <0x10000000 0xf1d>,
  1120. <0x10000f20 0xa8>,
  1121. <0x07780000 0x2000>,
  1122. <0x10001000 0x2000>;
  1123. reg-names = "dbi", "elbi", "parf", "config";
  1124. device_type = "pci";
  1125. linux,pci-domain = <0>;
  1126. bus-range = <0x00 0xff>;
  1127. num-lanes = <1>;
  1128. #address-cells = <3>;
  1129. #size-cells = <2>;
  1130. ranges = <0x81000000 0 0 0x10003000 0 0x00010000>, /* I/O */
  1131. <0x82000000 0 0x10013000 0x10013000 0 0x007ed000>; /* memory */
  1132. interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
  1133. interrupt-names = "msi";
  1134. #interrupt-cells = <1>;
  1135. interrupt-map-mask = <0 0 0 0x7>;
  1136. interrupt-map = <0 0 0 1 &intc GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
  1137. <0 0 0 2 &intc GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
  1138. <0 0 0 3 &intc GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
  1139. <0 0 0 4 &intc GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
  1140. clocks = <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
  1141. <&gcc GCC_PCIE_0_AUX_CLK>,
  1142. <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
  1143. <&gcc GCC_PCIE_0_SLV_AXI_CLK>;
  1144. clock-names = "iface", "aux", "master_bus", "slave_bus";
  1145. resets = <&gcc GCC_PCIE_0_AXI_MASTER_ARES>,
  1146. <&gcc GCC_PCIE_0_AXI_SLAVE_ARES>,
  1147. <&gcc GCC_PCIE_0_AXI_MASTER_STICKY_ARES>,
  1148. <&gcc GCC_PCIE_0_CORE_STICKY_ARES>,
  1149. <&gcc GCC_PCIE_0_BCR>,
  1150. <&gcc GCC_PCIE_0_AHB_ARES>;
  1151. reset-names = "axi_m",
  1152. "axi_s",
  1153. "axi_m_sticky",
  1154. "pipe_sticky",
  1155. "pwr",
  1156. "ahb";
  1157. phys = <&pcie_phy>;
  1158. phy-names = "pciephy";
  1159. status = "disabled";
  1160. };
  1161. };
  1162. timer {
  1163. compatible = "arm,armv8-timer";
  1164. interrupts = <GIC_PPI 2 0xff08>,
  1165. <GIC_PPI 3 0xff08>,
  1166. <GIC_PPI 4 0xff08>,
  1167. <GIC_PPI 1 0xff08>;
  1168. };
  1169. smp2p-adsp {
  1170. compatible = "qcom,smp2p";
  1171. qcom,smem = <443>, <429>;
  1172. interrupts = <GIC_SPI 291 IRQ_TYPE_EDGE_RISING>;
  1173. mboxes = <&apcs_glb 10>;
  1174. qcom,local-pid = <0>;
  1175. qcom,remote-pid = <2>;
  1176. adsp_smp2p_out: master-kernel {
  1177. qcom,entry-name = "master-kernel";
  1178. #qcom,smem-state-cells = <1>;
  1179. };
  1180. adsp_smp2p_in: slave-kernel {
  1181. qcom,entry-name = "slave-kernel";
  1182. interrupt-controller;
  1183. #interrupt-cells = <2>;
  1184. };
  1185. };
  1186. smp2p-cdsp {
  1187. compatible = "qcom,smp2p";
  1188. qcom,smem = <94>, <432>;
  1189. interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
  1190. mboxes = <&apcs_glb 14>;
  1191. qcom,local-pid = <0>;
  1192. qcom,remote-pid = <5>;
  1193. cdsp_smp2p_out: master-kernel {
  1194. qcom,entry-name = "master-kernel";
  1195. #qcom,smem-state-cells = <1>;
  1196. };
  1197. cdsp_smp2p_in: slave-kernel {
  1198. qcom,entry-name = "slave-kernel";
  1199. interrupt-controller;
  1200. #interrupt-cells = <2>;
  1201. };
  1202. };
  1203. smp2p-wcss {
  1204. compatible = "qcom,smp2p";
  1205. qcom,smem = <435>, <428>;
  1206. interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
  1207. mboxes = <&apcs_glb 18>;
  1208. qcom,local-pid = <0>;
  1209. qcom,remote-pid = <1>;
  1210. wcss_smp2p_out: master-kernel {
  1211. qcom,entry-name = "master-kernel";
  1212. #qcom,smem-state-cells = <1>;
  1213. };
  1214. wcss_smp2p_in: slave-kernel {
  1215. qcom,entry-name = "slave-kernel";
  1216. interrupt-controller;
  1217. #interrupt-cells = <2>;
  1218. };
  1219. };
  1220. thermal-zones {
  1221. aoss-thermal {
  1222. polling-delay-passive = <250>;
  1223. polling-delay = <1000>;
  1224. thermal-sensors = <&tsens 0>;
  1225. trips {
  1226. aoss_alert0: trip-point0 {
  1227. temperature = <105000>;
  1228. hysteresis = <2000>;
  1229. type = "hot";
  1230. };
  1231. };
  1232. };
  1233. q6-hvx-thermal {
  1234. polling-delay-passive = <250>;
  1235. polling-delay = <1000>;
  1236. thermal-sensors = <&tsens 1>;
  1237. trips {
  1238. q6_hvx_alert0: trip-point0 {
  1239. temperature = <105000>;
  1240. hysteresis = <2000>;
  1241. type = "hot";
  1242. };
  1243. };
  1244. };
  1245. lpass-thermal {
  1246. polling-delay-passive = <250>;
  1247. polling-delay = <1000>;
  1248. thermal-sensors = <&tsens 2>;
  1249. trips {
  1250. lpass_alert0: trip-point0 {
  1251. temperature = <105000>;
  1252. hysteresis = <2000>;
  1253. type = "hot";
  1254. };
  1255. };
  1256. };
  1257. wlan-thermal {
  1258. polling-delay-passive = <250>;
  1259. polling-delay = <1000>;
  1260. thermal-sensors = <&tsens 3>;
  1261. trips {
  1262. wlan_alert0: trip-point0 {
  1263. temperature = <105000>;
  1264. hysteresis = <2000>;
  1265. type = "hot";
  1266. };
  1267. };
  1268. };
  1269. cluster-thermal {
  1270. polling-delay-passive = <250>;
  1271. polling-delay = <1000>;
  1272. thermal-sensors = <&tsens 4>;
  1273. trips {
  1274. cluster_alert0: trip-point0 {
  1275. temperature = <95000>;
  1276. hysteresis = <2000>;
  1277. type = "hot";
  1278. };
  1279. cluster_alert1: trip-point1 {
  1280. temperature = <105000>;
  1281. hysteresis = <2000>;
  1282. type = "passive";
  1283. };
  1284. cluster_crit: cluster_crit {
  1285. temperature = <120000>;
  1286. hysteresis = <2000>;
  1287. type = "critical";
  1288. };
  1289. };
  1290. cooling-maps {
  1291. map0 {
  1292. trip = <&cluster_alert1>;
  1293. cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1294. <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1295. <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1296. <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1297. };
  1298. };
  1299. };
  1300. cpu0-thermal {
  1301. polling-delay-passive = <250>;
  1302. polling-delay = <1000>;
  1303. thermal-sensors = <&tsens 5>;
  1304. trips {
  1305. cpu0_alert0: trip-point0 {
  1306. temperature = <95000>;
  1307. hysteresis = <2000>;
  1308. type = "hot";
  1309. };
  1310. cpu0_alert1: trip-point1 {
  1311. temperature = <105000>;
  1312. hysteresis = <2000>;
  1313. type = "passive";
  1314. };
  1315. cpu0_crit: cpu_crit {
  1316. temperature = <120000>;
  1317. hysteresis = <2000>;
  1318. type = "critical";
  1319. };
  1320. };
  1321. cooling-maps {
  1322. map0 {
  1323. trip = <&cpu0_alert1>;
  1324. cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1325. <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1326. <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1327. <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1328. };
  1329. };
  1330. };
  1331. cpu1-thermal {
  1332. polling-delay-passive = <250>;
  1333. polling-delay = <1000>;
  1334. thermal-sensors = <&tsens 6>;
  1335. trips {
  1336. cpu1_alert0: trip-point0 {
  1337. temperature = <95000>;
  1338. hysteresis = <2000>;
  1339. type = "hot";
  1340. };
  1341. cpu1_alert1: trip-point1 {
  1342. temperature = <105000>;
  1343. hysteresis = <2000>;
  1344. type = "passive";
  1345. };
  1346. cpu1_crit: cpu_crit {
  1347. temperature = <120000>;
  1348. hysteresis = <2000>;
  1349. type = "critical";
  1350. };
  1351. };
  1352. cooling-maps {
  1353. map0 {
  1354. trip = <&cpu1_alert1>;
  1355. cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1356. <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1357. <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1358. <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1359. };
  1360. };
  1361. };
  1362. cpu2-thermal {
  1363. polling-delay-passive = <250>;
  1364. polling-delay = <1000>;
  1365. thermal-sensors = <&tsens 7>;
  1366. trips {
  1367. cpu2_alert0: trip-point0 {
  1368. temperature = <95000>;
  1369. hysteresis = <2000>;
  1370. type = "hot";
  1371. };
  1372. cpu2_alert1: trip-point1 {
  1373. temperature = <105000>;
  1374. hysteresis = <2000>;
  1375. type = "passive";
  1376. };
  1377. cpu2_crit: cpu_crit {
  1378. temperature = <120000>;
  1379. hysteresis = <2000>;
  1380. type = "critical";
  1381. };
  1382. };
  1383. cooling-maps {
  1384. map0 {
  1385. trip = <&cpu2_alert1>;
  1386. cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1387. <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1388. <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1389. <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1390. };
  1391. };
  1392. };
  1393. cpu3-thermal {
  1394. polling-delay-passive = <250>;
  1395. polling-delay = <1000>;
  1396. thermal-sensors = <&tsens 8>;
  1397. trips {
  1398. cpu3_alert0: trip-point0 {
  1399. temperature = <95000>;
  1400. hysteresis = <2000>;
  1401. type = "hot";
  1402. };
  1403. cpu3_alert1: trip-point1 {
  1404. temperature = <105000>;
  1405. hysteresis = <2000>;
  1406. type = "passive";
  1407. };
  1408. cpu3_crit: cpu_crit {
  1409. temperature = <120000>;
  1410. hysteresis = <2000>;
  1411. type = "critical";
  1412. };
  1413. };
  1414. cooling-maps {
  1415. map0 {
  1416. trip = <&cpu3_alert1>;
  1417. cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1418. <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1419. <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1420. <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1421. };
  1422. };
  1423. };
  1424. gpu-thermal {
  1425. polling-delay-passive = <250>;
  1426. polling-delay = <1000>;
  1427. thermal-sensors = <&tsens 9>;
  1428. trips {
  1429. gpu_alert0: trip-point0 {
  1430. temperature = <95000>;
  1431. hysteresis = <2000>;
  1432. type = "hot";
  1433. };
  1434. };
  1435. };
  1436. };
  1437. };