tegra20.dtsi 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779
  1. #include <dt-bindings/clock/tegra20-car.h>
  2. #include <dt-bindings/gpio/tegra-gpio.h>
  3. #include <dt-bindings/pinctrl/pinctrl-tegra.h>
  4. #include <dt-bindings/interrupt-controller/arm-gic.h>
  5. #include "skeleton.dtsi"
  6. / {
  7. compatible = "nvidia,tegra20";
  8. interrupt-parent = <&intc>;
  9. host1x@50000000 {
  10. compatible = "nvidia,tegra20-host1x", "simple-bus";
  11. reg = <0x50000000 0x00024000>;
  12. interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */
  13. <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* general */
  14. clocks = <&tegra_car TEGRA20_CLK_HOST1X>;
  15. resets = <&tegra_car 28>;
  16. reset-names = "host1x";
  17. #address-cells = <1>;
  18. #size-cells = <1>;
  19. ranges = <0x54000000 0x54000000 0x04000000>;
  20. mpe@54040000 {
  21. compatible = "nvidia,tegra20-mpe";
  22. reg = <0x54040000 0x00040000>;
  23. interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
  24. clocks = <&tegra_car TEGRA20_CLK_MPE>;
  25. resets = <&tegra_car 60>;
  26. reset-names = "mpe";
  27. };
  28. vi@54080000 {
  29. compatible = "nvidia,tegra20-vi";
  30. reg = <0x54080000 0x00040000>;
  31. interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
  32. clocks = <&tegra_car TEGRA20_CLK_VI>;
  33. resets = <&tegra_car 20>;
  34. reset-names = "vi";
  35. };
  36. epp@540c0000 {
  37. compatible = "nvidia,tegra20-epp";
  38. reg = <0x540c0000 0x00040000>;
  39. interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
  40. clocks = <&tegra_car TEGRA20_CLK_EPP>;
  41. resets = <&tegra_car 19>;
  42. reset-names = "epp";
  43. };
  44. isp@54100000 {
  45. compatible = "nvidia,tegra20-isp";
  46. reg = <0x54100000 0x00040000>;
  47. interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
  48. clocks = <&tegra_car TEGRA20_CLK_ISP>;
  49. resets = <&tegra_car 23>;
  50. reset-names = "isp";
  51. };
  52. gr2d@54140000 {
  53. compatible = "nvidia,tegra20-gr2d";
  54. reg = <0x54140000 0x00040000>;
  55. interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
  56. clocks = <&tegra_car TEGRA20_CLK_GR2D>;
  57. resets = <&tegra_car 21>;
  58. reset-names = "2d";
  59. };
  60. gr3d@54180000 {
  61. compatible = "nvidia,tegra20-gr3d";
  62. reg = <0x54180000 0x00040000>;
  63. clocks = <&tegra_car TEGRA20_CLK_GR3D>;
  64. resets = <&tegra_car 24>;
  65. reset-names = "3d";
  66. };
  67. dc@54200000 {
  68. compatible = "nvidia,tegra20-dc";
  69. reg = <0x54200000 0x00040000>;
  70. interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
  71. clocks = <&tegra_car TEGRA20_CLK_DISP1>,
  72. <&tegra_car TEGRA20_CLK_PLL_P>;
  73. clock-names = "dc", "parent";
  74. resets = <&tegra_car 27>;
  75. reset-names = "dc";
  76. nvidia,head = <0>;
  77. rgb {
  78. status = "disabled";
  79. };
  80. };
  81. dc@54240000 {
  82. compatible = "nvidia,tegra20-dc";
  83. reg = <0x54240000 0x00040000>;
  84. interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
  85. clocks = <&tegra_car TEGRA20_CLK_DISP2>,
  86. <&tegra_car TEGRA20_CLK_PLL_P>;
  87. clock-names = "dc", "parent";
  88. resets = <&tegra_car 26>;
  89. reset-names = "dc";
  90. nvidia,head = <1>;
  91. rgb {
  92. status = "disabled";
  93. };
  94. };
  95. hdmi@54280000 {
  96. compatible = "nvidia,tegra20-hdmi";
  97. reg = <0x54280000 0x00040000>;
  98. interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
  99. clocks = <&tegra_car TEGRA20_CLK_HDMI>,
  100. <&tegra_car TEGRA20_CLK_PLL_D_OUT0>;
  101. clock-names = "hdmi", "parent";
  102. resets = <&tegra_car 51>;
  103. reset-names = "hdmi";
  104. status = "disabled";
  105. };
  106. tvo@542c0000 {
  107. compatible = "nvidia,tegra20-tvo";
  108. reg = <0x542c0000 0x00040000>;
  109. interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
  110. clocks = <&tegra_car TEGRA20_CLK_TVO>;
  111. status = "disabled";
  112. };
  113. dsi@54300000 {
  114. compatible = "nvidia,tegra20-dsi";
  115. reg = <0x54300000 0x00040000>;
  116. clocks = <&tegra_car TEGRA20_CLK_DSI>;
  117. resets = <&tegra_car 48>;
  118. reset-names = "dsi";
  119. status = "disabled";
  120. };
  121. };
  122. timer@50004600 {
  123. compatible = "arm,cortex-a9-twd-timer";
  124. reg = <0x50040600 0x20>;
  125. interrupts = <GIC_PPI 13
  126. (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
  127. clocks = <&tegra_car TEGRA20_CLK_TWD>;
  128. };
  129. intc: interrupt-controller@50041000 {
  130. compatible = "arm,cortex-a9-gic";
  131. reg = <0x50041000 0x1000
  132. 0x50040100 0x0100>;
  133. interrupt-controller;
  134. #interrupt-cells = <3>;
  135. };
  136. cache-controller@50043000 {
  137. compatible = "arm,pl310-cache";
  138. reg = <0x50043000 0x1000>;
  139. arm,data-latency = <5 5 2>;
  140. arm,tag-latency = <4 4 2>;
  141. cache-unified;
  142. cache-level = <2>;
  143. };
  144. timer@60005000 {
  145. compatible = "nvidia,tegra20-timer";
  146. reg = <0x60005000 0x60>;
  147. interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
  148. <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
  149. <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
  150. <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
  151. clocks = <&tegra_car TEGRA20_CLK_TIMER>;
  152. };
  153. tegra_car: clock@60006000 {
  154. compatible = "nvidia,tegra20-car";
  155. reg = <0x60006000 0x1000>;
  156. #clock-cells = <1>;
  157. #reset-cells = <1>;
  158. };
  159. flow-controller@60007000 {
  160. compatible = "nvidia,tegra20-flowctrl";
  161. reg = <0x60007000 0x1000>;
  162. };
  163. apbdma: dma@6000a000 {
  164. compatible = "nvidia,tegra20-apbdma";
  165. reg = <0x6000a000 0x1200>;
  166. interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
  167. <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
  168. <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
  169. <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
  170. <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
  171. <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
  172. <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
  173. <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
  174. <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
  175. <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
  176. <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
  177. <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
  178. <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
  179. <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
  180. <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
  181. <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
  182. clocks = <&tegra_car TEGRA20_CLK_APBDMA>;
  183. resets = <&tegra_car 34>;
  184. reset-names = "dma";
  185. #dma-cells = <1>;
  186. };
  187. ahb@6000c004 {
  188. compatible = "nvidia,tegra20-ahb";
  189. reg = <0x6000c004 0x10c>; /* AHB Arbitration + Gizmo Controller */
  190. };
  191. gpio: gpio@6000d000 {
  192. compatible = "nvidia,tegra20-gpio";
  193. reg = <0x6000d000 0x1000>;
  194. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
  195. <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
  196. <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
  197. <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
  198. <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
  199. <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
  200. <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
  201. #gpio-cells = <2>;
  202. gpio-controller;
  203. #interrupt-cells = <2>;
  204. interrupt-controller;
  205. };
  206. apbmisc@70000800 {
  207. compatible = "nvidia,tegra20-apbmisc";
  208. reg = <0x70000800 0x64 /* Chip revision */
  209. 0x70000008 0x04>; /* Strapping options */
  210. };
  211. pinmux: pinmux@70000014 {
  212. compatible = "nvidia,tegra20-pinmux";
  213. reg = <0x70000014 0x10 /* Tri-state registers */
  214. 0x70000080 0x20 /* Mux registers */
  215. 0x700000a0 0x14 /* Pull-up/down registers */
  216. 0x70000868 0xa8>; /* Pad control registers */
  217. };
  218. das@70000c00 {
  219. compatible = "nvidia,tegra20-das";
  220. reg = <0x70000c00 0x80>;
  221. };
  222. tegra_ac97: ac97@70002000 {
  223. compatible = "nvidia,tegra20-ac97";
  224. reg = <0x70002000 0x200>;
  225. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
  226. clocks = <&tegra_car TEGRA20_CLK_AC97>;
  227. resets = <&tegra_car 3>;
  228. reset-names = "ac97";
  229. dmas = <&apbdma 12>, <&apbdma 12>;
  230. dma-names = "rx", "tx";
  231. status = "disabled";
  232. };
  233. tegra_i2s1: i2s@70002800 {
  234. compatible = "nvidia,tegra20-i2s";
  235. reg = <0x70002800 0x200>;
  236. interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
  237. clocks = <&tegra_car TEGRA20_CLK_I2S1>;
  238. resets = <&tegra_car 11>;
  239. reset-names = "i2s";
  240. dmas = <&apbdma 2>, <&apbdma 2>;
  241. dma-names = "rx", "tx";
  242. status = "disabled";
  243. };
  244. tegra_i2s2: i2s@70002a00 {
  245. compatible = "nvidia,tegra20-i2s";
  246. reg = <0x70002a00 0x200>;
  247. interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
  248. clocks = <&tegra_car TEGRA20_CLK_I2S2>;
  249. resets = <&tegra_car 18>;
  250. reset-names = "i2s";
  251. dmas = <&apbdma 1>, <&apbdma 1>;
  252. dma-names = "rx", "tx";
  253. status = "disabled";
  254. };
  255. /*
  256. * There are two serial driver i.e. 8250 based simple serial
  257. * driver and APB DMA based serial driver for higher baudrate
  258. * and performace. To enable the 8250 based driver, the compatible
  259. * is "nvidia,tegra20-uart" and to enable the APB DMA based serial
  260. * driver, the comptible is "nvidia,tegra20-hsuart".
  261. */
  262. uarta: serial@70006000 {
  263. compatible = "nvidia,tegra20-uart";
  264. reg = <0x70006000 0x40>;
  265. reg-shift = <2>;
  266. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  267. clocks = <&tegra_car TEGRA20_CLK_UARTA>;
  268. resets = <&tegra_car 6>;
  269. reset-names = "serial";
  270. dmas = <&apbdma 8>, <&apbdma 8>;
  271. dma-names = "rx", "tx";
  272. status = "disabled";
  273. };
  274. uartb: serial@70006040 {
  275. compatible = "nvidia,tegra20-uart";
  276. reg = <0x70006040 0x40>;
  277. reg-shift = <2>;
  278. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  279. clocks = <&tegra_car TEGRA20_CLK_UARTB>;
  280. resets = <&tegra_car 7>;
  281. reset-names = "serial";
  282. dmas = <&apbdma 9>, <&apbdma 9>;
  283. dma-names = "rx", "tx";
  284. status = "disabled";
  285. };
  286. uartc: serial@70006200 {
  287. compatible = "nvidia,tegra20-uart";
  288. reg = <0x70006200 0x100>;
  289. reg-shift = <2>;
  290. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
  291. clocks = <&tegra_car TEGRA20_CLK_UARTC>;
  292. resets = <&tegra_car 55>;
  293. reset-names = "serial";
  294. dmas = <&apbdma 10>, <&apbdma 10>;
  295. dma-names = "rx", "tx";
  296. status = "disabled";
  297. };
  298. uartd: serial@70006300 {
  299. compatible = "nvidia,tegra20-uart";
  300. reg = <0x70006300 0x100>;
  301. reg-shift = <2>;
  302. interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
  303. clocks = <&tegra_car TEGRA20_CLK_UARTD>;
  304. resets = <&tegra_car 65>;
  305. reset-names = "serial";
  306. dmas = <&apbdma 19>, <&apbdma 19>;
  307. dma-names = "rx", "tx";
  308. status = "disabled";
  309. };
  310. uarte: serial@70006400 {
  311. compatible = "nvidia,tegra20-uart";
  312. reg = <0x70006400 0x100>;
  313. reg-shift = <2>;
  314. interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
  315. clocks = <&tegra_car TEGRA20_CLK_UARTE>;
  316. resets = <&tegra_car 66>;
  317. reset-names = "serial";
  318. dmas = <&apbdma 20>, <&apbdma 20>;
  319. dma-names = "rx", "tx";
  320. status = "disabled";
  321. };
  322. pwm: pwm@7000a000 {
  323. compatible = "nvidia,tegra20-pwm";
  324. reg = <0x7000a000 0x100>;
  325. #pwm-cells = <2>;
  326. clocks = <&tegra_car TEGRA20_CLK_PWM>;
  327. resets = <&tegra_car 17>;
  328. reset-names = "pwm";
  329. status = "disabled";
  330. };
  331. rtc@7000e000 {
  332. compatible = "nvidia,tegra20-rtc";
  333. reg = <0x7000e000 0x100>;
  334. interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
  335. clocks = <&tegra_car TEGRA20_CLK_RTC>;
  336. };
  337. i2c@7000c000 {
  338. compatible = "nvidia,tegra20-i2c";
  339. reg = <0x7000c000 0x100>;
  340. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  341. #address-cells = <1>;
  342. #size-cells = <0>;
  343. clocks = <&tegra_car TEGRA20_CLK_I2C1>,
  344. <&tegra_car TEGRA20_CLK_PLL_P_OUT3>;
  345. clock-names = "div-clk", "fast-clk";
  346. resets = <&tegra_car 12>;
  347. reset-names = "i2c";
  348. dmas = <&apbdma 21>, <&apbdma 21>;
  349. dma-names = "rx", "tx";
  350. status = "disabled";
  351. };
  352. spi@7000c380 {
  353. compatible = "nvidia,tegra20-sflash";
  354. reg = <0x7000c380 0x80>;
  355. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
  356. #address-cells = <1>;
  357. #size-cells = <0>;
  358. clocks = <&tegra_car TEGRA20_CLK_SPI>;
  359. resets = <&tegra_car 43>;
  360. reset-names = "spi";
  361. dmas = <&apbdma 11>, <&apbdma 11>;
  362. dma-names = "rx", "tx";
  363. status = "disabled";
  364. };
  365. i2c@7000c400 {
  366. compatible = "nvidia,tegra20-i2c";
  367. reg = <0x7000c400 0x100>;
  368. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
  369. #address-cells = <1>;
  370. #size-cells = <0>;
  371. clocks = <&tegra_car TEGRA20_CLK_I2C2>,
  372. <&tegra_car TEGRA20_CLK_PLL_P_OUT3>;
  373. clock-names = "div-clk", "fast-clk";
  374. resets = <&tegra_car 54>;
  375. reset-names = "i2c";
  376. dmas = <&apbdma 22>, <&apbdma 22>;
  377. dma-names = "rx", "tx";
  378. status = "disabled";
  379. };
  380. i2c@7000c500 {
  381. compatible = "nvidia,tegra20-i2c";
  382. reg = <0x7000c500 0x100>;
  383. interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
  384. #address-cells = <1>;
  385. #size-cells = <0>;
  386. clocks = <&tegra_car TEGRA20_CLK_I2C3>,
  387. <&tegra_car TEGRA20_CLK_PLL_P_OUT3>;
  388. clock-names = "div-clk", "fast-clk";
  389. resets = <&tegra_car 67>;
  390. reset-names = "i2c";
  391. dmas = <&apbdma 23>, <&apbdma 23>;
  392. dma-names = "rx", "tx";
  393. status = "disabled";
  394. };
  395. i2c@7000d000 {
  396. compatible = "nvidia,tegra20-i2c-dvc";
  397. reg = <0x7000d000 0x200>;
  398. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
  399. #address-cells = <1>;
  400. #size-cells = <0>;
  401. clocks = <&tegra_car TEGRA20_CLK_DVC>,
  402. <&tegra_car TEGRA20_CLK_PLL_P_OUT3>;
  403. clock-names = "div-clk", "fast-clk";
  404. resets = <&tegra_car 47>;
  405. reset-names = "i2c";
  406. dmas = <&apbdma 24>, <&apbdma 24>;
  407. dma-names = "rx", "tx";
  408. status = "disabled";
  409. };
  410. spi@7000d400 {
  411. compatible = "nvidia,tegra20-slink";
  412. reg = <0x7000d400 0x200>;
  413. interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
  414. #address-cells = <1>;
  415. #size-cells = <0>;
  416. clocks = <&tegra_car TEGRA20_CLK_SBC1>;
  417. resets = <&tegra_car 41>;
  418. reset-names = "spi";
  419. dmas = <&apbdma 15>, <&apbdma 15>;
  420. dma-names = "rx", "tx";
  421. status = "disabled";
  422. };
  423. spi@7000d600 {
  424. compatible = "nvidia,tegra20-slink";
  425. reg = <0x7000d600 0x200>;
  426. interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
  427. #address-cells = <1>;
  428. #size-cells = <0>;
  429. clocks = <&tegra_car TEGRA20_CLK_SBC2>;
  430. resets = <&tegra_car 44>;
  431. reset-names = "spi";
  432. dmas = <&apbdma 16>, <&apbdma 16>;
  433. dma-names = "rx", "tx";
  434. status = "disabled";
  435. };
  436. spi@7000d800 {
  437. compatible = "nvidia,tegra20-slink";
  438. reg = <0x7000d800 0x200>;
  439. interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
  440. #address-cells = <1>;
  441. #size-cells = <0>;
  442. clocks = <&tegra_car TEGRA20_CLK_SBC3>;
  443. resets = <&tegra_car 46>;
  444. reset-names = "spi";
  445. dmas = <&apbdma 17>, <&apbdma 17>;
  446. dma-names = "rx", "tx";
  447. status = "disabled";
  448. };
  449. spi@7000da00 {
  450. compatible = "nvidia,tegra20-slink";
  451. reg = <0x7000da00 0x200>;
  452. interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
  453. #address-cells = <1>;
  454. #size-cells = <0>;
  455. clocks = <&tegra_car TEGRA20_CLK_SBC4>;
  456. resets = <&tegra_car 68>;
  457. reset-names = "spi";
  458. dmas = <&apbdma 18>, <&apbdma 18>;
  459. dma-names = "rx", "tx";
  460. status = "disabled";
  461. };
  462. kbc@7000e200 {
  463. compatible = "nvidia,tegra20-kbc";
  464. reg = <0x7000e200 0x100>;
  465. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  466. clocks = <&tegra_car TEGRA20_CLK_KBC>;
  467. resets = <&tegra_car 36>;
  468. reset-names = "kbc";
  469. status = "disabled";
  470. };
  471. pmc@7000e400 {
  472. compatible = "nvidia,tegra20-pmc";
  473. reg = <0x7000e400 0x400>;
  474. clocks = <&tegra_car TEGRA20_CLK_PCLK>, <&clk32k_in>;
  475. clock-names = "pclk", "clk32k_in";
  476. };
  477. memory-controller@7000f000 {
  478. compatible = "nvidia,tegra20-mc";
  479. reg = <0x7000f000 0x024
  480. 0x7000f03c 0x3c4>;
  481. interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
  482. };
  483. iommu@7000f024 {
  484. compatible = "nvidia,tegra20-gart";
  485. reg = <0x7000f024 0x00000018 /* controller registers */
  486. 0x58000000 0x02000000>; /* GART aperture */
  487. };
  488. memory-controller@7000f400 {
  489. compatible = "nvidia,tegra20-emc";
  490. reg = <0x7000f400 0x200>;
  491. #address-cells = <1>;
  492. #size-cells = <0>;
  493. };
  494. fuse@7000f800 {
  495. compatible = "nvidia,tegra20-efuse";
  496. reg = <0x7000F800 0x400>;
  497. clocks = <&tegra_car TEGRA20_CLK_FUSE>;
  498. clock-names = "fuse";
  499. resets = <&tegra_car 39>;
  500. reset-names = "fuse";
  501. };
  502. pcie-controller@80003000 {
  503. compatible = "nvidia,tegra20-pcie";
  504. device_type = "pci";
  505. reg = <0x80003000 0x00000800 /* PADS registers */
  506. 0x80003800 0x00000200 /* AFI registers */
  507. 0x90000000 0x10000000>; /* configuration space */
  508. reg-names = "pads", "afi", "cs";
  509. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH /* controller interrupt */
  510. GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
  511. interrupt-names = "intr", "msi";
  512. #interrupt-cells = <1>;
  513. interrupt-map-mask = <0 0 0 0>;
  514. interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  515. bus-range = <0x00 0xff>;
  516. #address-cells = <3>;
  517. #size-cells = <2>;
  518. ranges = <0x82000000 0 0x80000000 0x80000000 0 0x00001000 /* port 0 registers */
  519. 0x82000000 0 0x80001000 0x80001000 0 0x00001000 /* port 1 registers */
  520. 0x81000000 0 0 0x82000000 0 0x00010000 /* downstream I/O */
  521. 0x82000000 0 0xa0000000 0xa0000000 0 0x08000000 /* non-prefetchable memory */
  522. 0xc2000000 0 0xa8000000 0xa8000000 0 0x18000000>; /* prefetchable memory */
  523. clocks = <&tegra_car TEGRA20_CLK_PEX>,
  524. <&tegra_car TEGRA20_CLK_AFI>,
  525. <&tegra_car TEGRA20_CLK_PLL_E>;
  526. clock-names = "pex", "afi", "pll_e";
  527. resets = <&tegra_car 70>,
  528. <&tegra_car 72>,
  529. <&tegra_car 74>;
  530. reset-names = "pex", "afi", "pcie_x";
  531. status = "disabled";
  532. pci@1,0 {
  533. device_type = "pci";
  534. assigned-addresses = <0x82000800 0 0x80000000 0 0x1000>;
  535. reg = <0x000800 0 0 0 0>;
  536. status = "disabled";
  537. #address-cells = <3>;
  538. #size-cells = <2>;
  539. ranges;
  540. nvidia,num-lanes = <2>;
  541. };
  542. pci@2,0 {
  543. device_type = "pci";
  544. assigned-addresses = <0x82001000 0 0x80001000 0 0x1000>;
  545. reg = <0x001000 0 0 0 0>;
  546. status = "disabled";
  547. #address-cells = <3>;
  548. #size-cells = <2>;
  549. ranges;
  550. nvidia,num-lanes = <2>;
  551. };
  552. };
  553. usb@c5000000 {
  554. compatible = "nvidia,tegra20-ehci", "usb-ehci";
  555. reg = <0xc5000000 0x4000>;
  556. interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
  557. phy_type = "utmi";
  558. nvidia,has-legacy-mode;
  559. clocks = <&tegra_car TEGRA20_CLK_USBD>;
  560. resets = <&tegra_car 22>;
  561. reset-names = "usb";
  562. nvidia,needs-double-reset;
  563. nvidia,phy = <&phy1>;
  564. status = "disabled";
  565. };
  566. phy1: usb-phy@c5000000 {
  567. compatible = "nvidia,tegra20-usb-phy";
  568. reg = <0xc5000000 0x4000 0xc5000000 0x4000>;
  569. phy_type = "utmi";
  570. clocks = <&tegra_car TEGRA20_CLK_USBD>,
  571. <&tegra_car TEGRA20_CLK_PLL_U>,
  572. <&tegra_car TEGRA20_CLK_CLK_M>,
  573. <&tegra_car TEGRA20_CLK_USBD>;
  574. clock-names = "reg", "pll_u", "timer", "utmi-pads";
  575. resets = <&tegra_car 22>, <&tegra_car 22>;
  576. reset-names = "usb", "utmi-pads";
  577. nvidia,has-legacy-mode;
  578. nvidia,hssync-start-delay = <9>;
  579. nvidia,idle-wait-delay = <17>;
  580. nvidia,elastic-limit = <16>;
  581. nvidia,term-range-adj = <6>;
  582. nvidia,xcvr-setup = <9>;
  583. nvidia,xcvr-lsfslew = <1>;
  584. nvidia,xcvr-lsrslew = <1>;
  585. nvidia,has-utmi-pad-registers;
  586. status = "disabled";
  587. };
  588. usb@c5004000 {
  589. compatible = "nvidia,tegra20-ehci", "usb-ehci";
  590. reg = <0xc5004000 0x4000>;
  591. interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
  592. phy_type = "ulpi";
  593. clocks = <&tegra_car TEGRA20_CLK_USB2>;
  594. resets = <&tegra_car 58>;
  595. reset-names = "usb";
  596. nvidia,phy = <&phy2>;
  597. status = "disabled";
  598. };
  599. phy2: usb-phy@c5004000 {
  600. compatible = "nvidia,tegra20-usb-phy";
  601. reg = <0xc5004000 0x4000>;
  602. phy_type = "ulpi";
  603. clocks = <&tegra_car TEGRA20_CLK_USB2>,
  604. <&tegra_car TEGRA20_CLK_PLL_U>,
  605. <&tegra_car TEGRA20_CLK_CDEV2>;
  606. clock-names = "reg", "pll_u", "ulpi-link";
  607. resets = <&tegra_car 58>, <&tegra_car 22>;
  608. reset-names = "usb", "utmi-pads";
  609. status = "disabled";
  610. };
  611. usb@c5008000 {
  612. compatible = "nvidia,tegra20-ehci", "usb-ehci";
  613. reg = <0xc5008000 0x4000>;
  614. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  615. phy_type = "utmi";
  616. clocks = <&tegra_car TEGRA20_CLK_USB3>;
  617. resets = <&tegra_car 59>;
  618. reset-names = "usb";
  619. nvidia,phy = <&phy3>;
  620. status = "disabled";
  621. };
  622. phy3: usb-phy@c5008000 {
  623. compatible = "nvidia,tegra20-usb-phy";
  624. reg = <0xc5008000 0x4000 0xc5000000 0x4000>;
  625. phy_type = "utmi";
  626. clocks = <&tegra_car TEGRA20_CLK_USB3>,
  627. <&tegra_car TEGRA20_CLK_PLL_U>,
  628. <&tegra_car TEGRA20_CLK_CLK_M>,
  629. <&tegra_car TEGRA20_CLK_USBD>;
  630. clock-names = "reg", "pll_u", "timer", "utmi-pads";
  631. resets = <&tegra_car 59>, <&tegra_car 22>;
  632. reset-names = "usb", "utmi-pads";
  633. nvidia,hssync-start-delay = <9>;
  634. nvidia,idle-wait-delay = <17>;
  635. nvidia,elastic-limit = <16>;
  636. nvidia,term-range-adj = <6>;
  637. nvidia,xcvr-setup = <9>;
  638. nvidia,xcvr-lsfslew = <2>;
  639. nvidia,xcvr-lsrslew = <2>;
  640. status = "disabled";
  641. };
  642. sdhci@c8000000 {
  643. compatible = "nvidia,tegra20-sdhci";
  644. reg = <0xc8000000 0x200>;
  645. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  646. clocks = <&tegra_car TEGRA20_CLK_SDMMC1>;
  647. resets = <&tegra_car 14>;
  648. reset-names = "sdhci";
  649. status = "disabled";
  650. };
  651. sdhci@c8000200 {
  652. compatible = "nvidia,tegra20-sdhci";
  653. reg = <0xc8000200 0x200>;
  654. interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
  655. clocks = <&tegra_car TEGRA20_CLK_SDMMC2>;
  656. resets = <&tegra_car 9>;
  657. reset-names = "sdhci";
  658. status = "disabled";
  659. };
  660. sdhci@c8000400 {
  661. compatible = "nvidia,tegra20-sdhci";
  662. reg = <0xc8000400 0x200>;
  663. interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
  664. clocks = <&tegra_car TEGRA20_CLK_SDMMC3>;
  665. resets = <&tegra_car 69>;
  666. reset-names = "sdhci";
  667. status = "disabled";
  668. };
  669. sdhci@c8000600 {
  670. compatible = "nvidia,tegra20-sdhci";
  671. reg = <0xc8000600 0x200>;
  672. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
  673. clocks = <&tegra_car TEGRA20_CLK_SDMMC4>;
  674. resets = <&tegra_car 15>;
  675. reset-names = "sdhci";
  676. status = "disabled";
  677. };
  678. cpus {
  679. #address-cells = <1>;
  680. #size-cells = <0>;
  681. cpu@0 {
  682. device_type = "cpu";
  683. compatible = "arm,cortex-a9";
  684. reg = <0>;
  685. };
  686. cpu@1 {
  687. device_type = "cpu";
  688. compatible = "arm,cortex-a9";
  689. reg = <1>;
  690. };
  691. };
  692. pmu {
  693. compatible = "arm,cortex-a9-pmu";
  694. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
  695. <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
  696. };
  697. };