tegra20.dtsi 21 KB

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