tegra30.dtsi 13 KB

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