tegra20.dtsi 13 KB

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