qcom-apq8064.dtsi 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101
  1. /dts-v1/;
  2. #include "skeleton.dtsi"
  3. #include <dt-bindings/clock/qcom,gcc-msm8960.h>
  4. #include <dt-bindings/reset/qcom,gcc-msm8960.h>
  5. #include <dt-bindings/clock/qcom,mmcc-msm8960.h>
  6. #include <dt-bindings/soc/qcom,gsbi.h>
  7. #include <dt-bindings/interrupt-controller/irq.h>
  8. #include <dt-bindings/interrupt-controller/arm-gic.h>
  9. / {
  10. model = "Qualcomm APQ8064";
  11. compatible = "qcom,apq8064";
  12. interrupt-parent = <&intc>;
  13. reserved-memory {
  14. #address-cells = <1>;
  15. #size-cells = <1>;
  16. ranges;
  17. smem_region: smem@80000000 {
  18. reg = <0x80000000 0x200000>;
  19. no-map;
  20. };
  21. };
  22. cpus {
  23. #address-cells = <1>;
  24. #size-cells = <0>;
  25. cpu@0 {
  26. compatible = "qcom,krait";
  27. enable-method = "qcom,kpss-acc-v1";
  28. device_type = "cpu";
  29. reg = <0>;
  30. next-level-cache = <&L2>;
  31. qcom,acc = <&acc0>;
  32. qcom,saw = <&saw0>;
  33. cpu-idle-states = <&CPU_SPC>;
  34. };
  35. cpu@1 {
  36. compatible = "qcom,krait";
  37. enable-method = "qcom,kpss-acc-v1";
  38. device_type = "cpu";
  39. reg = <1>;
  40. next-level-cache = <&L2>;
  41. qcom,acc = <&acc1>;
  42. qcom,saw = <&saw1>;
  43. cpu-idle-states = <&CPU_SPC>;
  44. };
  45. cpu@2 {
  46. compatible = "qcom,krait";
  47. enable-method = "qcom,kpss-acc-v1";
  48. device_type = "cpu";
  49. reg = <2>;
  50. next-level-cache = <&L2>;
  51. qcom,acc = <&acc2>;
  52. qcom,saw = <&saw2>;
  53. cpu-idle-states = <&CPU_SPC>;
  54. };
  55. cpu@3 {
  56. compatible = "qcom,krait";
  57. enable-method = "qcom,kpss-acc-v1";
  58. device_type = "cpu";
  59. reg = <3>;
  60. next-level-cache = <&L2>;
  61. qcom,acc = <&acc3>;
  62. qcom,saw = <&saw3>;
  63. cpu-idle-states = <&CPU_SPC>;
  64. };
  65. L2: l2-cache {
  66. compatible = "cache";
  67. cache-level = <2>;
  68. };
  69. idle-states {
  70. CPU_SPC: spc {
  71. compatible = "qcom,idle-state-spc",
  72. "arm,idle-state";
  73. entry-latency-us = <400>;
  74. exit-latency-us = <900>;
  75. min-residency-us = <3000>;
  76. };
  77. };
  78. };
  79. thermal-zones {
  80. cpu-thermal0 {
  81. polling-delay-passive = <250>;
  82. polling-delay = <1000>;
  83. thermal-sensors = <&gcc 7>;
  84. coefficients = <1199 0>;
  85. trips {
  86. cpu_alert0: trip0 {
  87. temperature = <75000>;
  88. hysteresis = <2000>;
  89. type = "passive";
  90. };
  91. cpu_crit0: trip1 {
  92. temperature = <110000>;
  93. hysteresis = <2000>;
  94. type = "critical";
  95. };
  96. };
  97. };
  98. cpu-thermal1 {
  99. polling-delay-passive = <250>;
  100. polling-delay = <1000>;
  101. thermal-sensors = <&gcc 8>;
  102. coefficients = <1132 0>;
  103. trips {
  104. cpu_alert1: trip0 {
  105. temperature = <75000>;
  106. hysteresis = <2000>;
  107. type = "passive";
  108. };
  109. cpu_crit1: trip1 {
  110. temperature = <110000>;
  111. hysteresis = <2000>;
  112. type = "critical";
  113. };
  114. };
  115. };
  116. cpu-thermal2 {
  117. polling-delay-passive = <250>;
  118. polling-delay = <1000>;
  119. thermal-sensors = <&gcc 9>;
  120. coefficients = <1199 0>;
  121. trips {
  122. cpu_alert2: trip0 {
  123. temperature = <75000>;
  124. hysteresis = <2000>;
  125. type = "passive";
  126. };
  127. cpu_crit2: trip1 {
  128. temperature = <110000>;
  129. hysteresis = <2000>;
  130. type = "critical";
  131. };
  132. };
  133. };
  134. cpu-thermal3 {
  135. polling-delay-passive = <250>;
  136. polling-delay = <1000>;
  137. thermal-sensors = <&gcc 10>;
  138. coefficients = <1132 0>;
  139. trips {
  140. cpu_alert3: trip0 {
  141. temperature = <75000>;
  142. hysteresis = <2000>;
  143. type = "passive";
  144. };
  145. cpu_crit3: trip1 {
  146. temperature = <110000>;
  147. hysteresis = <2000>;
  148. type = "critical";
  149. };
  150. };
  151. };
  152. };
  153. cpu-pmu {
  154. compatible = "qcom,krait-pmu";
  155. interrupts = <1 10 0x304>;
  156. };
  157. clocks {
  158. cxo_board {
  159. compatible = "fixed-clock";
  160. #clock-cells = <0>;
  161. clock-frequency = <19200000>;
  162. };
  163. pxo_board {
  164. compatible = "fixed-clock";
  165. #clock-cells = <0>;
  166. clock-frequency = <27000000>;
  167. };
  168. sleep_clk {
  169. compatible = "fixed-clock";
  170. #clock-cells = <0>;
  171. clock-frequency = <32768>;
  172. };
  173. };
  174. sfpb_mutex: hwmutex {
  175. compatible = "qcom,sfpb-mutex";
  176. syscon = <&sfpb_wrapper_mutex 0x604 0x4>;
  177. #hwlock-cells = <1>;
  178. };
  179. smem {
  180. compatible = "qcom,smem";
  181. memory-region = <&smem_region>;
  182. hwlocks = <&sfpb_mutex 3>;
  183. };
  184. smd {
  185. compatible = "qcom,smd";
  186. modem@0 {
  187. interrupts = <0 37 IRQ_TYPE_EDGE_RISING>;
  188. qcom,ipc = <&l2cc 8 3>;
  189. qcom,smd-edge = <0>;
  190. status = "disabled";
  191. };
  192. q6@1 {
  193. interrupts = <0 90 IRQ_TYPE_EDGE_RISING>;
  194. qcom,ipc = <&l2cc 8 15>;
  195. qcom,smd-edge = <1>;
  196. status = "disabled";
  197. };
  198. dsps@3 {
  199. interrupts = <0 138 IRQ_TYPE_EDGE_RISING>;
  200. qcom,ipc = <&sps_sic_non_secure 0x4080 0>;
  201. qcom,smd-edge = <3>;
  202. status = "disabled";
  203. };
  204. riva@6 {
  205. interrupts = <0 198 IRQ_TYPE_EDGE_RISING>;
  206. qcom,ipc = <&l2cc 8 25>;
  207. qcom,smd-edge = <6>;
  208. status = "disabled";
  209. };
  210. };
  211. smsm {
  212. compatible = "qcom,smsm";
  213. #address-cells = <1>;
  214. #size-cells = <0>;
  215. qcom,ipc-1 = <&l2cc 8 4>;
  216. qcom,ipc-2 = <&l2cc 8 14>;
  217. qcom,ipc-3 = <&l2cc 8 23>;
  218. qcom,ipc-4 = <&sps_sic_non_secure 0x4094 0>;
  219. apps_smsm: apps@0 {
  220. reg = <0>;
  221. #qcom,smem-state-cells = <1>;
  222. };
  223. modem_smsm: modem@1 {
  224. reg = <1>;
  225. interrupts = <0 38 IRQ_TYPE_EDGE_RISING>;
  226. interrupt-controller;
  227. #interrupt-cells = <2>;
  228. };
  229. q6_smsm: q6@2 {
  230. reg = <2>;
  231. interrupts = <0 89 IRQ_TYPE_EDGE_RISING>;
  232. interrupt-controller;
  233. #interrupt-cells = <2>;
  234. };
  235. wcnss_smsm: wcnss@3 {
  236. reg = <3>;
  237. interrupts = <0 204 IRQ_TYPE_EDGE_RISING>;
  238. interrupt-controller;
  239. #interrupt-cells = <2>;
  240. };
  241. dsps_smsm: dsps@4 {
  242. reg = <4>;
  243. interrupts = <0 137 IRQ_TYPE_EDGE_RISING>;
  244. interrupt-controller;
  245. #interrupt-cells = <2>;
  246. };
  247. };
  248. firmware {
  249. scm {
  250. compatible = "qcom,scm-apq8064";
  251. };
  252. };
  253. soc: soc {
  254. #address-cells = <1>;
  255. #size-cells = <1>;
  256. ranges;
  257. compatible = "simple-bus";
  258. tlmm_pinmux: pinctrl@800000 {
  259. compatible = "qcom,apq8064-pinctrl";
  260. reg = <0x800000 0x4000>;
  261. gpio-controller;
  262. #gpio-cells = <2>;
  263. interrupt-controller;
  264. #interrupt-cells = <2>;
  265. interrupts = <0 16 IRQ_TYPE_LEVEL_HIGH>;
  266. pinctrl-names = "default";
  267. pinctrl-0 = <&ps_hold>;
  268. };
  269. sfpb_wrapper_mutex: syscon@1200000 {
  270. compatible = "syscon";
  271. reg = <0x01200000 0x8000>;
  272. };
  273. intc: interrupt-controller@2000000 {
  274. compatible = "qcom,msm-qgic2";
  275. interrupt-controller;
  276. #interrupt-cells = <3>;
  277. reg = <0x02000000 0x1000>,
  278. <0x02002000 0x1000>;
  279. };
  280. timer@200a000 {
  281. compatible = "qcom,kpss-timer",
  282. "qcom,kpss-wdt-apq8064", "qcom,msm-timer";
  283. interrupts = <1 1 0x301>,
  284. <1 2 0x301>,
  285. <1 3 0x301>;
  286. reg = <0x0200a000 0x100>;
  287. clock-frequency = <27000000>,
  288. <32768>;
  289. cpu-offset = <0x80000>;
  290. };
  291. acc0: clock-controller@2088000 {
  292. compatible = "qcom,kpss-acc-v1";
  293. reg = <0x02088000 0x1000>, <0x02008000 0x1000>;
  294. };
  295. acc1: clock-controller@2098000 {
  296. compatible = "qcom,kpss-acc-v1";
  297. reg = <0x02098000 0x1000>, <0x02008000 0x1000>;
  298. };
  299. acc2: clock-controller@20a8000 {
  300. compatible = "qcom,kpss-acc-v1";
  301. reg = <0x020a8000 0x1000>, <0x02008000 0x1000>;
  302. };
  303. acc3: clock-controller@20b8000 {
  304. compatible = "qcom,kpss-acc-v1";
  305. reg = <0x020b8000 0x1000>, <0x02008000 0x1000>;
  306. };
  307. saw0: power-controller@2089000 {
  308. compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2";
  309. reg = <0x02089000 0x1000>, <0x02009000 0x1000>;
  310. regulator;
  311. };
  312. saw1: power-controller@2099000 {
  313. compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2";
  314. reg = <0x02099000 0x1000>, <0x02009000 0x1000>;
  315. regulator;
  316. };
  317. saw2: power-controller@20a9000 {
  318. compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2";
  319. reg = <0x020a9000 0x1000>, <0x02009000 0x1000>;
  320. regulator;
  321. };
  322. saw3: power-controller@20b9000 {
  323. compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2";
  324. reg = <0x020b9000 0x1000>, <0x02009000 0x1000>;
  325. regulator;
  326. };
  327. sps_sic_non_secure: sps-sic-non-secure@12100000 {
  328. compatible = "syscon";
  329. reg = <0x12100000 0x10000>;
  330. };
  331. gsbi1: gsbi@12440000 {
  332. status = "disabled";
  333. compatible = "qcom,gsbi-v1.0.0";
  334. cell-index = <1>;
  335. reg = <0x12440000 0x100>;
  336. clocks = <&gcc GSBI1_H_CLK>;
  337. clock-names = "iface";
  338. #address-cells = <1>;
  339. #size-cells = <1>;
  340. ranges;
  341. syscon-tcsr = <&tcsr>;
  342. gsbi1_serial: serial@12450000 {
  343. compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
  344. reg = <0x12450000 0x100>,
  345. <0x12400000 0x03>;
  346. interrupts = <0 193 0x0>;
  347. clocks = <&gcc GSBI1_UART_CLK>, <&gcc GSBI1_H_CLK>;
  348. clock-names = "core", "iface";
  349. status = "disabled";
  350. };
  351. gsbi1_i2c: i2c@12460000 {
  352. compatible = "qcom,i2c-qup-v1.1.1";
  353. pinctrl-0 = <&i2c1_pins>;
  354. pinctrl-1 = <&i2c1_pins_sleep>;
  355. pinctrl-names = "default", "sleep";
  356. reg = <0x12460000 0x1000>;
  357. interrupts = <0 194 IRQ_TYPE_NONE>;
  358. clocks = <&gcc GSBI1_QUP_CLK>, <&gcc GSBI1_H_CLK>;
  359. clock-names = "core", "iface";
  360. #address-cells = <1>;
  361. #size-cells = <0>;
  362. };
  363. };
  364. gsbi2: gsbi@12480000 {
  365. status = "disabled";
  366. compatible = "qcom,gsbi-v1.0.0";
  367. cell-index = <2>;
  368. reg = <0x12480000 0x100>;
  369. clocks = <&gcc GSBI2_H_CLK>;
  370. clock-names = "iface";
  371. #address-cells = <1>;
  372. #size-cells = <1>;
  373. ranges;
  374. syscon-tcsr = <&tcsr>;
  375. gsbi2_i2c: i2c@124a0000 {
  376. compatible = "qcom,i2c-qup-v1.1.1";
  377. reg = <0x124a0000 0x1000>;
  378. pinctrl-0 = <&i2c2_pins>;
  379. pinctrl-1 = <&i2c2_pins_sleep>;
  380. pinctrl-names = "default", "sleep";
  381. interrupts = <0 196 IRQ_TYPE_NONE>;
  382. clocks = <&gcc GSBI2_QUP_CLK>, <&gcc GSBI2_H_CLK>;
  383. clock-names = "core", "iface";
  384. #address-cells = <1>;
  385. #size-cells = <0>;
  386. };
  387. };
  388. gsbi3: gsbi@16200000 {
  389. status = "disabled";
  390. compatible = "qcom,gsbi-v1.0.0";
  391. cell-index = <3>;
  392. reg = <0x16200000 0x100>;
  393. clocks = <&gcc GSBI3_H_CLK>;
  394. clock-names = "iface";
  395. #address-cells = <1>;
  396. #size-cells = <1>;
  397. ranges;
  398. gsbi3_i2c: i2c@16280000 {
  399. compatible = "qcom,i2c-qup-v1.1.1";
  400. pinctrl-0 = <&i2c3_pins>;
  401. pinctrl-1 = <&i2c3_pins_sleep>;
  402. pinctrl-names = "default", "sleep";
  403. reg = <0x16280000 0x1000>;
  404. interrupts = <GIC_SPI 151 IRQ_TYPE_NONE>;
  405. clocks = <&gcc GSBI3_QUP_CLK>,
  406. <&gcc GSBI3_H_CLK>;
  407. clock-names = "core", "iface";
  408. #address-cells = <1>;
  409. #size-cells = <0>;
  410. };
  411. };
  412. gsbi4: gsbi@16300000 {
  413. status = "disabled";
  414. compatible = "qcom,gsbi-v1.0.0";
  415. cell-index = <4>;
  416. reg = <0x16300000 0x03>;
  417. clocks = <&gcc GSBI4_H_CLK>;
  418. clock-names = "iface";
  419. #address-cells = <1>;
  420. #size-cells = <1>;
  421. ranges;
  422. gsbi4_i2c: i2c@16380000 {
  423. compatible = "qcom,i2c-qup-v1.1.1";
  424. pinctrl-0 = <&i2c4_pins>;
  425. pinctrl-1 = <&i2c4_pins_sleep>;
  426. pinctrl-names = "default", "sleep";
  427. reg = <0x16380000 0x1000>;
  428. interrupts = <GIC_SPI 153 IRQ_TYPE_NONE>;
  429. clocks = <&gcc GSBI4_QUP_CLK>,
  430. <&gcc GSBI4_H_CLK>;
  431. clock-names = "core", "iface";
  432. };
  433. };
  434. gsbi5: gsbi@1a200000 {
  435. status = "disabled";
  436. compatible = "qcom,gsbi-v1.0.0";
  437. cell-index = <5>;
  438. reg = <0x1a200000 0x03>;
  439. clocks = <&gcc GSBI5_H_CLK>;
  440. clock-names = "iface";
  441. #address-cells = <1>;
  442. #size-cells = <1>;
  443. ranges;
  444. gsbi5_serial: serial@1a240000 {
  445. compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
  446. reg = <0x1a240000 0x100>,
  447. <0x1a200000 0x03>;
  448. interrupts = <0 154 0x0>;
  449. clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>;
  450. clock-names = "core", "iface";
  451. status = "disabled";
  452. };
  453. gsbi5_spi: spi@1a280000 {
  454. compatible = "qcom,spi-qup-v1.1.1";
  455. reg = <0x1a280000 0x1000>;
  456. interrupts = <0 155 0>;
  457. pinctrl-0 = <&spi5_default>;
  458. pinctrl-1 = <&spi5_sleep>;
  459. pinctrl-names = "default", "sleep";
  460. clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
  461. clock-names = "core", "iface";
  462. status = "disabled";
  463. #address-cells = <1>;
  464. #size-cells = <0>;
  465. };
  466. };
  467. gsbi6: gsbi@16500000 {
  468. status = "disabled";
  469. compatible = "qcom,gsbi-v1.0.0";
  470. cell-index = <6>;
  471. reg = <0x16500000 0x03>;
  472. clocks = <&gcc GSBI6_H_CLK>;
  473. clock-names = "iface";
  474. #address-cells = <1>;
  475. #size-cells = <1>;
  476. ranges;
  477. gsbi6_serial: serial@16540000 {
  478. compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
  479. reg = <0x16540000 0x100>,
  480. <0x16500000 0x03>;
  481. interrupts = <0 156 0x0>;
  482. clocks = <&gcc GSBI6_UART_CLK>, <&gcc GSBI6_H_CLK>;
  483. clock-names = "core", "iface";
  484. status = "disabled";
  485. };
  486. gsbi6_i2c: i2c@16580000 {
  487. compatible = "qcom,i2c-qup-v1.1.1";
  488. pinctrl-0 = <&i2c6_pins>;
  489. pinctrl-1 = <&i2c6_pins_sleep>;
  490. pinctrl-names = "default", "sleep";
  491. reg = <0x16580000 0x1000>;
  492. interrupts = <GIC_SPI 157 IRQ_TYPE_NONE>;
  493. clocks = <&gcc GSBI6_QUP_CLK>,
  494. <&gcc GSBI6_H_CLK>;
  495. clock-names = "core", "iface";
  496. };
  497. };
  498. gsbi7: gsbi@16600000 {
  499. status = "disabled";
  500. compatible = "qcom,gsbi-v1.0.0";
  501. cell-index = <7>;
  502. reg = <0x16600000 0x100>;
  503. clocks = <&gcc GSBI7_H_CLK>;
  504. clock-names = "iface";
  505. #address-cells = <1>;
  506. #size-cells = <1>;
  507. ranges;
  508. syscon-tcsr = <&tcsr>;
  509. gsbi7_serial: serial@16640000 {
  510. compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
  511. reg = <0x16640000 0x1000>,
  512. <0x16600000 0x1000>;
  513. interrupts = <0 158 0x0>;
  514. clocks = <&gcc GSBI7_UART_CLK>, <&gcc GSBI7_H_CLK>;
  515. clock-names = "core", "iface";
  516. status = "disabled";
  517. };
  518. gsbi7_i2c: i2c@16680000 {
  519. compatible = "qcom,i2c-qup-v1.1.1";
  520. pinctrl-0 = <&i2c7_pins>;
  521. pinctrl-1 = <&i2c7_pins_sleep>;
  522. pinctrl-names = "default", "sleep";
  523. reg = <0x16680000 0x1000>;
  524. interrupts = <GIC_SPI 159 IRQ_TYPE_NONE>;
  525. clocks = <&gcc GSBI7_QUP_CLK>,
  526. <&gcc GSBI7_H_CLK>;
  527. clock-names = "core", "iface";
  528. status = "disabled";
  529. };
  530. };
  531. rng@1a500000 {
  532. compatible = "qcom,prng";
  533. reg = <0x1a500000 0x200>;
  534. clocks = <&gcc PRNG_CLK>;
  535. clock-names = "core";
  536. };
  537. qcom,ssbi@500000 {
  538. compatible = "qcom,ssbi";
  539. reg = <0x00500000 0x1000>;
  540. qcom,controller-type = "pmic-arbiter";
  541. pmicintc: pmic@0 {
  542. compatible = "qcom,pm8921";
  543. interrupt-parent = <&tlmm_pinmux>;
  544. interrupts = <74 8>;
  545. #interrupt-cells = <2>;
  546. interrupt-controller;
  547. #address-cells = <1>;
  548. #size-cells = <0>;
  549. pm8921_gpio: gpio@150 {
  550. compatible = "qcom,pm8921-gpio",
  551. "qcom,ssbi-gpio";
  552. reg = <0x150>;
  553. interrupts = <192 IRQ_TYPE_NONE>,
  554. <193 IRQ_TYPE_NONE>,
  555. <194 IRQ_TYPE_NONE>,
  556. <195 IRQ_TYPE_NONE>,
  557. <196 IRQ_TYPE_NONE>,
  558. <197 IRQ_TYPE_NONE>,
  559. <198 IRQ_TYPE_NONE>,
  560. <199 IRQ_TYPE_NONE>,
  561. <200 IRQ_TYPE_NONE>,
  562. <201 IRQ_TYPE_NONE>,
  563. <202 IRQ_TYPE_NONE>,
  564. <203 IRQ_TYPE_NONE>,
  565. <204 IRQ_TYPE_NONE>,
  566. <205 IRQ_TYPE_NONE>,
  567. <206 IRQ_TYPE_NONE>,
  568. <207 IRQ_TYPE_NONE>,
  569. <208 IRQ_TYPE_NONE>,
  570. <209 IRQ_TYPE_NONE>,
  571. <210 IRQ_TYPE_NONE>,
  572. <211 IRQ_TYPE_NONE>,
  573. <212 IRQ_TYPE_NONE>,
  574. <213 IRQ_TYPE_NONE>,
  575. <214 IRQ_TYPE_NONE>,
  576. <215 IRQ_TYPE_NONE>,
  577. <216 IRQ_TYPE_NONE>,
  578. <217 IRQ_TYPE_NONE>,
  579. <218 IRQ_TYPE_NONE>,
  580. <219 IRQ_TYPE_NONE>,
  581. <220 IRQ_TYPE_NONE>,
  582. <221 IRQ_TYPE_NONE>,
  583. <222 IRQ_TYPE_NONE>,
  584. <223 IRQ_TYPE_NONE>,
  585. <224 IRQ_TYPE_NONE>,
  586. <225 IRQ_TYPE_NONE>,
  587. <226 IRQ_TYPE_NONE>,
  588. <227 IRQ_TYPE_NONE>,
  589. <228 IRQ_TYPE_NONE>,
  590. <229 IRQ_TYPE_NONE>,
  591. <230 IRQ_TYPE_NONE>,
  592. <231 IRQ_TYPE_NONE>,
  593. <232 IRQ_TYPE_NONE>,
  594. <233 IRQ_TYPE_NONE>,
  595. <234 IRQ_TYPE_NONE>,
  596. <235 IRQ_TYPE_NONE>;
  597. gpio-controller;
  598. #gpio-cells = <2>;
  599. };
  600. pm8921_mpps: mpps@50 {
  601. compatible = "qcom,pm8921-mpp",
  602. "qcom,ssbi-mpp";
  603. reg = <0x50>;
  604. gpio-controller;
  605. #gpio-cells = <2>;
  606. interrupts =
  607. <128 IRQ_TYPE_NONE>,
  608. <129 IRQ_TYPE_NONE>,
  609. <130 IRQ_TYPE_NONE>,
  610. <131 IRQ_TYPE_NONE>,
  611. <132 IRQ_TYPE_NONE>,
  612. <133 IRQ_TYPE_NONE>,
  613. <134 IRQ_TYPE_NONE>,
  614. <135 IRQ_TYPE_NONE>,
  615. <136 IRQ_TYPE_NONE>,
  616. <137 IRQ_TYPE_NONE>,
  617. <138 IRQ_TYPE_NONE>,
  618. <139 IRQ_TYPE_NONE>;
  619. };
  620. rtc@11d {
  621. compatible = "qcom,pm8921-rtc";
  622. interrupt-parent = <&pmicintc>;
  623. interrupts = <39 1>;
  624. reg = <0x11d>;
  625. allow-set-time;
  626. };
  627. pwrkey@1c {
  628. compatible = "qcom,pm8921-pwrkey";
  629. reg = <0x1c>;
  630. interrupt-parent = <&pmicintc>;
  631. interrupts = <50 1>, <51 1>;
  632. debounce = <15625>;
  633. pull-up;
  634. };
  635. };
  636. };
  637. qfprom: qfprom@700000 {
  638. compatible = "qcom,qfprom";
  639. reg = <0x00700000 0x1000>;
  640. #address-cells = <1>;
  641. #size-cells = <1>;
  642. ranges;
  643. tsens_calib: calib {
  644. reg = <0x404 0x10>;
  645. };
  646. tsens_backup: backup_calib {
  647. reg = <0x414 0x10>;
  648. };
  649. };
  650. gcc: clock-controller@900000 {
  651. compatible = "qcom,gcc-apq8064";
  652. reg = <0x00900000 0x4000>;
  653. nvmem-cells = <&tsens_calib>, <&tsens_backup>;
  654. nvmem-cell-names = "calib", "calib_backup";
  655. #clock-cells = <1>;
  656. #reset-cells = <1>;
  657. #thermal-sensor-cells = <1>;
  658. };
  659. lcc: clock-controller@28000000 {
  660. compatible = "qcom,lcc-apq8064";
  661. reg = <0x28000000 0x1000>;
  662. #clock-cells = <1>;
  663. #reset-cells = <1>;
  664. };
  665. mmcc: clock-controller@4000000 {
  666. compatible = "qcom,mmcc-apq8064";
  667. reg = <0x4000000 0x1000>;
  668. #clock-cells = <1>;
  669. #reset-cells = <1>;
  670. };
  671. l2cc: clock-controller@2011000 {
  672. compatible = "syscon";
  673. reg = <0x2011000 0x1000>;
  674. };
  675. rpm@108000 {
  676. compatible = "qcom,rpm-apq8064";
  677. reg = <0x108000 0x1000>;
  678. qcom,ipc = <&l2cc 0x8 2>;
  679. interrupts = <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
  680. <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
  681. <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
  682. interrupt-names = "ack", "err", "wakeup";
  683. rpmcc: clock-controller {
  684. compatible = "qcom,rpmcc-apq8064", "qcom,rpmcc";
  685. #clock-cells = <1>;
  686. };
  687. regulators {
  688. compatible = "qcom,rpm-pm8921-regulators";
  689. pm8921_s1: s1 {};
  690. pm8921_s2: s2 {};
  691. pm8921_s3: s3 {};
  692. pm8921_s4: s4 {};
  693. pm8921_s7: s7 {};
  694. pm8921_s8: s8 {};
  695. pm8921_l1: l1 {};
  696. pm8921_l2: l2 {};
  697. pm8921_l3: l3 {};
  698. pm8921_l4: l4 {};
  699. pm8921_l5: l5 {};
  700. pm8921_l6: l6 {};
  701. pm8921_l7: l7 {};
  702. pm8921_l8: l8 {};
  703. pm8921_l9: l9 {};
  704. pm8921_l10: l10 {};
  705. pm8921_l11: l11 {};
  706. pm8921_l12: l12 {};
  707. pm8921_l14: l14 {};
  708. pm8921_l15: l15 {};
  709. pm8921_l16: l16 {};
  710. pm8921_l17: l17 {};
  711. pm8921_l18: l18 {};
  712. pm8921_l21: l21 {};
  713. pm8921_l22: l22 {};
  714. pm8921_l23: l23 {};
  715. pm8921_l24: l24 {};
  716. pm8921_l25: l25 {};
  717. pm8921_l26: l26 {};
  718. pm8921_l27: l27 {};
  719. pm8921_l28: l28 {};
  720. pm8921_l29: l29 {};
  721. pm8921_lvs1: lvs1 {};
  722. pm8921_lvs2: lvs2 {};
  723. pm8921_lvs3: lvs3 {};
  724. pm8921_lvs4: lvs4 {};
  725. pm8921_lvs5: lvs5 {};
  726. pm8921_lvs6: lvs6 {};
  727. pm8921_lvs7: lvs7 {};
  728. pm8921_usb_switch: usb-switch {};
  729. pm8921_hdmi_switch: hdmi-switch {
  730. bias-pull-down;
  731. };
  732. pm8921_ncp: ncp {};
  733. };
  734. };
  735. usb1_phy: phy@12500000 {
  736. compatible = "qcom,usb-otg-ci";
  737. reg = <0x12500000 0x400>;
  738. interrupts = <GIC_SPI 100 IRQ_TYPE_NONE>;
  739. status = "disabled";
  740. clocks = <&gcc USB_HS1_XCVR_CLK>,
  741. <&gcc USB_HS1_H_CLK>;
  742. clock-names = "core", "iface";
  743. resets = <&gcc USB_HS1_RESET>;
  744. reset-names = "link";
  745. };
  746. usb3_phy: phy@12520000 {
  747. compatible = "qcom,usb-otg-ci";
  748. reg = <0x12520000 0x400>;
  749. interrupts = <GIC_SPI 188 IRQ_TYPE_NONE>;
  750. status = "disabled";
  751. dr_mode = "host";
  752. clocks = <&gcc USB_HS3_XCVR_CLK>,
  753. <&gcc USB_HS3_H_CLK>;
  754. clock-names = "core", "iface";
  755. resets = <&gcc USB_HS3_RESET>;
  756. reset-names = "link";
  757. };
  758. usb4_phy: phy@12530000 {
  759. compatible = "qcom,usb-otg-ci";
  760. reg = <0x12530000 0x400>;
  761. interrupts = <GIC_SPI 215 IRQ_TYPE_NONE>;
  762. status = "disabled";
  763. dr_mode = "host";
  764. clocks = <&gcc USB_HS4_XCVR_CLK>,
  765. <&gcc USB_HS4_H_CLK>;
  766. clock-names = "core", "iface";
  767. resets = <&gcc USB_HS4_RESET>;
  768. reset-names = "link";
  769. };
  770. gadget1: gadget@12500000 {
  771. compatible = "qcom,ci-hdrc";
  772. reg = <0x12500000 0x400>;
  773. status = "disabled";
  774. dr_mode = "peripheral";
  775. interrupts = <GIC_SPI 100 IRQ_TYPE_NONE>;
  776. usb-phy = <&usb1_phy>;
  777. };
  778. usb1: usb@12500000 {
  779. compatible = "qcom,ehci-host";
  780. reg = <0x12500000 0x400>;
  781. interrupts = <GIC_SPI 100 IRQ_TYPE_NONE>;
  782. status = "disabled";
  783. usb-phy = <&usb1_phy>;
  784. };
  785. usb3: usb@12520000 {
  786. compatible = "qcom,ehci-host";
  787. reg = <0x12520000 0x400>;
  788. interrupts = <GIC_SPI 188 IRQ_TYPE_NONE>;
  789. status = "disabled";
  790. usb-phy = <&usb3_phy>;
  791. };
  792. usb4: usb@12530000 {
  793. compatible = "qcom,ehci-host";
  794. reg = <0x12530000 0x400>;
  795. interrupts = <GIC_SPI 215 IRQ_TYPE_NONE>;
  796. status = "disabled";
  797. usb-phy = <&usb4_phy>;
  798. };
  799. sata_phy0: phy@1b400000 {
  800. compatible = "qcom,apq8064-sata-phy";
  801. status = "disabled";
  802. reg = <0x1b400000 0x200>;
  803. reg-names = "phy_mem";
  804. clocks = <&gcc SATA_PHY_CFG_CLK>;
  805. clock-names = "cfg";
  806. #phy-cells = <0>;
  807. };
  808. sata0: sata@29000000 {
  809. compatible = "qcom,apq8064-ahci", "generic-ahci";
  810. status = "disabled";
  811. reg = <0x29000000 0x180>;
  812. interrupts = <GIC_SPI 209 IRQ_TYPE_NONE>;
  813. clocks = <&gcc SFAB_SATA_S_H_CLK>,
  814. <&gcc SATA_H_CLK>,
  815. <&gcc SATA_A_CLK>,
  816. <&gcc SATA_RXOOB_CLK>,
  817. <&gcc SATA_PMALIVE_CLK>;
  818. clock-names = "slave_iface",
  819. "iface",
  820. "bus",
  821. "rxoob",
  822. "core_pmalive";
  823. assigned-clocks = <&gcc SATA_RXOOB_CLK>,
  824. <&gcc SATA_PMALIVE_CLK>;
  825. assigned-clock-rates = <100000000>, <100000000>;
  826. phys = <&sata_phy0>;
  827. phy-names = "sata-phy";
  828. ports-implemented = <0x1>;
  829. };
  830. /* Temporary fixed regulator */
  831. sdcc1bam:dma@12402000{
  832. compatible = "qcom,bam-v1.3.0";
  833. reg = <0x12402000 0x8000>;
  834. interrupts = <0 98 0>;
  835. clocks = <&gcc SDC1_H_CLK>;
  836. clock-names = "bam_clk";
  837. #dma-cells = <1>;
  838. qcom,ee = <0>;
  839. };
  840. sdcc3bam:dma@12182000{
  841. compatible = "qcom,bam-v1.3.0";
  842. reg = <0x12182000 0x8000>;
  843. interrupts = <0 96 0>;
  844. clocks = <&gcc SDC3_H_CLK>;
  845. clock-names = "bam_clk";
  846. #dma-cells = <1>;
  847. qcom,ee = <0>;
  848. };
  849. sdcc4bam:dma@121c2000{
  850. compatible = "qcom,bam-v1.3.0";
  851. reg = <0x121c2000 0x8000>;
  852. interrupts = <0 95 0>;
  853. clocks = <&gcc SDC4_H_CLK>;
  854. clock-names = "bam_clk";
  855. #dma-cells = <1>;
  856. qcom,ee = <0>;
  857. };
  858. amba {
  859. compatible = "simple-bus";
  860. #address-cells = <1>;
  861. #size-cells = <1>;
  862. ranges;
  863. sdcc1: sdcc@12400000 {
  864. status = "disabled";
  865. compatible = "arm,pl18x", "arm,primecell";
  866. pinctrl-names = "default";
  867. pinctrl-0 = <&sdcc1_pins>;
  868. arm,primecell-periphid = <0x00051180>;
  869. reg = <0x12400000 0x2000>;
  870. interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
  871. interrupt-names = "cmd_irq";
  872. clocks = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>;
  873. clock-names = "mclk", "apb_pclk";
  874. bus-width = <8>;
  875. max-frequency = <96000000>;
  876. non-removable;
  877. cap-sd-highspeed;
  878. cap-mmc-highspeed;
  879. dmas = <&sdcc1bam 2>, <&sdcc1bam 1>;
  880. dma-names = "tx", "rx";
  881. };
  882. sdcc3: sdcc@12180000 {
  883. compatible = "arm,pl18x", "arm,primecell";
  884. arm,primecell-periphid = <0x00051180>;
  885. status = "disabled";
  886. reg = <0x12180000 0x2000>;
  887. interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
  888. interrupt-names = "cmd_irq";
  889. clocks = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>;
  890. clock-names = "mclk", "apb_pclk";
  891. bus-width = <4>;
  892. cap-sd-highspeed;
  893. cap-mmc-highspeed;
  894. max-frequency = <192000000>;
  895. no-1-8-v;
  896. dmas = <&sdcc3bam 2>, <&sdcc3bam 1>;
  897. dma-names = "tx", "rx";
  898. };
  899. sdcc4: sdcc@121c0000 {
  900. compatible = "arm,pl18x", "arm,primecell";
  901. arm,primecell-periphid = <0x00051180>;
  902. status = "disabled";
  903. reg = <0x121c0000 0x2000>;
  904. interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
  905. interrupt-names = "cmd_irq";
  906. clocks = <&gcc SDC4_CLK>, <&gcc SDC4_H_CLK>;
  907. clock-names = "mclk", "apb_pclk";
  908. bus-width = <4>;
  909. cap-sd-highspeed;
  910. cap-mmc-highspeed;
  911. max-frequency = <48000000>;
  912. dmas = <&sdcc4bam 2>, <&sdcc4bam 1>;
  913. dma-names = "tx", "rx";
  914. pinctrl-names = "default";
  915. pinctrl-0 = <&sdc4_gpios>;
  916. };
  917. };
  918. tcsr: syscon@1a400000 {
  919. compatible = "qcom,tcsr-apq8064", "syscon";
  920. reg = <0x1a400000 0x100>;
  921. };
  922. pcie: pci@1b500000 {
  923. compatible = "qcom,pcie-apq8064", "snps,dw-pcie";
  924. reg = <0x1b500000 0x1000
  925. 0x1b502000 0x80
  926. 0x1b600000 0x100
  927. 0x0ff00000 0x100000>;
  928. reg-names = "dbi", "elbi", "parf", "config";
  929. device_type = "pci";
  930. linux,pci-domain = <0>;
  931. bus-range = <0x00 0xff>;
  932. num-lanes = <1>;
  933. #address-cells = <3>;
  934. #size-cells = <2>;
  935. ranges = <0x81000000 0 0 0x0fe00000 0 0x00100000 /* I/O */
  936. 0x82000000 0 0 0x08000000 0 0x07e00000>; /* memory */
  937. interrupts = <GIC_SPI 238 IRQ_TYPE_NONE>;
  938. interrupt-names = "msi";
  939. #interrupt-cells = <1>;
  940. interrupt-map-mask = <0 0 0 0x7>;
  941. interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
  942. <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
  943. <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
  944. <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
  945. clocks = <&gcc PCIE_A_CLK>,
  946. <&gcc PCIE_H_CLK>,
  947. <&gcc PCIE_PHY_REF_CLK>;
  948. clock-names = "core", "iface", "phy";
  949. resets = <&gcc PCIE_ACLK_RESET>,
  950. <&gcc PCIE_HCLK_RESET>,
  951. <&gcc PCIE_POR_RESET>,
  952. <&gcc PCIE_PCI_RESET>,
  953. <&gcc PCIE_PHY_RESET>;
  954. reset-names = "axi", "ahb", "por", "pci", "phy";
  955. status = "disabled";
  956. };
  957. };
  958. };
  959. #include "qcom-apq8064-pins.dtsi"