tegra30.dtsi 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580
  1. /include/ "skeleton.dtsi"
  2. / {
  3. compatible = "nvidia,tegra30";
  4. interrupt-parent = <&intc>;
  5. aliases {
  6. serial0 = &uarta;
  7. serial1 = &uartb;
  8. serial2 = &uartc;
  9. serial3 = &uartd;
  10. serial4 = &uarte;
  11. };
  12. host1x {
  13. compatible = "nvidia,tegra30-host1x", "simple-bus";
  14. reg = <0x50000000 0x00024000>;
  15. interrupts = <0 65 0x04 /* mpcore syncpt */
  16. 0 67 0x04>; /* mpcore general */
  17. clocks = <&tegra_car 28>;
  18. #address-cells = <1>;
  19. #size-cells = <1>;
  20. ranges = <0x54000000 0x54000000 0x04000000>;
  21. mpe {
  22. compatible = "nvidia,tegra30-mpe";
  23. reg = <0x54040000 0x00040000>;
  24. interrupts = <0 68 0x04>;
  25. clocks = <&tegra_car 60>;
  26. };
  27. vi {
  28. compatible = "nvidia,tegra30-vi";
  29. reg = <0x54080000 0x00040000>;
  30. interrupts = <0 69 0x04>;
  31. clocks = <&tegra_car 164>;
  32. };
  33. epp {
  34. compatible = "nvidia,tegra30-epp";
  35. reg = <0x540c0000 0x00040000>;
  36. interrupts = <0 70 0x04>;
  37. clocks = <&tegra_car 19>;
  38. };
  39. isp {
  40. compatible = "nvidia,tegra30-isp";
  41. reg = <0x54100000 0x00040000>;
  42. interrupts = <0 71 0x04>;
  43. clocks = <&tegra_car 23>;
  44. };
  45. gr2d {
  46. compatible = "nvidia,tegra30-gr2d";
  47. reg = <0x54140000 0x00040000>;
  48. interrupts = <0 72 0x04>;
  49. clocks = <&tegra_car 21>;
  50. };
  51. gr3d {
  52. compatible = "nvidia,tegra30-gr3d";
  53. reg = <0x54180000 0x00040000>;
  54. clocks = <&tegra_car 24 &tegra_car 98>;
  55. clock-names = "3d", "3d2";
  56. };
  57. dc@54200000 {
  58. compatible = "nvidia,tegra30-dc";
  59. reg = <0x54200000 0x00040000>;
  60. interrupts = <0 73 0x04>;
  61. clocks = <&tegra_car 27>, <&tegra_car 179>;
  62. clock-names = "disp1", "parent";
  63. rgb {
  64. status = "disabled";
  65. };
  66. };
  67. dc@54240000 {
  68. compatible = "nvidia,tegra30-dc";
  69. reg = <0x54240000 0x00040000>;
  70. interrupts = <0 74 0x04>;
  71. clocks = <&tegra_car 26>, <&tegra_car 179>;
  72. clock-names = "disp2", "parent";
  73. rgb {
  74. status = "disabled";
  75. };
  76. };
  77. hdmi {
  78. compatible = "nvidia,tegra30-hdmi";
  79. reg = <0x54280000 0x00040000>;
  80. interrupts = <0 75 0x04>;
  81. clocks = <&tegra_car 51>, <&tegra_car 189>;
  82. clock-names = "hdmi", "parent";
  83. status = "disabled";
  84. };
  85. tvo {
  86. compatible = "nvidia,tegra30-tvo";
  87. reg = <0x542c0000 0x00040000>;
  88. interrupts = <0 76 0x04>;
  89. clocks = <&tegra_car 169>;
  90. status = "disabled";
  91. };
  92. dsi {
  93. compatible = "nvidia,tegra30-dsi";
  94. reg = <0x54300000 0x00040000>;
  95. clocks = <&tegra_car 48>;
  96. status = "disabled";
  97. };
  98. };
  99. timer@50004600 {
  100. compatible = "arm,cortex-a9-twd-timer";
  101. reg = <0x50040600 0x20>;
  102. interrupts = <1 13 0xf04>;
  103. clocks = <&tegra_car 214>;
  104. };
  105. intc: interrupt-controller {
  106. compatible = "arm,cortex-a9-gic";
  107. reg = <0x50041000 0x1000
  108. 0x50040100 0x0100>;
  109. interrupt-controller;
  110. #interrupt-cells = <3>;
  111. };
  112. cache-controller {
  113. compatible = "arm,pl310-cache";
  114. reg = <0x50043000 0x1000>;
  115. arm,data-latency = <6 6 2>;
  116. arm,tag-latency = <5 5 2>;
  117. cache-unified;
  118. cache-level = <2>;
  119. };
  120. timer@60005000 {
  121. compatible = "nvidia,tegra30-timer", "nvidia,tegra20-timer";
  122. reg = <0x60005000 0x400>;
  123. interrupts = <0 0 0x04
  124. 0 1 0x04
  125. 0 41 0x04
  126. 0 42 0x04
  127. 0 121 0x04
  128. 0 122 0x04>;
  129. clocks = <&tegra_car 5>;
  130. };
  131. tegra_car: clock {
  132. compatible = "nvidia,tegra30-car";
  133. reg = <0x60006000 0x1000>;
  134. #clock-cells = <1>;
  135. };
  136. apbdma: dma {
  137. compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-apbdma";
  138. reg = <0x6000a000 0x1400>;
  139. interrupts = <0 104 0x04
  140. 0 105 0x04
  141. 0 106 0x04
  142. 0 107 0x04
  143. 0 108 0x04
  144. 0 109 0x04
  145. 0 110 0x04
  146. 0 111 0x04
  147. 0 112 0x04
  148. 0 113 0x04
  149. 0 114 0x04
  150. 0 115 0x04
  151. 0 116 0x04
  152. 0 117 0x04
  153. 0 118 0x04
  154. 0 119 0x04
  155. 0 128 0x04
  156. 0 129 0x04
  157. 0 130 0x04
  158. 0 131 0x04
  159. 0 132 0x04
  160. 0 133 0x04
  161. 0 134 0x04
  162. 0 135 0x04
  163. 0 136 0x04
  164. 0 137 0x04
  165. 0 138 0x04
  166. 0 139 0x04
  167. 0 140 0x04
  168. 0 141 0x04
  169. 0 142 0x04
  170. 0 143 0x04>;
  171. clocks = <&tegra_car 34>;
  172. };
  173. ahb: ahb {
  174. compatible = "nvidia,tegra30-ahb";
  175. reg = <0x6000c004 0x14c>; /* AHB Arbitration + Gizmo Controller */
  176. };
  177. gpio: gpio {
  178. compatible = "nvidia,tegra30-gpio";
  179. reg = <0x6000d000 0x1000>;
  180. interrupts = <0 32 0x04
  181. 0 33 0x04
  182. 0 34 0x04
  183. 0 35 0x04
  184. 0 55 0x04
  185. 0 87 0x04
  186. 0 89 0x04
  187. 0 125 0x04>;
  188. #gpio-cells = <2>;
  189. gpio-controller;
  190. #interrupt-cells = <2>;
  191. interrupt-controller;
  192. };
  193. pinmux: pinmux {
  194. compatible = "nvidia,tegra30-pinmux";
  195. reg = <0x70000868 0xd4 /* Pad control registers */
  196. 0x70003000 0x3e4>; /* Mux registers */
  197. };
  198. /*
  199. * There are two serial driver i.e. 8250 based simple serial
  200. * driver and APB DMA based serial driver for higher baudrate
  201. * and performace. To enable the 8250 based driver, the compatible
  202. * is "nvidia,tegra30-uart", "nvidia,tegra20-uart" and to enable
  203. * the APB DMA based serial driver, the comptible is
  204. * "nvidia,tegra30-hsuart", "nvidia,tegra20-hsuart".
  205. */
  206. uarta: serial@70006000 {
  207. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  208. reg = <0x70006000 0x40>;
  209. reg-shift = <2>;
  210. interrupts = <0 36 0x04>;
  211. nvidia,dma-request-selector = <&apbdma 8>;
  212. clocks = <&tegra_car 6>;
  213. status = "disabled";
  214. };
  215. uartb: serial@70006040 {
  216. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  217. reg = <0x70006040 0x40>;
  218. reg-shift = <2>;
  219. interrupts = <0 37 0x04>;
  220. nvidia,dma-request-selector = <&apbdma 9>;
  221. clocks = <&tegra_car 160>;
  222. status = "disabled";
  223. };
  224. uartc: serial@70006200 {
  225. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  226. reg = <0x70006200 0x100>;
  227. reg-shift = <2>;
  228. interrupts = <0 46 0x04>;
  229. nvidia,dma-request-selector = <&apbdma 10>;
  230. clocks = <&tegra_car 55>;
  231. status = "disabled";
  232. };
  233. uartd: serial@70006300 {
  234. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  235. reg = <0x70006300 0x100>;
  236. reg-shift = <2>;
  237. interrupts = <0 90 0x04>;
  238. nvidia,dma-request-selector = <&apbdma 19>;
  239. clocks = <&tegra_car 65>;
  240. status = "disabled";
  241. };
  242. uarte: serial@70006400 {
  243. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  244. reg = <0x70006400 0x100>;
  245. reg-shift = <2>;
  246. interrupts = <0 91 0x04>;
  247. nvidia,dma-request-selector = <&apbdma 20>;
  248. clocks = <&tegra_car 66>;
  249. status = "disabled";
  250. };
  251. pwm: pwm {
  252. compatible = "nvidia,tegra30-pwm", "nvidia,tegra20-pwm";
  253. reg = <0x7000a000 0x100>;
  254. #pwm-cells = <2>;
  255. clocks = <&tegra_car 17>;
  256. status = "disabled";
  257. };
  258. rtc {
  259. compatible = "nvidia,tegra30-rtc", "nvidia,tegra20-rtc";
  260. reg = <0x7000e000 0x100>;
  261. interrupts = <0 2 0x04>;
  262. clocks = <&tegra_car 4>;
  263. };
  264. i2c@7000c000 {
  265. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  266. reg = <0x7000c000 0x100>;
  267. interrupts = <0 38 0x04>;
  268. #address-cells = <1>;
  269. #size-cells = <0>;
  270. clocks = <&tegra_car 12>, <&tegra_car 182>;
  271. clock-names = "div-clk", "fast-clk";
  272. status = "disabled";
  273. };
  274. i2c@7000c400 {
  275. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  276. reg = <0x7000c400 0x100>;
  277. interrupts = <0 84 0x04>;
  278. #address-cells = <1>;
  279. #size-cells = <0>;
  280. clocks = <&tegra_car 54>, <&tegra_car 182>;
  281. clock-names = "div-clk", "fast-clk";
  282. status = "disabled";
  283. };
  284. i2c@7000c500 {
  285. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  286. reg = <0x7000c500 0x100>;
  287. interrupts = <0 92 0x04>;
  288. #address-cells = <1>;
  289. #size-cells = <0>;
  290. clocks = <&tegra_car 67>, <&tegra_car 182>;
  291. clock-names = "div-clk", "fast-clk";
  292. status = "disabled";
  293. };
  294. i2c@7000c700 {
  295. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  296. reg = <0x7000c700 0x100>;
  297. interrupts = <0 120 0x04>;
  298. #address-cells = <1>;
  299. #size-cells = <0>;
  300. clocks = <&tegra_car 103>, <&tegra_car 182>;
  301. clock-names = "div-clk", "fast-clk";
  302. status = "disabled";
  303. };
  304. i2c@7000d000 {
  305. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  306. reg = <0x7000d000 0x100>;
  307. interrupts = <0 53 0x04>;
  308. #address-cells = <1>;
  309. #size-cells = <0>;
  310. clocks = <&tegra_car 47>, <&tegra_car 182>;
  311. clock-names = "div-clk", "fast-clk";
  312. status = "disabled";
  313. };
  314. spi@7000d400 {
  315. compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
  316. reg = <0x7000d400 0x200>;
  317. interrupts = <0 59 0x04>;
  318. nvidia,dma-request-selector = <&apbdma 15>;
  319. #address-cells = <1>;
  320. #size-cells = <0>;
  321. clocks = <&tegra_car 41>;
  322. status = "disabled";
  323. };
  324. spi@7000d600 {
  325. compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
  326. reg = <0x7000d600 0x200>;
  327. interrupts = <0 82 0x04>;
  328. nvidia,dma-request-selector = <&apbdma 16>;
  329. #address-cells = <1>;
  330. #size-cells = <0>;
  331. clocks = <&tegra_car 44>;
  332. status = "disabled";
  333. };
  334. spi@7000d800 {
  335. compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
  336. reg = <0x7000d800 0x200>;
  337. interrupts = <0 83 0x04>;
  338. nvidia,dma-request-selector = <&apbdma 17>;
  339. #address-cells = <1>;
  340. #size-cells = <0>;
  341. clocks = <&tegra_car 46>;
  342. status = "disabled";
  343. };
  344. spi@7000da00 {
  345. compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
  346. reg = <0x7000da00 0x200>;
  347. interrupts = <0 93 0x04>;
  348. nvidia,dma-request-selector = <&apbdma 18>;
  349. #address-cells = <1>;
  350. #size-cells = <0>;
  351. clocks = <&tegra_car 68>;
  352. status = "disabled";
  353. };
  354. spi@7000dc00 {
  355. compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
  356. reg = <0x7000dc00 0x200>;
  357. interrupts = <0 94 0x04>;
  358. nvidia,dma-request-selector = <&apbdma 27>;
  359. #address-cells = <1>;
  360. #size-cells = <0>;
  361. clocks = <&tegra_car 104>;
  362. status = "disabled";
  363. };
  364. spi@7000de00 {
  365. compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
  366. reg = <0x7000de00 0x200>;
  367. interrupts = <0 79 0x04>;
  368. nvidia,dma-request-selector = <&apbdma 28>;
  369. #address-cells = <1>;
  370. #size-cells = <0>;
  371. clocks = <&tegra_car 105>;
  372. status = "disabled";
  373. };
  374. kbc {
  375. compatible = "nvidia,tegra30-kbc", "nvidia,tegra20-kbc";
  376. reg = <0x7000e200 0x100>;
  377. interrupts = <0 85 0x04>;
  378. clocks = <&tegra_car 36>;
  379. status = "disabled";
  380. };
  381. pmc {
  382. compatible = "nvidia,tegra30-pmc";
  383. reg = <0x7000e400 0x400>;
  384. clocks = <&tegra_car 218>, <&clk32k_in>;
  385. clock-names = "pclk", "clk32k_in";
  386. };
  387. memory-controller {
  388. compatible = "nvidia,tegra30-mc";
  389. reg = <0x7000f000 0x010
  390. 0x7000f03c 0x1b4
  391. 0x7000f200 0x028
  392. 0x7000f284 0x17c>;
  393. interrupts = <0 77 0x04>;
  394. };
  395. iommu {
  396. compatible = "nvidia,tegra30-smmu";
  397. reg = <0x7000f010 0x02c
  398. 0x7000f1f0 0x010
  399. 0x7000f228 0x05c>;
  400. nvidia,#asids = <4>; /* # of ASIDs */
  401. dma-window = <0 0x40000000>; /* IOVA start & length */
  402. nvidia,ahb = <&ahb>;
  403. };
  404. ahub {
  405. compatible = "nvidia,tegra30-ahub";
  406. reg = <0x70080000 0x200
  407. 0x70080200 0x100>;
  408. interrupts = <0 103 0x04>;
  409. nvidia,dma-request-selector = <&apbdma 1>;
  410. clocks = <&tegra_car 106>, <&tegra_car 107>, <&tegra_car 30>,
  411. <&tegra_car 11>, <&tegra_car 18>, <&tegra_car 101>,
  412. <&tegra_car 102>, <&tegra_car 108>, <&tegra_car 109>,
  413. <&tegra_car 110>, <&tegra_car 162>;
  414. clock-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2",
  415. "i2s3", "i2s4", "dam0", "dam1", "dam2",
  416. "spdif_in";
  417. ranges;
  418. #address-cells = <1>;
  419. #size-cells = <1>;
  420. tegra_i2s0: i2s@70080300 {
  421. compatible = "nvidia,tegra30-i2s";
  422. reg = <0x70080300 0x100>;
  423. nvidia,ahub-cif-ids = <4 4>;
  424. clocks = <&tegra_car 30>;
  425. status = "disabled";
  426. };
  427. tegra_i2s1: i2s@70080400 {
  428. compatible = "nvidia,tegra30-i2s";
  429. reg = <0x70080400 0x100>;
  430. nvidia,ahub-cif-ids = <5 5>;
  431. clocks = <&tegra_car 11>;
  432. status = "disabled";
  433. };
  434. tegra_i2s2: i2s@70080500 {
  435. compatible = "nvidia,tegra30-i2s";
  436. reg = <0x70080500 0x100>;
  437. nvidia,ahub-cif-ids = <6 6>;
  438. clocks = <&tegra_car 18>;
  439. status = "disabled";
  440. };
  441. tegra_i2s3: i2s@70080600 {
  442. compatible = "nvidia,tegra30-i2s";
  443. reg = <0x70080600 0x100>;
  444. nvidia,ahub-cif-ids = <7 7>;
  445. clocks = <&tegra_car 101>;
  446. status = "disabled";
  447. };
  448. tegra_i2s4: i2s@70080700 {
  449. compatible = "nvidia,tegra30-i2s";
  450. reg = <0x70080700 0x100>;
  451. nvidia,ahub-cif-ids = <8 8>;
  452. clocks = <&tegra_car 102>;
  453. status = "disabled";
  454. };
  455. };
  456. sdhci@78000000 {
  457. compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
  458. reg = <0x78000000 0x200>;
  459. interrupts = <0 14 0x04>;
  460. clocks = <&tegra_car 14>;
  461. status = "disabled";
  462. };
  463. sdhci@78000200 {
  464. compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
  465. reg = <0x78000200 0x200>;
  466. interrupts = <0 15 0x04>;
  467. clocks = <&tegra_car 9>;
  468. status = "disabled";
  469. };
  470. sdhci@78000400 {
  471. compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
  472. reg = <0x78000400 0x200>;
  473. interrupts = <0 19 0x04>;
  474. clocks = <&tegra_car 69>;
  475. status = "disabled";
  476. };
  477. sdhci@78000600 {
  478. compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
  479. reg = <0x78000600 0x200>;
  480. interrupts = <0 31 0x04>;
  481. clocks = <&tegra_car 15>;
  482. status = "disabled";
  483. };
  484. cpus {
  485. #address-cells = <1>;
  486. #size-cells = <0>;
  487. cpu@0 {
  488. device_type = "cpu";
  489. compatible = "arm,cortex-a9";
  490. reg = <0>;
  491. };
  492. cpu@1 {
  493. device_type = "cpu";
  494. compatible = "arm,cortex-a9";
  495. reg = <1>;
  496. };
  497. cpu@2 {
  498. device_type = "cpu";
  499. compatible = "arm,cortex-a9";
  500. reg = <2>;
  501. };
  502. cpu@3 {
  503. device_type = "cpu";
  504. compatible = "arm,cortex-a9";
  505. reg = <3>;
  506. };
  507. };
  508. pmu {
  509. compatible = "arm,cortex-a9-pmu";
  510. interrupts = <0 144 0x04
  511. 0 145 0x04
  512. 0 146 0x04
  513. 0 147 0x04>;
  514. };
  515. };