qcom-ipq8064.dtsi 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512
  1. /dts-v1/;
  2. #include "skeleton.dtsi"
  3. #include <dt-bindings/clock/qcom,gcc-ipq806x.h>
  4. #include <dt-bindings/mfd/qcom-rpm.h>
  5. #include <dt-bindings/clock/qcom,rpmcc.h>
  6. #include <dt-bindings/clock/qcom,lcc-ipq806x.h>
  7. #include <dt-bindings/soc/qcom,gsbi.h>
  8. #include <dt-bindings/reset/qcom,gcc-ipq806x.h>
  9. #include <dt-bindings/interrupt-controller/arm-gic.h>
  10. #include <dt-bindings/gpio/gpio.h>
  11. / {
  12. model = "Qualcomm IPQ8064";
  13. compatible = "qcom,ipq8064";
  14. interrupt-parent = <&intc>;
  15. cpus {
  16. #address-cells = <1>;
  17. #size-cells = <0>;
  18. cpu0: cpu@0 {
  19. compatible = "qcom,krait";
  20. enable-method = "qcom,kpss-acc-v1";
  21. device_type = "cpu";
  22. reg = <0>;
  23. next-level-cache = <&L2>;
  24. qcom,acc = <&acpu0_aux>;
  25. qcom,saw = <&saw0>;
  26. clocks = <&kraitcc 0>, <&kraitcc 4>;
  27. clock-names = "cpu", "l2";
  28. clock-latency = <100000>;
  29. cpu-supply = <&smb208_s2a>;
  30. operating-points-v2 = <&opp_table0>;
  31. voltage-tolerance = <5>;
  32. cooling-min-state = <0>;
  33. cooling-max-state = <10>;
  34. #cooling-cells = <2>;
  35. cpu-idle-states = <&CPU_SPC>;
  36. };
  37. cpu1: cpu@1 {
  38. compatible = "qcom,krait";
  39. enable-method = "qcom,kpss-acc-v1";
  40. device_type = "cpu";
  41. reg = <1>;
  42. next-level-cache = <&L2>;
  43. qcom,acc = <&acpu1_aux>;
  44. qcom,saw = <&saw1>;
  45. clocks = <&kraitcc 1>, <&kraitcc 4>;
  46. clock-names = "cpu", "l2";
  47. clock-latency = <100000>;
  48. cpu-supply = <&smb208_s2b>;
  49. operating-points-v2 = <&opp_table0>;
  50. voltage-tolerance = <5>;
  51. cooling-min-state = <0>;
  52. cooling-max-state = <10>;
  53. #cooling-cells = <2>;
  54. cpu-idle-states = <&CPU_SPC>;
  55. };
  56. L2: l2-cache {
  57. compatible = "cache";
  58. cache-level = <2>;
  59. qcom,saw = <&saw_l2>;
  60. };
  61. qcom,l2 {
  62. qcom,l2-rates = <384000000 1000000000 1200000000>;
  63. qcom,l2-cpufreq = <384000000 600000000 1200000000>;
  64. qcom,l2-volt = <1100000 1100000 1150000>;
  65. qcom,l2-supply = <&smb208_s1a>;
  66. };
  67. idle-states {
  68. CPU_SPC: spc {
  69. compatible = "qcom,idle-state-spc",
  70. "arm,idle-state";
  71. status = "okay";
  72. entry-latency-us = <400>;
  73. exit-latency-us = <900>;
  74. min-residency-us = <3000>;
  75. };
  76. };
  77. };
  78. opp_table0: opp_table0 {
  79. compatible = "operating-points-v2-qcom-cpu";
  80. nvmem-cells = <&speedbin_efuse>;
  81. opp-384000000 {
  82. opp-hz = /bits/ 64 <384000000>;
  83. opp-microvolt-speed0-pvs0-v0 = <1000000>;
  84. opp-microvolt-speed0-pvs1-v0 = <925000>;
  85. opp-microvolt-speed0-pvs2-v0 = <875000>;
  86. opp-microvolt-speed0-pvs3-v0 = <800000>;
  87. opp-supported-hw = <0x1>;
  88. clock-latency-ns = <100000>;
  89. };
  90. opp-600000000 {
  91. opp-hz = /bits/ 64 <600000000>;
  92. opp-microvolt-speed0-pvs0-v0 = <1050000>;
  93. opp-microvolt-speed0-pvs1-v0 = <975000>;
  94. opp-microvolt-speed0-pvs2-v0 = <925000>;
  95. opp-microvolt-speed0-pvs3-v0 = <850000>;
  96. opp-supported-hw = <0x1>;
  97. clock-latency-ns = <100000>;
  98. };
  99. opp-800000000 {
  100. opp-hz = /bits/ 64 <800000000>;
  101. opp-microvolt-speed0-pvs0-v0 = <1100000>;
  102. opp-microvolt-speed0-pvs1-v0 = <1025000>;
  103. opp-microvolt-speed0-pvs2-v0 = <995000>;
  104. opp-microvolt-speed0-pvs3-v0 = <900000>;
  105. opp-supported-hw = <0x1>;
  106. clock-latency-ns = <100000>;
  107. };
  108. opp-1000000000 {
  109. opp-hz = /bits/ 64 <1000000000>;
  110. opp-microvolt-speed0-pvs0-v0 = <1150000>;
  111. opp-microvolt-speed0-pvs1-v0 = <1075000>;
  112. opp-microvolt-speed0-pvs2-v0 = <1025000>;
  113. opp-microvolt-speed0-pvs3-v0 = <950000>;
  114. opp-supported-hw = <0x1>;
  115. clock-latency-ns = <100000>;
  116. };
  117. opp-1200000000 {
  118. opp-hz = /bits/ 64 <1200000000>;
  119. opp-microvolt-speed0-pvs0-v0 = <1200000>;
  120. opp-microvolt-speed0-pvs1-v0 = <1125000>;
  121. opp-microvolt-speed0-pvs2-v0 = <1075000>;
  122. opp-microvolt-speed0-pvs3-v0 = <1000000>;
  123. opp-supported-hw = <0x1>;
  124. clock-latency-ns = <100000>;
  125. };
  126. opp-1400000000 {
  127. opp-hz = /bits/ 64 <1400000000>;
  128. opp-microvolt-speed0-pvs0-v0 = <1250000>;
  129. opp-microvolt-speed0-pvs1-v0 = <1175000>;
  130. opp-microvolt-speed0-pvs2-v0 = <1125000>;
  131. opp-microvolt-speed0-pvs3-v0 = <1050000>;
  132. opp-supported-hw = <0x1>;
  133. clock-latency-ns = <100000>;
  134. };
  135. };
  136. thermal-zones {
  137. tsens_tz_sensor0 {
  138. polling-delay-passive = <0>;
  139. polling-delay = <0>;
  140. thermal-sensors = <&tsens 0>;
  141. trips {
  142. cpu-critical-hi {
  143. temperature = <125000>;
  144. hysteresis = <2000>;
  145. type = "critical_high";
  146. };
  147. cpu-config-hi {
  148. temperature = <105000>;
  149. hysteresis = <2000>;
  150. type = "configurable_hi";
  151. };
  152. cpu-config-lo {
  153. temperature = <95000>;
  154. hysteresis = <2000>;
  155. type = "configurable_lo";
  156. };
  157. cpu-critical-low {
  158. temperature = <0>;
  159. hysteresis = <2000>;
  160. type = "critical_low";
  161. };
  162. };
  163. };
  164. tsens_tz_sensor1 {
  165. polling-delay-passive = <0>;
  166. polling-delay = <0>;
  167. thermal-sensors = <&tsens 1>;
  168. trips {
  169. cpu-critical-hi {
  170. temperature = <125000>;
  171. hysteresis = <2000>;
  172. type = "critical_high";
  173. };
  174. cpu-config-hi {
  175. temperature = <105000>;
  176. hysteresis = <2000>;
  177. type = "configurable_hi";
  178. };
  179. cpu-config-lo {
  180. temperature = <95000>;
  181. hysteresis = <2000>;
  182. type = "configurable_lo";
  183. };
  184. cpu-critical-low {
  185. temperature = <0>;
  186. hysteresis = <2000>;
  187. type = "critical_low";
  188. };
  189. };
  190. };
  191. tsens_tz_sensor2 {
  192. polling-delay-passive = <0>;
  193. polling-delay = <0>;
  194. thermal-sensors = <&tsens 2>;
  195. trips {
  196. cpu-critical-hi {
  197. temperature = <125000>;
  198. hysteresis = <2000>;
  199. type = "critical_high";
  200. };
  201. cpu-config-hi {
  202. temperature = <105000>;
  203. hysteresis = <2000>;
  204. type = "configurable_hi";
  205. };
  206. cpu-config-lo {
  207. temperature = <95000>;
  208. hysteresis = <2000>;
  209. type = "configurable_lo";
  210. };
  211. cpu-critical-low {
  212. temperature = <0>;
  213. hysteresis = <2000>;
  214. type = "critical_low";
  215. };
  216. };
  217. };
  218. tsens_tz_sensor3 {
  219. polling-delay-passive = <0>;
  220. polling-delay = <0>;
  221. thermal-sensors = <&tsens 3>;
  222. trips {
  223. cpu-critical-hi {
  224. temperature = <125000>;
  225. hysteresis = <2000>;
  226. type = "critical_high";
  227. };
  228. cpu-config-hi {
  229. temperature = <105000>;
  230. hysteresis = <2000>;
  231. type = "configurable_hi";
  232. };
  233. cpu-config-lo {
  234. temperature = <95000>;
  235. hysteresis = <2000>;
  236. type = "configurable_lo";
  237. };
  238. cpu-critical-low {
  239. temperature = <0>;
  240. hysteresis = <2000>;
  241. type = "critical_low";
  242. };
  243. };
  244. };
  245. tsens_tz_sensor4 {
  246. polling-delay-passive = <0>;
  247. polling-delay = <0>;
  248. thermal-sensors = <&tsens 4>;
  249. trips {
  250. cpu-critical-hi {
  251. temperature = <125000>;
  252. hysteresis = <2000>;
  253. type = "critical_high";
  254. };
  255. cpu-config-hi {
  256. temperature = <105000>;
  257. hysteresis = <2000>;
  258. type = "configurable_hi";
  259. };
  260. cpu-config-lo {
  261. temperature = <95000>;
  262. hysteresis = <2000>;
  263. type = "configurable_lo";
  264. };
  265. cpu-critical-low {
  266. temperature = <0>;
  267. hysteresis = <2000>;
  268. type = "critical_low";
  269. };
  270. };
  271. };
  272. tsens_tz_sensor5 {
  273. polling-delay-passive = <0>;
  274. polling-delay = <0>;
  275. thermal-sensors = <&tsens 5>;
  276. trips {
  277. cpu-critical-hi {
  278. temperature = <125000>;
  279. hysteresis = <2000>;
  280. type = "critical_high";
  281. };
  282. cpu-config-hi {
  283. temperature = <105000>;
  284. hysteresis = <2000>;
  285. type = "configurable_hi";
  286. };
  287. cpu-config-lo {
  288. temperature = <95000>;
  289. hysteresis = <2000>;
  290. type = "configurable_lo";
  291. };
  292. cpu-critical-low {
  293. temperature = <0>;
  294. hysteresis = <2000>;
  295. type = "critical_low";
  296. };
  297. };
  298. };
  299. tsens_tz_sensor6 {
  300. polling-delay-passive = <0>;
  301. polling-delay = <0>;
  302. thermal-sensors = <&tsens 6>;
  303. trips {
  304. cpu-critical-hi {
  305. temperature = <125000>;
  306. hysteresis = <2000>;
  307. type = "critical_high";
  308. };
  309. cpu-config-hi {
  310. temperature = <105000>;
  311. hysteresis = <2000>;
  312. type = "configurable_hi";
  313. };
  314. cpu-config-lo {
  315. temperature = <95000>;
  316. hysteresis = <2000>;
  317. type = "configurable_lo";
  318. };
  319. cpu-critical-low {
  320. temperature = <0>;
  321. hysteresis = <2000>;
  322. type = "critical_low";
  323. };
  324. };
  325. };
  326. tsens_tz_sensor7 {
  327. polling-delay-passive = <0>;
  328. polling-delay = <0>;
  329. thermal-sensors = <&tsens 7>;
  330. trips {
  331. cpu-critical-hi {
  332. temperature = <125000>;
  333. hysteresis = <2000>;
  334. type = "critical_high";
  335. };
  336. cpu-config-hi {
  337. temperature = <105000>;
  338. hysteresis = <2000>;
  339. type = "configurable_hi";
  340. };
  341. cpu-config-lo {
  342. temperature = <95000>;
  343. hysteresis = <2000>;
  344. type = "configurable_lo";
  345. };
  346. cpu-critical-low {
  347. temperature = <0>;
  348. hysteresis = <2000>;
  349. type = "critical_low";
  350. };
  351. };
  352. };
  353. tsens_tz_sensor8 {
  354. polling-delay-passive = <0>;
  355. polling-delay = <0>;
  356. thermal-sensors = <&tsens 8>;
  357. trips {
  358. cpu-critical-hi {
  359. temperature = <125000>;
  360. hysteresis = <2000>;
  361. type = "critical_high";
  362. };
  363. cpu-config-hi {
  364. temperature = <105000>;
  365. hysteresis = <2000>;
  366. type = "configurable_hi";
  367. };
  368. cpu-config-lo {
  369. temperature = <95000>;
  370. hysteresis = <2000>;
  371. type = "configurable_lo";
  372. };
  373. cpu-critical-low {
  374. temperature = <0>;
  375. hysteresis = <2000>;
  376. type = "critical_low";
  377. };
  378. };
  379. };
  380. tsens_tz_sensor9 {
  381. polling-delay-passive = <0>;
  382. polling-delay = <0>;
  383. thermal-sensors = <&tsens 9>;
  384. trips {
  385. cpu-critical-hi {
  386. temperature = <125000>;
  387. hysteresis = <2000>;
  388. type = "critical_high";
  389. };
  390. cpu-config-hi {
  391. temperature = <105000>;
  392. hysteresis = <2000>;
  393. type = "configurable_hi";
  394. };
  395. cpu-config-lo {
  396. temperature = <95000>;
  397. hysteresis = <2000>;
  398. type = "configurable_lo";
  399. };
  400. cpu-critical-low {
  401. temperature = <0>;
  402. hysteresis = <2000>;
  403. type = "critical_low";
  404. };
  405. };
  406. };
  407. tsens_tz_sensor10 {
  408. polling-delay-passive = <0>;
  409. polling-delay = <0>;
  410. thermal-sensors = <&tsens 10>;
  411. trips {
  412. cpu-critical-hi {
  413. temperature = <125000>;
  414. hysteresis = <2000>;
  415. type = "critical_high";
  416. };
  417. cpu-config-hi {
  418. temperature = <105000>;
  419. hysteresis = <2000>;
  420. type = "configurable_hi";
  421. };
  422. cpu-config-lo {
  423. temperature = <95000>;
  424. hysteresis = <2000>;
  425. type = "configurable_lo";
  426. };
  427. cpu-critical-low {
  428. temperature = <0>;
  429. hysteresis = <2000>;
  430. type = "critical_low";
  431. };
  432. };
  433. };
  434. };
  435. cpu-pmu {
  436. compatible = "qcom,krait-pmu";
  437. interrupts = <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) |
  438. IRQ_TYPE_LEVEL_HIGH)>;
  439. };
  440. reserved-memory {
  441. #address-cells = <1>;
  442. #size-cells = <1>;
  443. ranges;
  444. nss@40000000 {
  445. reg = <0x40000000 0x1000000>;
  446. no-map;
  447. };
  448. smem: smem@41000000 {
  449. reg = <0x41000000 0x200000>;
  450. no-map;
  451. };
  452. };
  453. clocks {
  454. cxo_board {
  455. compatible = "fixed-clock";
  456. #clock-cells = <0>;
  457. clock-frequency = <25000000>;
  458. };
  459. pxo_board {
  460. compatible = "fixed-clock";
  461. #clock-cells = <0>;
  462. clock-frequency = <25000000>;
  463. };
  464. sleep_clk: sleep_clk {
  465. compatible = "fixed-clock";
  466. clock-frequency = <32768>;
  467. #clock-cells = <0>;
  468. };
  469. };
  470. fab-scaling {
  471. compatible = "qcom,fab-scaling";
  472. clocks = <&rpmcc RPM_APPS_FABRIC_A_CLK>, <&rpmcc RPM_EBI1_A_CLK>;
  473. clock-names = "apps-fab-clk", "ddr-fab-clk";
  474. fab_freq_high = <533000000>;
  475. fab_freq_nominal = <400000000>;
  476. cpu_freq_threshold = <1000000000>;
  477. };
  478. firmware {
  479. scm {
  480. compatible = "qcom,scm-ipq806x";
  481. };
  482. };
  483. soc: soc {
  484. #address-cells = <1>;
  485. #size-cells = <1>;
  486. ranges;
  487. compatible = "simple-bus";
  488. lpass@28100000 {
  489. compatible = "qcom,lpass-cpu";
  490. status = "disabled";
  491. clocks = <&lcc AHBIX_CLK>,
  492. <&lcc MI2S_OSR_CLK>,
  493. <&lcc MI2S_BIT_CLK>;
  494. clock-names = "ahbix-clk",
  495. "mi2s-osr-clk",
  496. "mi2s-bit-clk";
  497. interrupts = <GIC_SPI 85 IRQ_TYPE_EDGE_RISING>;
  498. interrupt-names = "lpass-irq-lpaif";
  499. reg = <0x28100000 0x10000>;
  500. reg-names = "lpass-lpaif";
  501. };
  502. qfprom: qfprom@700000 {
  503. compatible = "qcom,qfprom", "syscon";
  504. reg = <0x700000 0x1000>;
  505. #address-cells = <1>;
  506. #size-cells = <1>;
  507. status = "okay";
  508. tsens_calib: calib@400 {
  509. reg = <0x400 0xb>;
  510. };
  511. tsens_backup: backup@410 {
  512. reg = <0x410 0xb>;
  513. };
  514. speedbin_efuse: speedbin@0c0 {
  515. reg = <0x0c0 0x4>;
  516. };
  517. };
  518. rpm@108000 {
  519. compatible = "qcom,rpm-ipq8064";
  520. reg = <0x108000 0x1000>;
  521. qcom,ipc = <&l2cc 0x8 2>;
  522. interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
  523. <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
  524. <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
  525. interrupt-names = "ack",
  526. "err",
  527. "wakeup";
  528. clocks = <&gcc RPM_MSG_RAM_H_CLK>;
  529. clock-names = "ram";
  530. #address-cells = <1>;
  531. #size-cells = <0>;
  532. rpmcc: clock-controller {
  533. compatible = "qcom,rpmcc-ipq806x", "qcom,rpmcc";
  534. #clock-cells = <1>;
  535. };
  536. regulators {
  537. compatible = "qcom,rpm-smb208-regulators";
  538. smb208_s1a: s1a {
  539. regulator-min-microvolt = <1050000>;
  540. regulator-max-microvolt = <1150000>;
  541. qcom,switch-mode-frequency = <1200000>;
  542. };
  543. smb208_s1b: s1b {
  544. regulator-min-microvolt = <1050000>;
  545. regulator-max-microvolt = <1150000>;
  546. qcom,switch-mode-frequency = <1200000>;
  547. };
  548. smb208_s2a: s2a {
  549. regulator-min-microvolt = < 800000>;
  550. regulator-max-microvolt = <1250000>;
  551. qcom,switch-mode-frequency = <1200000>;
  552. };
  553. smb208_s2b: s2b {
  554. regulator-min-microvolt = < 800000>;
  555. regulator-max-microvolt = <1250000>;
  556. qcom,switch-mode-frequency = <1200000>;
  557. };
  558. };
  559. };
  560. rng@1a500000 {
  561. compatible = "qcom,prng";
  562. reg = <0x1a500000 0x200>;
  563. clocks = <&gcc PRNG_CLK>;
  564. clock-names = "core";
  565. };
  566. qcom_pinmux: pinmux@800000 {
  567. compatible = "qcom,ipq8064-pinctrl";
  568. reg = <0x800000 0x4000>;
  569. gpio-controller;
  570. #gpio-cells = <2>;
  571. interrupt-controller;
  572. #interrupt-cells = <2>;
  573. interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
  574. pcie0_pins: pcie0_pinmux {
  575. mux {
  576. pins = "gpio3";
  577. function = "pcie1_rst";
  578. drive-strength = <12>;
  579. bias-disable;
  580. };
  581. };
  582. pcie1_pins: pcie1_pinmux {
  583. mux {
  584. pins = "gpio48";
  585. function = "pcie2_rst";
  586. drive-strength = <12>;
  587. bias-disable;
  588. };
  589. };
  590. pcie2_pins: pcie2_pinmux {
  591. mux {
  592. pins = "gpio63";
  593. function = "pcie3_rst";
  594. drive-strength = <12>;
  595. bias-disable;
  596. output-low;
  597. };
  598. };
  599. spi_pins: spi_pins {
  600. mux {
  601. pins = "gpio18", "gpio19", "gpio21";
  602. function = "gsbi5";
  603. drive-strength = <10>;
  604. bias-none;
  605. };
  606. };
  607. leds_pins: leds_pins {
  608. mux {
  609. pins = "gpio7", "gpio8", "gpio9",
  610. "gpio26", "gpio53";
  611. function = "gpio";
  612. drive-strength = <2>;
  613. bias-pull-down;
  614. output-low;
  615. };
  616. };
  617. buttons_pins: buttons_pins {
  618. mux {
  619. pins = "gpio54";
  620. drive-strength = <2>;
  621. bias-pull-up;
  622. };
  623. };
  624. };
  625. intc: interrupt-controller@2000000 {
  626. compatible = "qcom,msm-qgic2";
  627. interrupt-controller;
  628. #interrupt-cells = <3>;
  629. reg = <0x02000000 0x1000>,
  630. <0x02002000 0x1000>;
  631. };
  632. timer@200a000 {
  633. compatible = "qcom,kpss-timer",
  634. "qcom,kpss-wdt-ipq8064", "qcom,msm-timer";
  635. interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(2) |
  636. IRQ_TYPE_EDGE_RISING)>,
  637. <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(2) |
  638. IRQ_TYPE_EDGE_RISING)>,
  639. <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(2) |
  640. IRQ_TYPE_EDGE_RISING)>,
  641. <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(2) |
  642. IRQ_TYPE_EDGE_RISING)>,
  643. <GIC_PPI 5 (GIC_CPU_MASK_SIMPLE(2) |
  644. IRQ_TYPE_EDGE_RISING)>;
  645. reg = <0x0200a000 0x100>;
  646. clock-frequency = <25000000>,
  647. <32768>;
  648. clocks = <&sleep_clk>;
  649. clock-names = "sleep";
  650. cpu-offset = <0x80000>;
  651. };
  652. acpu0_aux: clock-controller@2088000 {
  653. compatible = "qcom,kpss-acc-v1";
  654. reg = <0x02088000 0x1000>, <0x02008000 0x1000>;
  655. clock-output-names = "acpu0_aux";
  656. };
  657. acpu1_aux: clock-controller@2098000 {
  658. compatible = "qcom,kpss-acc-v1";
  659. reg = <0x02098000 0x1000>, <0x02008000 0x1000>;
  660. clock-output-names = "acpu1_aux";
  661. };
  662. l2cc: clock-controller@2011000 {
  663. compatible = "qcom,kpss-gcc", "syscon";
  664. reg = <0x2011000 0x1000>;
  665. clock-output-names = "acpu_l2_aux";
  666. };
  667. kraitcc: clock-controller {
  668. compatible = "qcom,krait-cc-v1";
  669. #clock-cells = <1>;
  670. };
  671. saw0: regulator@2089000 {
  672. compatible = "qcom,saw2", "qcom,apq8064-saw2-v1.1-cpu", "syscon";
  673. reg = <0x02089000 0x1000>, <0x02009000 0x1000>;
  674. regulator;
  675. };
  676. saw1: regulator@2099000 {
  677. compatible = "qcom,saw2", "qcom,apq8064-saw2-v1.1-cpu", "syscon";
  678. reg = <0x02099000 0x1000>, <0x02009000 0x1000>;
  679. regulator;
  680. };
  681. saw_l2: regulator@02012000 {
  682. compatible = "qcom,saw2", "syscon";
  683. reg = <0x02012000 0x1000>;
  684. regulator;
  685. };
  686. sic_non_secure: sic-non-secure@12100000 {
  687. compatible = "syscon";
  688. reg = <0x12100000 0x10000>;
  689. };
  690. gsbi2: gsbi@12480000 {
  691. compatible = "qcom,gsbi-v1.0.0";
  692. cell-index = <2>;
  693. reg = <0x12480000 0x100>;
  694. clocks = <&gcc GSBI2_H_CLK>;
  695. clock-names = "iface";
  696. #address-cells = <1>;
  697. #size-cells = <1>;
  698. ranges;
  699. status = "disabled";
  700. syscon-tcsr = <&tcsr>;
  701. uart2: serial@12490000 {
  702. compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
  703. reg = <0x12490000 0x1000>,
  704. <0x12480000 0x1000>;
  705. interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
  706. clocks = <&gcc GSBI2_UART_CLK>, <&gcc GSBI2_H_CLK>;
  707. clock-names = "core", "iface";
  708. status = "disabled";
  709. };
  710. i2c@124a0000 {
  711. compatible = "qcom,i2c-qup-v1.1.1";
  712. reg = <0x124a0000 0x1000>;
  713. interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
  714. clocks = <&gcc GSBI2_QUP_CLK>, <&gcc GSBI2_H_CLK>;
  715. clock-names = "core", "iface";
  716. status = "disabled";
  717. #address-cells = <1>;
  718. #size-cells = <0>;
  719. };
  720. };
  721. gsbi4: gsbi@16300000 {
  722. compatible = "qcom,gsbi-v1.0.0";
  723. cell-index = <4>;
  724. reg = <0x16300000 0x100>;
  725. clocks = <&gcc GSBI4_H_CLK>;
  726. clock-names = "iface";
  727. #address-cells = <1>;
  728. #size-cells = <1>;
  729. ranges;
  730. status = "disabled";
  731. syscon-tcsr = <&tcsr>;
  732. gsbi4_serial: serial@16340000 {
  733. compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
  734. reg = <0x16340000 0x1000>,
  735. <0x16300000 0x1000>;
  736. interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
  737. clocks = <&gcc GSBI4_UART_CLK>, <&gcc GSBI4_H_CLK>;
  738. clock-names = "core", "iface";
  739. status = "disabled";
  740. };
  741. i2c@16380000 {
  742. compatible = "qcom,i2c-qup-v1.1.1";
  743. reg = <0x16380000 0x1000>;
  744. interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
  745. clocks = <&gcc GSBI4_QUP_CLK>, <&gcc GSBI4_H_CLK>;
  746. clock-names = "core", "iface";
  747. status = "disabled";
  748. #address-cells = <1>;
  749. #size-cells = <0>;
  750. };
  751. };
  752. gsbi5: gsbi@1a200000 {
  753. compatible = "qcom,gsbi-v1.0.0";
  754. cell-index = <5>;
  755. reg = <0x1a200000 0x100>;
  756. clocks = <&gcc GSBI5_H_CLK>;
  757. clock-names = "iface";
  758. #address-cells = <1>;
  759. #size-cells = <1>;
  760. ranges;
  761. status = "disabled";
  762. syscon-tcsr = <&tcsr>;
  763. uart5: serial@1a240000 {
  764. compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
  765. reg = <0x1a240000 0x1000>,
  766. <0x1a200000 0x1000>;
  767. interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
  768. clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>;
  769. clock-names = "core", "iface";
  770. status = "disabled";
  771. };
  772. i2c@1a280000 {
  773. compatible = "qcom,i2c-qup-v1.1.1";
  774. reg = <0x1a280000 0x1000>;
  775. interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
  776. clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
  777. clock-names = "core", "iface";
  778. status = "disabled";
  779. #address-cells = <1>;
  780. #size-cells = <0>;
  781. };
  782. spi@1a280000 {
  783. compatible = "qcom,spi-qup-v1.1.1";
  784. reg = <0x1a280000 0x1000>;
  785. interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
  786. clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
  787. clock-names = "core", "iface";
  788. status = "disabled";
  789. #address-cells = <1>;
  790. #size-cells = <0>;
  791. };
  792. };
  793. gsbi7: gsbi@16600000 {
  794. status = "disabled";
  795. compatible = "qcom,gsbi-v1.0.0";
  796. cell-index = <7>;
  797. reg = <0x16600000 0x100>;
  798. clocks = <&gcc GSBI7_H_CLK>;
  799. clock-names = "iface";
  800. #address-cells = <1>;
  801. #size-cells = <1>;
  802. ranges;
  803. syscon-tcsr = <&tcsr>;
  804. gsbi7_serial: serial@16640000 {
  805. compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
  806. reg = <0x16640000 0x1000>,
  807. <0x16600000 0x1000>;
  808. interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
  809. clocks = <&gcc GSBI7_UART_CLK>, <&gcc GSBI7_H_CLK>;
  810. clock-names = "core", "iface";
  811. status = "disabled";
  812. };
  813. };
  814. sata_phy: sata-phy@1b400000 {
  815. compatible = "qcom,ipq806x-sata-phy";
  816. reg = <0x1b400000 0x200>;
  817. clocks = <&gcc SATA_PHY_CFG_CLK>;
  818. clock-names = "cfg";
  819. #phy-cells = <0>;
  820. status = "disabled";
  821. };
  822. sata: sata@29000000 {
  823. compatible = "qcom,ipq806x-ahci", "generic-ahci";
  824. reg = <0x29000000 0x180>;
  825. ports-implemented = <0x1>;
  826. interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
  827. clocks = <&gcc SFAB_SATA_S_H_CLK>,
  828. <&gcc SATA_H_CLK>,
  829. <&gcc SATA_A_CLK>,
  830. <&gcc SATA_RXOOB_CLK>,
  831. <&gcc SATA_PMALIVE_CLK>;
  832. clock-names = "slave_face", "iface", "core",
  833. "rxoob", "pmalive";
  834. assigned-clocks = <&gcc SATA_RXOOB_CLK>, <&gcc SATA_PMALIVE_CLK>;
  835. assigned-clock-rates = <100000000>, <100000000>;
  836. phys = <&sata_phy>;
  837. phy-names = "sata-phy";
  838. status = "disabled";
  839. };
  840. qcom,ssbi@500000 {
  841. compatible = "qcom,ssbi";
  842. reg = <0x00500000 0x1000>;
  843. qcom,controller-type = "pmic-arbiter";
  844. };
  845. gcc: clock-controller@900000 {
  846. compatible = "qcom,gcc-ipq8064";
  847. reg = <0x00900000 0x4000>;
  848. #clock-cells = <1>;
  849. #reset-cells = <1>;
  850. #power-domain-cells = <1>;
  851. };
  852. tsens: thermal-sensor@900000 {
  853. compatible = "qcom,ipq8064-tsens";
  854. reg = <0x900000 0x3680>;
  855. nvmem-cells = <&tsens_calib>, <&tsens_backup>;
  856. nvmem-cell-names = "calib", "calib_backup";
  857. interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
  858. #thermal-sensor-cells = <1>;
  859. };
  860. tcsr: syscon@1a400000 {
  861. compatible = "qcom,tcsr-ipq8064", "syscon";
  862. reg = <0x1a400000 0x100>;
  863. };
  864. lcc: clock-controller@28000000 {
  865. compatible = "qcom,lcc-ipq8064";
  866. reg = <0x28000000 0x1000>;
  867. #clock-cells = <1>;
  868. #reset-cells = <1>;
  869. };
  870. sfpb_mutex_block: syscon@1200600 {
  871. compatible = "syscon";
  872. reg = <0x01200600 0x100>;
  873. };
  874. hs_phy_0: hs_phy_0 {
  875. compatible = "qcom,dwc3-hs-usb-phy";
  876. regmap = <&usb3_0>;
  877. clocks = <&gcc USB30_0_UTMI_CLK>;
  878. clock-names = "ref";
  879. #phy-cells = <0>;
  880. };
  881. ss_phy_0: ss_phy_0 {
  882. compatible = "qcom,dwc3-ss-usb-phy";
  883. regmap = <&usb3_0>;
  884. clocks = <&gcc USB30_0_MASTER_CLK>;
  885. clock-names = "ref";
  886. #phy-cells = <0>;
  887. };
  888. usb3_0: usb3@110f8800 {
  889. compatible = "qcom,dwc3", "syscon";
  890. #address-cells = <1>;
  891. #size-cells = <1>;
  892. reg = <0x110f8800 0x8000>;
  893. clocks = <&gcc USB30_0_MASTER_CLK>;
  894. clock-names = "core";
  895. ranges;
  896. resets = <&gcc USB30_0_MASTER_RESET>;
  897. reset-names = "master";
  898. status = "disabled";
  899. dwc3_0: dwc3@11000000 {
  900. compatible = "snps,dwc3";
  901. reg = <0x11000000 0xcd00>;
  902. interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
  903. phys = <&hs_phy_0>, <&ss_phy_0>;
  904. phy-names = "usb2-phy", "usb3-phy";
  905. dr_mode = "host";
  906. snps,dis_u3_susphy_quirk;
  907. };
  908. };
  909. hs_phy_1: hs_phy_1 {
  910. compatible = "qcom,dwc3-hs-usb-phy";
  911. regmap = <&usb3_1>;
  912. clocks = <&gcc USB30_1_UTMI_CLK>;
  913. clock-names = "ref";
  914. #phy-cells = <0>;
  915. };
  916. ss_phy_1: ss_phy_1 {
  917. compatible = "qcom,dwc3-ss-usb-phy";
  918. regmap = <&usb3_1>;
  919. clocks = <&gcc USB30_1_MASTER_CLK>;
  920. clock-names = "ref";
  921. #phy-cells = <0>;
  922. };
  923. usb3_1: usb3@100f8800 {
  924. compatible = "qcom,dwc3", "syscon";
  925. #address-cells = <1>;
  926. #size-cells = <1>;
  927. reg = <0x100f8800 0x8000>;
  928. clocks = <&gcc USB30_1_MASTER_CLK>;
  929. clock-names = "core";
  930. ranges;
  931. resets = <&gcc USB30_1_MASTER_RESET>;
  932. reset-names = "master";
  933. status = "disabled";
  934. dwc3_1: dwc3@10000000 {
  935. compatible = "snps,dwc3";
  936. reg = <0x10000000 0xcd00>;
  937. interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
  938. phys = <&hs_phy_1>, <&ss_phy_1>;
  939. phy-names = "usb2-phy", "usb3-phy";
  940. dr_mode = "host";
  941. snps,dis_u3_susphy_quirk;
  942. };
  943. };
  944. pcie0: pci@1b500000 {
  945. compatible = "qcom,pcie-ipq8064";
  946. reg = <0x1b500000 0x1000
  947. 0x1b502000 0x80
  948. 0x1b600000 0x100
  949. 0x0ff00000 0x100000>;
  950. reg-names = "dbi", "elbi", "parf", "config";
  951. device_type = "pci";
  952. linux,pci-domain = <0>;
  953. bus-range = <0x00 0xff>;
  954. num-lanes = <1>;
  955. #address-cells = <3>;
  956. #size-cells = <2>;
  957. ranges = <0x81000000 0 0x0fe00000 0x0fe00000 0 0x00100000 /* downstream I/O */
  958. 0x82000000 0 0x08000000 0x08000000 0 0x07e00000>; /* non-prefetchable memory */
  959. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  960. interrupt-names = "msi";
  961. #interrupt-cells = <1>;
  962. interrupt-map-mask = <0 0 0 0x7>;
  963. interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
  964. <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
  965. <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
  966. <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
  967. clocks = <&gcc PCIE_A_CLK>,
  968. <&gcc PCIE_H_CLK>,
  969. <&gcc PCIE_PHY_CLK>,
  970. <&gcc PCIE_AUX_CLK>,
  971. <&gcc PCIE_ALT_REF_CLK>;
  972. clock-names = "core", "iface", "phy", "aux", "ref";
  973. assigned-clocks = <&gcc PCIE_ALT_REF_CLK>;
  974. assigned-clock-rates = <100000000>;
  975. resets = <&gcc PCIE_ACLK_RESET>,
  976. <&gcc PCIE_HCLK_RESET>,
  977. <&gcc PCIE_POR_RESET>,
  978. <&gcc PCIE_PCI_RESET>,
  979. <&gcc PCIE_PHY_RESET>,
  980. <&gcc PCIE_EXT_RESET>;
  981. reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
  982. pinctrl-0 = <&pcie0_pins>;
  983. pinctrl-names = "default";
  984. perst-gpios = <&qcom_pinmux 3 GPIO_ACTIVE_LOW>;
  985. phy-tx0-term-offset = <7>;
  986. status = "disabled";
  987. };
  988. pcie1: pci@1b700000 {
  989. compatible = "qcom,pcie-ipq8064";
  990. reg = <0x1b700000 0x1000
  991. 0x1b702000 0x80
  992. 0x1b800000 0x100
  993. 0x31f00000 0x100000>;
  994. reg-names = "dbi", "elbi", "parf", "config";
  995. device_type = "pci";
  996. linux,pci-domain = <1>;
  997. bus-range = <0x00 0xff>;
  998. num-lanes = <1>;
  999. #address-cells = <3>;
  1000. #size-cells = <2>;
  1001. ranges = <0x81000000 0 0x31e00000 0x31e00000 0 0x00100000 /* downstream I/O */
  1002. 0x82000000 0 0x2e000000 0x2e000000 0 0x03e00000>; /* non-prefetchable memory */
  1003. interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
  1004. interrupt-names = "msi";
  1005. #interrupt-cells = <1>;
  1006. interrupt-map-mask = <0 0 0 0x7>;
  1007. interrupt-map = <0 0 0 1 &intc 0 58 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
  1008. <0 0 0 2 &intc 0 59 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
  1009. <0 0 0 3 &intc 0 60 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
  1010. <0 0 0 4 &intc 0 61 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
  1011. clocks = <&gcc PCIE_1_A_CLK>,
  1012. <&gcc PCIE_1_H_CLK>,
  1013. <&gcc PCIE_1_PHY_CLK>,
  1014. <&gcc PCIE_1_AUX_CLK>,
  1015. <&gcc PCIE_1_ALT_REF_CLK>;
  1016. clock-names = "core", "iface", "phy", "aux", "ref";
  1017. assigned-clocks = <&gcc PCIE_1_ALT_REF_CLK>;
  1018. assigned-clock-rates = <100000000>;
  1019. resets = <&gcc PCIE_1_ACLK_RESET>,
  1020. <&gcc PCIE_1_HCLK_RESET>,
  1021. <&gcc PCIE_1_POR_RESET>,
  1022. <&gcc PCIE_1_PCI_RESET>,
  1023. <&gcc PCIE_1_PHY_RESET>,
  1024. <&gcc PCIE_1_EXT_RESET>;
  1025. reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
  1026. pinctrl-0 = <&pcie1_pins>;
  1027. pinctrl-names = "default";
  1028. perst-gpios = <&qcom_pinmux 48 GPIO_ACTIVE_LOW>;
  1029. phy-tx0-term-offset = <7>;
  1030. status = "disabled";
  1031. };
  1032. pcie2: pci@1b900000 {
  1033. compatible = "qcom,pcie-ipq8064";
  1034. reg = <0x1b900000 0x1000
  1035. 0x1b902000 0x80
  1036. 0x1ba00000 0x100
  1037. 0x35f00000 0x100000>;
  1038. reg-names = "dbi", "elbi", "parf", "config";
  1039. device_type = "pci";
  1040. linux,pci-domain = <2>;
  1041. bus-range = <0x00 0xff>;
  1042. num-lanes = <1>;
  1043. #address-cells = <3>;
  1044. #size-cells = <2>;
  1045. ranges = <0x81000000 0 0x35e00000 0x35e00000 0 0x00100000 /* downstream I/O */
  1046. 0x82000000 0 0x32000000 0x32000000 0 0x03e00000>; /* non-prefetchable memory */
  1047. interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
  1048. interrupt-names = "msi";
  1049. #interrupt-cells = <1>;
  1050. interrupt-map-mask = <0 0 0 0x7>;
  1051. interrupt-map = <0 0 0 1 &intc 0 72 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
  1052. <0 0 0 2 &intc 0 73 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
  1053. <0 0 0 3 &intc 0 74 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
  1054. <0 0 0 4 &intc 0 75 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
  1055. clocks = <&gcc PCIE_2_A_CLK>,
  1056. <&gcc PCIE_2_H_CLK>,
  1057. <&gcc PCIE_2_PHY_CLK>,
  1058. <&gcc PCIE_2_AUX_CLK>,
  1059. <&gcc PCIE_2_ALT_REF_CLK>;
  1060. clock-names = "core", "iface", "phy", "aux", "ref";
  1061. assigned-clocks = <&gcc PCIE_2_ALT_REF_CLK>;
  1062. assigned-clock-rates = <100000000>;
  1063. resets = <&gcc PCIE_2_ACLK_RESET>,
  1064. <&gcc PCIE_2_HCLK_RESET>,
  1065. <&gcc PCIE_2_POR_RESET>,
  1066. <&gcc PCIE_2_PCI_RESET>,
  1067. <&gcc PCIE_2_PHY_RESET>,
  1068. <&gcc PCIE_2_EXT_RESET>;
  1069. reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
  1070. pinctrl-0 = <&pcie2_pins>;
  1071. pinctrl-names = "default";
  1072. perst-gpios = <&qcom_pinmux 63 GPIO_ACTIVE_LOW>;
  1073. phy-tx0-term-offset = <7>;
  1074. status = "disabled";
  1075. };
  1076. adm_dma: dma@18300000 {
  1077. compatible = "qcom,adm";
  1078. reg = <0x18300000 0x100000>;
  1079. interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
  1080. #dma-cells = <1>;
  1081. clocks = <&gcc ADM0_CLK>, <&gcc ADM0_PBUS_CLK>;
  1082. clock-names = "core", "iface";
  1083. resets = <&gcc ADM0_RESET>,
  1084. <&gcc ADM0_PBUS_RESET>,
  1085. <&gcc ADM0_C0_RESET>,
  1086. <&gcc ADM0_C1_RESET>,
  1087. <&gcc ADM0_C2_RESET>;
  1088. reset-names = "clk", "pbus", "c0", "c1", "c2";
  1089. qcom,ee = <0>;
  1090. status = "disabled";
  1091. };
  1092. nand: nand@1ac00000 {
  1093. compatible = "qcom,ipq806x-nand";
  1094. reg = <0x1ac00000 0x800>;
  1095. clocks = <&gcc EBI2_CLK>,
  1096. <&gcc EBI2_AON_CLK>;
  1097. clock-names = "core", "aon";
  1098. dmas = <&adm_dma 3>;
  1099. dma-names = "rxtx";
  1100. qcom,cmd-crci = <15>;
  1101. qcom,data-crci = <3>;
  1102. status = "disabled";
  1103. #address-cells = <1>;
  1104. #size-cells = <0>;
  1105. };
  1106. nss_common: syscon@03000000 {
  1107. compatible = "syscon";
  1108. reg = <0x03000000 0x0000FFFF>;
  1109. };
  1110. qsgmii_csr: syscon@1bb00000 {
  1111. compatible = "syscon";
  1112. reg = <0x1bb00000 0x000001FF>;
  1113. };
  1114. stmmac_axi_setup: stmmac-axi-config {
  1115. snps,wr_osr_lmt = <7>;
  1116. snps,rd_osr_lmt = <7>;
  1117. snps,blen = <16 0 0 0 0 0 0>;
  1118. };
  1119. gmac0: ethernet@37000000 {
  1120. device_type = "network";
  1121. compatible = "qcom,ipq806x-gmac";
  1122. reg = <0x37000000 0x200000>;
  1123. interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
  1124. interrupt-names = "macirq";
  1125. snps,axi-config = <&stmmac_axi_setup>;
  1126. snps,pbl = <32>;
  1127. snps,aal = <1>;
  1128. qcom,nss-common = <&nss_common>;
  1129. qcom,qsgmii-csr = <&qsgmii_csr>;
  1130. clocks = <&gcc GMAC_CORE1_CLK>;
  1131. clock-names = "stmmaceth";
  1132. resets = <&gcc GMAC_CORE1_RESET>;
  1133. reset-names = "stmmaceth";
  1134. status = "disabled";
  1135. };
  1136. gmac1: ethernet@37200000 {
  1137. device_type = "network";
  1138. compatible = "qcom,ipq806x-gmac";
  1139. reg = <0x37200000 0x200000>;
  1140. interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
  1141. interrupt-names = "macirq";
  1142. snps,axi-config = <&stmmac_axi_setup>;
  1143. snps,pbl = <32>;
  1144. snps,aal = <1>;
  1145. qcom,nss-common = <&nss_common>;
  1146. qcom,qsgmii-csr = <&qsgmii_csr>;
  1147. clocks = <&gcc GMAC_CORE2_CLK>;
  1148. clock-names = "stmmaceth";
  1149. resets = <&gcc GMAC_CORE2_RESET>;
  1150. reset-names = "stmmaceth";
  1151. status = "disabled";
  1152. };
  1153. gmac2: ethernet@37400000 {
  1154. device_type = "network";
  1155. compatible = "qcom,ipq806x-gmac";
  1156. reg = <0x37400000 0x200000>;
  1157. interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>;
  1158. interrupt-names = "macirq";
  1159. snps,axi-config = <&stmmac_axi_setup>;
  1160. snps,pbl = <32>;
  1161. snps,aal = <1>;
  1162. qcom,nss-common = <&nss_common>;
  1163. qcom,qsgmii-csr = <&qsgmii_csr>;
  1164. clocks = <&gcc GMAC_CORE3_CLK>;
  1165. clock-names = "stmmaceth";
  1166. resets = <&gcc GMAC_CORE3_RESET>;
  1167. reset-names = "stmmaceth";
  1168. status = "disabled";
  1169. };
  1170. gmac3: ethernet@37600000 {
  1171. device_type = "network";
  1172. compatible = "qcom,ipq806x-gmac";
  1173. reg = <0x37600000 0x200000>;
  1174. interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
  1175. interrupt-names = "macirq";
  1176. snps,axi-config = <&stmmac_axi_setup>;
  1177. snps,pbl = <32>;
  1178. snps,aal = <1>;
  1179. qcom,nss-common = <&nss_common>;
  1180. qcom,qsgmii-csr = <&qsgmii_csr>;
  1181. clocks = <&gcc GMAC_CORE4_CLK>;
  1182. clock-names = "stmmaceth";
  1183. resets = <&gcc GMAC_CORE4_RESET>;
  1184. reset-names = "stmmaceth";
  1185. status = "disabled";
  1186. };
  1187. /* Temporary fixed regulator */
  1188. vsdcc_fixed: vsdcc-regulator {
  1189. compatible = "regulator-fixed";
  1190. regulator-name = "SDCC Power";
  1191. regulator-min-microvolt = <3300000>;
  1192. regulator-max-microvolt = <3300000>;
  1193. regulator-always-on;
  1194. };
  1195. sdcc1bam:dma@12402000 {
  1196. compatible = "qcom,bam-v1.3.0";
  1197. reg = <0x12402000 0x8000>;
  1198. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  1199. clocks = <&gcc SDC1_H_CLK>;
  1200. clock-names = "bam_clk";
  1201. #dma-cells = <1>;
  1202. qcom,ee = <0>;
  1203. };
  1204. sdcc3bam:dma@12182000 {
  1205. compatible = "qcom,bam-v1.3.0";
  1206. reg = <0x12182000 0x8000>;
  1207. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  1208. clocks = <&gcc SDC3_H_CLK>;
  1209. clock-names = "bam_clk";
  1210. #dma-cells = <1>;
  1211. qcom,ee = <0>;
  1212. };
  1213. amba {
  1214. compatible = "arm,amba-bus";
  1215. #address-cells = <1>;
  1216. #size-cells = <1>;
  1217. ranges;
  1218. sdcc1: sdcc@12400000 {
  1219. status = "disabled";
  1220. compatible = "arm,pl18x", "arm,primecell";
  1221. arm,primecell-periphid = <0x00051180>;
  1222. reg = <0x12400000 0x2000>;
  1223. interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
  1224. interrupt-names = "cmd_irq";
  1225. clocks = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>;
  1226. clock-names = "mclk", "apb_pclk";
  1227. bus-width = <8>;
  1228. max-frequency = <96000000>;
  1229. non-removable;
  1230. cap-sd-highspeed;
  1231. cap-mmc-highspeed;
  1232. vmmc-supply = <&vsdcc_fixed>;
  1233. dmas = <&sdcc1bam 2>, <&sdcc1bam 1>;
  1234. dma-names = "tx", "rx";
  1235. };
  1236. sdcc3: sdcc@12180000 {
  1237. compatible = "arm,pl18x", "arm,primecell";
  1238. arm,primecell-periphid = <0x00051180>;
  1239. status = "disabled";
  1240. reg = <0x12180000 0x2000>;
  1241. interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
  1242. interrupt-names = "cmd_irq";
  1243. clocks = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>;
  1244. clock-names = "mclk", "apb_pclk";
  1245. bus-width = <8>;
  1246. cap-sd-highspeed;
  1247. cap-mmc-highspeed;
  1248. max-frequency = <192000000>;
  1249. #mmc-ddr-1_8v;
  1250. sd-uhs-sdr104;
  1251. sd-uhs-ddr50;
  1252. vqmmc-supply = <&vsdcc_fixed>;
  1253. dmas = <&sdcc3bam 2>, <&sdcc3bam 1>;
  1254. dma-names = "tx", "rx";
  1255. };
  1256. };
  1257. };
  1258. sfpb_mutex: sfpb-mutex {
  1259. compatible = "qcom,sfpb-mutex";
  1260. syscon = <&sfpb_mutex_block 4 4>;
  1261. #hwlock-cells = <1>;
  1262. };
  1263. smem {
  1264. compatible = "qcom,smem";
  1265. memory-region = <&smem>;
  1266. hwlocks = <&sfpb_mutex 3>;
  1267. };
  1268. };