qcom-ipq8064.dtsi 35 KB

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