tegra20.dtsi 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557
  1. /include/ "skeleton.dtsi"
  2. / {
  3. compatible = "nvidia,tegra20";
  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,tegra20-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,tegra20-mpe";
  23. reg = <0x54040000 0x00040000>;
  24. interrupts = <0 68 0x04>;
  25. clocks = <&tegra_car 60>;
  26. };
  27. vi {
  28. compatible = "nvidia,tegra20-vi";
  29. reg = <0x54080000 0x00040000>;
  30. interrupts = <0 69 0x04>;
  31. clocks = <&tegra_car 100>;
  32. };
  33. epp {
  34. compatible = "nvidia,tegra20-epp";
  35. reg = <0x540c0000 0x00040000>;
  36. interrupts = <0 70 0x04>;
  37. clocks = <&tegra_car 19>;
  38. };
  39. isp {
  40. compatible = "nvidia,tegra20-isp";
  41. reg = <0x54100000 0x00040000>;
  42. interrupts = <0 71 0x04>;
  43. clocks = <&tegra_car 23>;
  44. };
  45. gr2d {
  46. compatible = "nvidia,tegra20-gr2d";
  47. reg = <0x54140000 0x00040000>;
  48. interrupts = <0 72 0x04>;
  49. clocks = <&tegra_car 21>;
  50. };
  51. gr3d {
  52. compatible = "nvidia,tegra20-gr3d";
  53. reg = <0x54180000 0x00040000>;
  54. clocks = <&tegra_car 24>;
  55. };
  56. dc@54200000 {
  57. compatible = "nvidia,tegra20-dc";
  58. reg = <0x54200000 0x00040000>;
  59. interrupts = <0 73 0x04>;
  60. clocks = <&tegra_car 27>, <&tegra_car 121>;
  61. clock-names = "disp1", "parent";
  62. rgb {
  63. status = "disabled";
  64. };
  65. };
  66. dc@54240000 {
  67. compatible = "nvidia,tegra20-dc";
  68. reg = <0x54240000 0x00040000>;
  69. interrupts = <0 74 0x04>;
  70. clocks = <&tegra_car 26>, <&tegra_car 121>;
  71. clock-names = "disp2", "parent";
  72. rgb {
  73. status = "disabled";
  74. };
  75. };
  76. hdmi {
  77. compatible = "nvidia,tegra20-hdmi";
  78. reg = <0x54280000 0x00040000>;
  79. interrupts = <0 75 0x04>;
  80. clocks = <&tegra_car 51>, <&tegra_car 117>;
  81. clock-names = "hdmi", "parent";
  82. status = "disabled";
  83. };
  84. tvo {
  85. compatible = "nvidia,tegra20-tvo";
  86. reg = <0x542c0000 0x00040000>;
  87. interrupts = <0 76 0x04>;
  88. clocks = <&tegra_car 102>;
  89. status = "disabled";
  90. };
  91. dsi {
  92. compatible = "nvidia,tegra20-dsi";
  93. reg = <0x54300000 0x00040000>;
  94. clocks = <&tegra_car 48>;
  95. status = "disabled";
  96. };
  97. };
  98. timer@50004600 {
  99. compatible = "arm,cortex-a9-twd-timer";
  100. reg = <0x50040600 0x20>;
  101. interrupts = <1 13 0x304>;
  102. clocks = <&tegra_car 132>;
  103. };
  104. intc: interrupt-controller {
  105. compatible = "arm,cortex-a9-gic";
  106. reg = <0x50041000 0x1000
  107. 0x50040100 0x0100>;
  108. interrupt-controller;
  109. #interrupt-cells = <3>;
  110. };
  111. cache-controller {
  112. compatible = "arm,pl310-cache";
  113. reg = <0x50043000 0x1000>;
  114. arm,data-latency = <5 5 2>;
  115. arm,tag-latency = <4 4 2>;
  116. cache-unified;
  117. cache-level = <2>;
  118. };
  119. timer@60005000 {
  120. compatible = "nvidia,tegra20-timer";
  121. reg = <0x60005000 0x60>;
  122. interrupts = <0 0 0x04
  123. 0 1 0x04
  124. 0 41 0x04
  125. 0 42 0x04>;
  126. clocks = <&tegra_car 5>;
  127. };
  128. tegra_car: clock {
  129. compatible = "nvidia,tegra20-car";
  130. reg = <0x60006000 0x1000>;
  131. #clock-cells = <1>;
  132. };
  133. apbdma: dma {
  134. compatible = "nvidia,tegra20-apbdma";
  135. reg = <0x6000a000 0x1200>;
  136. interrupts = <0 104 0x04
  137. 0 105 0x04
  138. 0 106 0x04
  139. 0 107 0x04
  140. 0 108 0x04
  141. 0 109 0x04
  142. 0 110 0x04
  143. 0 111 0x04
  144. 0 112 0x04
  145. 0 113 0x04
  146. 0 114 0x04
  147. 0 115 0x04
  148. 0 116 0x04
  149. 0 117 0x04
  150. 0 118 0x04
  151. 0 119 0x04>;
  152. clocks = <&tegra_car 34>;
  153. };
  154. ahb {
  155. compatible = "nvidia,tegra20-ahb";
  156. reg = <0x6000c004 0x10c>; /* AHB Arbitration + Gizmo Controller */
  157. };
  158. gpio: gpio {
  159. compatible = "nvidia,tegra20-gpio";
  160. reg = <0x6000d000 0x1000>;
  161. interrupts = <0 32 0x04
  162. 0 33 0x04
  163. 0 34 0x04
  164. 0 35 0x04
  165. 0 55 0x04
  166. 0 87 0x04
  167. 0 89 0x04>;
  168. #gpio-cells = <2>;
  169. gpio-controller;
  170. #interrupt-cells = <2>;
  171. interrupt-controller;
  172. };
  173. pinmux: pinmux {
  174. compatible = "nvidia,tegra20-pinmux";
  175. reg = <0x70000014 0x10 /* Tri-state registers */
  176. 0x70000080 0x20 /* Mux registers */
  177. 0x700000a0 0x14 /* Pull-up/down registers */
  178. 0x70000868 0xa8>; /* Pad control registers */
  179. };
  180. das {
  181. compatible = "nvidia,tegra20-das";
  182. reg = <0x70000c00 0x80>;
  183. };
  184. tegra_ac97: ac97 {
  185. compatible = "nvidia,tegra20-ac97";
  186. reg = <0x70002000 0x200>;
  187. interrupts = <0 81 0x04>;
  188. nvidia,dma-request-selector = <&apbdma 12>;
  189. clocks = <&tegra_car 3>;
  190. status = "disabled";
  191. };
  192. tegra_i2s1: i2s@70002800 {
  193. compatible = "nvidia,tegra20-i2s";
  194. reg = <0x70002800 0x200>;
  195. interrupts = <0 13 0x04>;
  196. nvidia,dma-request-selector = <&apbdma 2>;
  197. clocks = <&tegra_car 11>;
  198. status = "disabled";
  199. };
  200. tegra_i2s2: i2s@70002a00 {
  201. compatible = "nvidia,tegra20-i2s";
  202. reg = <0x70002a00 0x200>;
  203. interrupts = <0 3 0x04>;
  204. nvidia,dma-request-selector = <&apbdma 1>;
  205. clocks = <&tegra_car 18>;
  206. status = "disabled";
  207. };
  208. /*
  209. * There are two serial driver i.e. 8250 based simple serial
  210. * driver and APB DMA based serial driver for higher baudrate
  211. * and performace. To enable the 8250 based driver, the compatible
  212. * is "nvidia,tegra20-uart" and to enable the APB DMA based serial
  213. * driver, the comptible is "nvidia,tegra20-hsuart".
  214. */
  215. uarta: serial@70006000 {
  216. compatible = "nvidia,tegra20-uart";
  217. reg = <0x70006000 0x40>;
  218. reg-shift = <2>;
  219. interrupts = <0 36 0x04>;
  220. nvidia,dma-request-selector = <&apbdma 8>;
  221. clocks = <&tegra_car 6>;
  222. status = "disabled";
  223. };
  224. uartb: serial@70006040 {
  225. compatible = "nvidia,tegra20-uart";
  226. reg = <0x70006040 0x40>;
  227. reg-shift = <2>;
  228. interrupts = <0 37 0x04>;
  229. nvidia,dma-request-selector = <&apbdma 9>;
  230. clocks = <&tegra_car 96>;
  231. status = "disabled";
  232. };
  233. uartc: serial@70006200 {
  234. compatible = "nvidia,tegra20-uart";
  235. reg = <0x70006200 0x100>;
  236. reg-shift = <2>;
  237. interrupts = <0 46 0x04>;
  238. nvidia,dma-request-selector = <&apbdma 10>;
  239. clocks = <&tegra_car 55>;
  240. status = "disabled";
  241. };
  242. uartd: serial@70006300 {
  243. compatible = "nvidia,tegra20-uart";
  244. reg = <0x70006300 0x100>;
  245. reg-shift = <2>;
  246. interrupts = <0 90 0x04>;
  247. nvidia,dma-request-selector = <&apbdma 19>;
  248. clocks = <&tegra_car 65>;
  249. status = "disabled";
  250. };
  251. uarte: serial@70006400 {
  252. compatible = "nvidia,tegra20-uart";
  253. reg = <0x70006400 0x100>;
  254. reg-shift = <2>;
  255. interrupts = <0 91 0x04>;
  256. nvidia,dma-request-selector = <&apbdma 20>;
  257. clocks = <&tegra_car 66>;
  258. status = "disabled";
  259. };
  260. pwm: pwm {
  261. compatible = "nvidia,tegra20-pwm";
  262. reg = <0x7000a000 0x100>;
  263. #pwm-cells = <2>;
  264. clocks = <&tegra_car 17>;
  265. status = "disabled";
  266. };
  267. rtc {
  268. compatible = "nvidia,tegra20-rtc";
  269. reg = <0x7000e000 0x100>;
  270. interrupts = <0 2 0x04>;
  271. clocks = <&tegra_car 4>;
  272. };
  273. i2c@7000c000 {
  274. compatible = "nvidia,tegra20-i2c";
  275. reg = <0x7000c000 0x100>;
  276. interrupts = <0 38 0x04>;
  277. #address-cells = <1>;
  278. #size-cells = <0>;
  279. clocks = <&tegra_car 12>, <&tegra_car 124>;
  280. clock-names = "div-clk", "fast-clk";
  281. status = "disabled";
  282. };
  283. spi@7000c380 {
  284. compatible = "nvidia,tegra20-sflash";
  285. reg = <0x7000c380 0x80>;
  286. interrupts = <0 39 0x04>;
  287. nvidia,dma-request-selector = <&apbdma 11>;
  288. #address-cells = <1>;
  289. #size-cells = <0>;
  290. clocks = <&tegra_car 43>;
  291. status = "disabled";
  292. };
  293. i2c@7000c400 {
  294. compatible = "nvidia,tegra20-i2c";
  295. reg = <0x7000c400 0x100>;
  296. interrupts = <0 84 0x04>;
  297. #address-cells = <1>;
  298. #size-cells = <0>;
  299. clocks = <&tegra_car 54>, <&tegra_car 124>;
  300. clock-names = "div-clk", "fast-clk";
  301. status = "disabled";
  302. };
  303. i2c@7000c500 {
  304. compatible = "nvidia,tegra20-i2c";
  305. reg = <0x7000c500 0x100>;
  306. interrupts = <0 92 0x04>;
  307. #address-cells = <1>;
  308. #size-cells = <0>;
  309. clocks = <&tegra_car 67>, <&tegra_car 124>;
  310. clock-names = "div-clk", "fast-clk";
  311. status = "disabled";
  312. };
  313. i2c@7000d000 {
  314. compatible = "nvidia,tegra20-i2c-dvc";
  315. reg = <0x7000d000 0x200>;
  316. interrupts = <0 53 0x04>;
  317. #address-cells = <1>;
  318. #size-cells = <0>;
  319. clocks = <&tegra_car 47>, <&tegra_car 124>;
  320. clock-names = "div-clk", "fast-clk";
  321. status = "disabled";
  322. };
  323. spi@7000d400 {
  324. compatible = "nvidia,tegra20-slink";
  325. reg = <0x7000d400 0x200>;
  326. interrupts = <0 59 0x04>;
  327. nvidia,dma-request-selector = <&apbdma 15>;
  328. #address-cells = <1>;
  329. #size-cells = <0>;
  330. clocks = <&tegra_car 41>;
  331. status = "disabled";
  332. };
  333. spi@7000d600 {
  334. compatible = "nvidia,tegra20-slink";
  335. reg = <0x7000d600 0x200>;
  336. interrupts = <0 82 0x04>;
  337. nvidia,dma-request-selector = <&apbdma 16>;
  338. #address-cells = <1>;
  339. #size-cells = <0>;
  340. clocks = <&tegra_car 44>;
  341. status = "disabled";
  342. };
  343. spi@7000d800 {
  344. compatible = "nvidia,tegra20-slink";
  345. reg = <0x7000d800 0x200>;
  346. interrupts = <0 83 0x04>;
  347. nvidia,dma-request-selector = <&apbdma 17>;
  348. #address-cells = <1>;
  349. #size-cells = <0>;
  350. clocks = <&tegra_car 46>;
  351. status = "disabled";
  352. };
  353. spi@7000da00 {
  354. compatible = "nvidia,tegra20-slink";
  355. reg = <0x7000da00 0x200>;
  356. interrupts = <0 93 0x04>;
  357. nvidia,dma-request-selector = <&apbdma 18>;
  358. #address-cells = <1>;
  359. #size-cells = <0>;
  360. clocks = <&tegra_car 68>;
  361. status = "disabled";
  362. };
  363. kbc {
  364. compatible = "nvidia,tegra20-kbc";
  365. reg = <0x7000e200 0x100>;
  366. interrupts = <0 85 0x04>;
  367. clocks = <&tegra_car 36>;
  368. status = "disabled";
  369. };
  370. pmc {
  371. compatible = "nvidia,tegra20-pmc";
  372. reg = <0x7000e400 0x400>;
  373. clocks = <&tegra_car 110>, <&clk32k_in>;
  374. clock-names = "pclk", "clk32k_in";
  375. };
  376. memory-controller@7000f000 {
  377. compatible = "nvidia,tegra20-mc";
  378. reg = <0x7000f000 0x024
  379. 0x7000f03c 0x3c4>;
  380. interrupts = <0 77 0x04>;
  381. };
  382. iommu {
  383. compatible = "nvidia,tegra20-gart";
  384. reg = <0x7000f024 0x00000018 /* controller registers */
  385. 0x58000000 0x02000000>; /* GART aperture */
  386. };
  387. memory-controller@7000f400 {
  388. compatible = "nvidia,tegra20-emc";
  389. reg = <0x7000f400 0x200>;
  390. #address-cells = <1>;
  391. #size-cells = <0>;
  392. };
  393. usb@c5000000 {
  394. compatible = "nvidia,tegra20-ehci", "usb-ehci";
  395. reg = <0xc5000000 0x4000>;
  396. interrupts = <0 20 0x04>;
  397. phy_type = "utmi";
  398. nvidia,has-legacy-mode;
  399. clocks = <&tegra_car 22>;
  400. nvidia,needs-double-reset;
  401. nvidia,phy = <&phy1>;
  402. status = "disabled";
  403. };
  404. phy1: usb-phy@c5000400 {
  405. compatible = "nvidia,tegra20-usb-phy";
  406. reg = <0xc5000400 0x3c00>;
  407. phy_type = "utmi";
  408. nvidia,has-legacy-mode;
  409. clocks = <&tegra_car 22>, <&tegra_car 127>;
  410. clock-names = "phy", "pll_u";
  411. };
  412. usb@c5004000 {
  413. compatible = "nvidia,tegra20-ehci", "usb-ehci";
  414. reg = <0xc5004000 0x4000>;
  415. interrupts = <0 21 0x04>;
  416. phy_type = "ulpi";
  417. clocks = <&tegra_car 58>;
  418. nvidia,phy = <&phy2>;
  419. status = "disabled";
  420. };
  421. phy2: usb-phy@c5004400 {
  422. compatible = "nvidia,tegra20-usb-phy";
  423. reg = <0xc5004400 0x3c00>;
  424. phy_type = "ulpi";
  425. clocks = <&tegra_car 93>, <&tegra_car 127>;
  426. clock-names = "phy", "pll_u";
  427. };
  428. usb@c5008000 {
  429. compatible = "nvidia,tegra20-ehci", "usb-ehci";
  430. reg = <0xc5008000 0x4000>;
  431. interrupts = <0 97 0x04>;
  432. phy_type = "utmi";
  433. clocks = <&tegra_car 59>;
  434. nvidia,phy = <&phy3>;
  435. status = "disabled";
  436. };
  437. phy3: usb-phy@c5008400 {
  438. compatible = "nvidia,tegra20-usb-phy";
  439. reg = <0xc5008400 0x3c00>;
  440. phy_type = "utmi";
  441. clocks = <&tegra_car 22>, <&tegra_car 127>;
  442. clock-names = "phy", "pll_u";
  443. };
  444. sdhci@c8000000 {
  445. compatible = "nvidia,tegra20-sdhci";
  446. reg = <0xc8000000 0x200>;
  447. interrupts = <0 14 0x04>;
  448. clocks = <&tegra_car 14>;
  449. status = "disabled";
  450. };
  451. sdhci@c8000200 {
  452. compatible = "nvidia,tegra20-sdhci";
  453. reg = <0xc8000200 0x200>;
  454. interrupts = <0 15 0x04>;
  455. clocks = <&tegra_car 9>;
  456. status = "disabled";
  457. };
  458. sdhci@c8000400 {
  459. compatible = "nvidia,tegra20-sdhci";
  460. reg = <0xc8000400 0x200>;
  461. interrupts = <0 19 0x04>;
  462. clocks = <&tegra_car 69>;
  463. status = "disabled";
  464. };
  465. sdhci@c8000600 {
  466. compatible = "nvidia,tegra20-sdhci";
  467. reg = <0xc8000600 0x200>;
  468. interrupts = <0 31 0x04>;
  469. clocks = <&tegra_car 15>;
  470. status = "disabled";
  471. };
  472. cpus {
  473. #address-cells = <1>;
  474. #size-cells = <0>;
  475. cpu@0 {
  476. device_type = "cpu";
  477. compatible = "arm,cortex-a9";
  478. reg = <0>;
  479. };
  480. cpu@1 {
  481. device_type = "cpu";
  482. compatible = "arm,cortex-a9";
  483. reg = <1>;
  484. };
  485. };
  486. pmu {
  487. compatible = "arm,cortex-a9-pmu";
  488. interrupts = <0 56 0x04
  489. 0 57 0x04>;
  490. };
  491. };