tegra20.dtsi 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450
  1. #include <dt-bindings/clock/tegra20-car.h>
  2. #include <dt-bindings/gpio/tegra-gpio.h>
  3. #include <dt-bindings/interrupt-controller/arm-gic.h>
  4. #include "skeleton.dtsi"
  5. / {
  6. compatible = "nvidia,tegra20";
  7. interrupt-parent = <&intc>;
  8. host1x {
  9. compatible = "nvidia,tegra20-host1x", "simple-bus";
  10. reg = <0x50000000 0x00024000>;
  11. interrupts = <0 65 0x04 /* mpcore syncpt */
  12. 0 67 0x04>; /* mpcore general */
  13. status = "disabled";
  14. #address-cells = <1>;
  15. #size-cells = <1>;
  16. ranges = <0x54000000 0x54000000 0x04000000>;
  17. /* video-encoding/decoding */
  18. mpe {
  19. reg = <0x54040000 0x00040000>;
  20. interrupts = <0 68 0x04>;
  21. status = "disabled";
  22. };
  23. /* video input */
  24. vi {
  25. reg = <0x54080000 0x00040000>;
  26. interrupts = <0 69 0x04>;
  27. status = "disabled";
  28. };
  29. /* EPP */
  30. epp {
  31. reg = <0x540c0000 0x00040000>;
  32. interrupts = <0 70 0x04>;
  33. status = "disabled";
  34. };
  35. /* ISP */
  36. isp {
  37. reg = <0x54100000 0x00040000>;
  38. interrupts = <0 71 0x04>;
  39. status = "disabled";
  40. };
  41. /* 2D engine */
  42. gr2d {
  43. reg = <0x54140000 0x00040000>;
  44. interrupts = <0 72 0x04>;
  45. status = "disabled";
  46. };
  47. /* 3D engine */
  48. gr3d {
  49. reg = <0x54180000 0x00040000>;
  50. status = "disabled";
  51. };
  52. /* display controllers */
  53. dc@54200000 {
  54. compatible = "nvidia,tegra20-dc";
  55. reg = <0x54200000 0x00040000>;
  56. interrupts = <0 73 0x04>;
  57. status = "disabled";
  58. rgb {
  59. status = "disabled";
  60. };
  61. };
  62. dc@54240000 {
  63. compatible = "nvidia,tegra20-dc";
  64. reg = <0x54240000 0x00040000>;
  65. interrupts = <0 74 0x04>;
  66. status = "disabled";
  67. rgb {
  68. status = "disabled";
  69. };
  70. };
  71. /* outputs */
  72. hdmi {
  73. compatible = "nvidia,tegra20-hdmi";
  74. reg = <0x54280000 0x00040000>;
  75. interrupts = <0 75 0x04>;
  76. status = "disabled";
  77. };
  78. tvo {
  79. compatible = "nvidia,tegra20-tvo";
  80. reg = <0x542c0000 0x00040000>;
  81. interrupts = <0 76 0x04>;
  82. status = "disabled";
  83. };
  84. dsi {
  85. compatible = "nvidia,tegra20-dsi";
  86. reg = <0x54300000 0x00040000>;
  87. status = "disabled";
  88. };
  89. };
  90. intc: interrupt-controller@50041000 {
  91. compatible = "nvidia,tegra20-gic";
  92. interrupt-controller;
  93. #interrupt-cells = <1>;
  94. reg = < 0x50041000 0x1000 >,
  95. < 0x50040100 0x0100 >;
  96. };
  97. tegra_car: clock@60006000 {
  98. compatible = "nvidia,tegra20-car";
  99. reg = <0x60006000 0x1000>;
  100. #clock-cells = <1>;
  101. };
  102. apbdma: dma {
  103. compatible = "nvidia,tegra20-apbdma";
  104. reg = <0x6000a000 0x1200>;
  105. interrupts = <0 104 0x04
  106. 0 105 0x04
  107. 0 106 0x04
  108. 0 107 0x04
  109. 0 108 0x04
  110. 0 109 0x04
  111. 0 110 0x04
  112. 0 111 0x04
  113. 0 112 0x04
  114. 0 113 0x04
  115. 0 114 0x04
  116. 0 115 0x04
  117. 0 116 0x04
  118. 0 117 0x04
  119. 0 118 0x04
  120. 0 119 0x04>;
  121. };
  122. gpio: gpio@6000d000 {
  123. compatible = "nvidia,tegra20-gpio";
  124. reg = <0x6000d000 0x1000>;
  125. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
  126. <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
  127. <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
  128. <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
  129. <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
  130. <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
  131. <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
  132. #gpio-cells = <2>;
  133. gpio-controller;
  134. #interrupt-cells = <2>;
  135. interrupt-controller;
  136. };
  137. pinmux: pinmux@70000000 {
  138. compatible = "nvidia,tegra20-pinmux";
  139. reg = < 0x70000014 0x10 /* Tri-state registers */
  140. 0x70000080 0x20 /* Mux registers */
  141. 0x700000a0 0x14 /* Pull-up/down registers */
  142. 0x70000868 0xa8 >; /* Pad control registers */
  143. };
  144. das@70000c00 {
  145. #address-cells = <1>;
  146. #size-cells = <0>;
  147. compatible = "nvidia,tegra20-das";
  148. reg = <0x70000c00 0x80>;
  149. };
  150. i2s@70002800 {
  151. #address-cells = <1>;
  152. #size-cells = <0>;
  153. compatible = "nvidia,tegra20-i2s";
  154. reg = <0x70002800 0x200>;
  155. interrupts = < 45 >;
  156. dma-channel = < 2 >;
  157. };
  158. i2s@70002a00 {
  159. #address-cells = <1>;
  160. #size-cells = <0>;
  161. compatible = "nvidia,tegra20-i2s";
  162. reg = <0x70002a00 0x200>;
  163. interrupts = < 35 >;
  164. dma-channel = < 1 >;
  165. };
  166. uarta: serial@70006000 {
  167. compatible = "nvidia,tegra20-uart";
  168. reg = <0x70006000 0x40>;
  169. reg-shift = <2>;
  170. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  171. clocks = <&tegra_car TEGRA20_CLK_UARTA>;
  172. resets = <&tegra_car 6>;
  173. reset-names = "serial";
  174. dmas = <&apbdma 8>, <&apbdma 8>;
  175. dma-names = "rx", "tx";
  176. status = "disabled";
  177. };
  178. uartb: serial@70006040 {
  179. compatible = "nvidia,tegra20-uart";
  180. reg = <0x70006040 0x40>;
  181. reg-shift = <2>;
  182. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  183. clocks = <&tegra_car TEGRA20_CLK_UARTB>;
  184. resets = <&tegra_car 7>;
  185. reset-names = "serial";
  186. dmas = <&apbdma 9>, <&apbdma 9>;
  187. dma-names = "rx", "tx";
  188. status = "disabled";
  189. };
  190. uartc: serial@70006200 {
  191. compatible = "nvidia,tegra20-uart";
  192. reg = <0x70006200 0x100>;
  193. reg-shift = <2>;
  194. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
  195. clocks = <&tegra_car TEGRA20_CLK_UARTC>;
  196. resets = <&tegra_car 55>;
  197. reset-names = "serial";
  198. dmas = <&apbdma 10>, <&apbdma 10>;
  199. dma-names = "rx", "tx";
  200. status = "disabled";
  201. };
  202. uartd: serial@70006300 {
  203. compatible = "nvidia,tegra20-uart";
  204. reg = <0x70006300 0x100>;
  205. reg-shift = <2>;
  206. interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
  207. clocks = <&tegra_car TEGRA20_CLK_UARTD>;
  208. resets = <&tegra_car 65>;
  209. reset-names = "serial";
  210. dmas = <&apbdma 19>, <&apbdma 19>;
  211. dma-names = "rx", "tx";
  212. status = "disabled";
  213. };
  214. uarte: serial@70006400 {
  215. compatible = "nvidia,tegra20-uart";
  216. reg = <0x70006400 0x100>;
  217. reg-shift = <2>;
  218. interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
  219. clocks = <&tegra_car TEGRA20_CLK_UARTE>;
  220. resets = <&tegra_car 66>;
  221. reset-names = "serial";
  222. dmas = <&apbdma 20>, <&apbdma 20>;
  223. dma-names = "rx", "tx";
  224. status = "disabled";
  225. };
  226. nand: nand-controller@70008000 {
  227. #address-cells = <1>;
  228. #size-cells = <0>;
  229. compatible = "nvidia,tegra20-nand";
  230. reg = <0x70008000 0x100>;
  231. };
  232. pwm: pwm@7000a000 {
  233. compatible = "nvidia,tegra20-pwm";
  234. reg = <0x7000a000 0x100>;
  235. #pwm-cells = <2>;
  236. };
  237. i2c@7000c000 {
  238. #address-cells = <1>;
  239. #size-cells = <0>;
  240. compatible = "nvidia,tegra20-i2c";
  241. reg = <0x7000C000 0x100>;
  242. interrupts = < 70 >;
  243. /* PERIPH_ID_I2C1, PLL_P_OUT3 */
  244. clocks = <&tegra_car 12>, <&tegra_car 124>;
  245. };
  246. spi@7000c380 {
  247. compatible = "nvidia,tegra20-sflash";
  248. reg = <0x7000c380 0x80>;
  249. interrupts = <0 39 0x04>;
  250. nvidia,dma-request-selector = <&apbdma 11>;
  251. #address-cells = <1>;
  252. #size-cells = <0>;
  253. status = "disabled";
  254. /* PERIPH_ID_SPI1, PLLP_OUT0 */
  255. clocks = <&tegra_car 43>;
  256. };
  257. i2c@7000c400 {
  258. #address-cells = <1>;
  259. #size-cells = <0>;
  260. compatible = "nvidia,tegra20-i2c";
  261. reg = <0x7000C400 0x100>;
  262. interrupts = < 116 >;
  263. /* PERIPH_ID_I2C2, PLL_P_OUT3 */
  264. clocks = <&tegra_car 54>, <&tegra_car 124>;
  265. };
  266. i2c@7000c500 {
  267. #address-cells = <1>;
  268. #size-cells = <0>;
  269. compatible = "nvidia,tegra20-i2c";
  270. reg = <0x7000C500 0x100>;
  271. interrupts = < 124 >;
  272. /* PERIPH_ID_I2C3, PLL_P_OUT3 */
  273. clocks = <&tegra_car 67>, <&tegra_car 124>;
  274. };
  275. i2c@7000d000 {
  276. #address-cells = <1>;
  277. #size-cells = <0>;
  278. compatible = "nvidia,tegra20-i2c-dvc";
  279. reg = <0x7000D000 0x200>;
  280. interrupts = < 85 >;
  281. /* PERIPH_ID_DVC_I2C, PLL_P_OUT3 */
  282. clocks = <&tegra_car 47>, <&tegra_car 124>;
  283. };
  284. kbc@7000e200 {
  285. compatible = "nvidia,tegra20-kbc";
  286. reg = <0x7000e200 0x0078>;
  287. };
  288. emc@7000f400 {
  289. #address-cells = < 1 >;
  290. #size-cells = < 0 >;
  291. compatible = "nvidia,tegra20-emc";
  292. reg = <0x7000f400 0x200>;
  293. };
  294. pcie-controller@80003000 {
  295. compatible = "nvidia,tegra20-pcie";
  296. device_type = "pci";
  297. reg = <0x80003000 0x00000800 /* PADS registers */
  298. 0x80003800 0x00000200 /* AFI registers */
  299. 0x90000000 0x10000000>; /* configuration space */
  300. reg-names = "pads", "afi", "cs";
  301. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH /* controller interrupt */
  302. GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
  303. interrupt-names = "intr", "msi";
  304. #interrupt-cells = <1>;
  305. interrupt-map-mask = <0 0 0 0>;
  306. interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  307. bus-range = <0x00 0xff>;
  308. #address-cells = <3>;
  309. #size-cells = <2>;
  310. ranges = <0x82000000 0 0x80000000 0x80000000 0 0x00001000 /* port 0 registers */
  311. 0x82000000 0 0x80001000 0x80001000 0 0x00001000 /* port 1 registers */
  312. 0x81000000 0 0 0x82000000 0 0x00010000 /* downstream I/O */
  313. 0x82000000 0 0xa0000000 0xa0000000 0 0x08000000 /* non-prefetchable memory */
  314. 0xc2000000 0 0xa8000000 0xa8000000 0 0x18000000>; /* prefetchable memory */
  315. clocks = <&tegra_car TEGRA20_CLK_PEX>,
  316. <&tegra_car TEGRA20_CLK_AFI>,
  317. <&tegra_car TEGRA20_CLK_PCIE_XCLK>,
  318. <&tegra_car TEGRA20_CLK_PLL_E>;
  319. clock-names = "pex", "afi", "pcie_xclk", "pll_e";
  320. status = "disabled";
  321. pci@1,0 {
  322. device_type = "pci";
  323. assigned-addresses = <0x82000800 0 0x80000000 0 0x1000>;
  324. reg = <0x000800 0 0 0 0>;
  325. status = "disabled";
  326. #address-cells = <3>;
  327. #size-cells = <2>;
  328. ranges;
  329. nvidia,num-lanes = <2>;
  330. };
  331. pci@2,0 {
  332. device_type = "pci";
  333. assigned-addresses = <0x82001000 0 0x80001000 0 0x1000>;
  334. reg = <0x001000 0 0 0 0>;
  335. status = "disabled";
  336. #address-cells = <3>;
  337. #size-cells = <2>;
  338. ranges;
  339. nvidia,num-lanes = <2>;
  340. };
  341. };
  342. usb@c5000000 {
  343. compatible = "nvidia,tegra20-ehci", "usb-ehci";
  344. reg = <0xc5000000 0x4000>;
  345. interrupts = < 52 >;
  346. phy_type = "utmi";
  347. clocks = <&tegra_car 22>; /* PERIPH_ID_USBD */
  348. nvidia,has-legacy-mode;
  349. };
  350. usb@c5004000 {
  351. compatible = "nvidia,tegra20-ehci", "usb-ehci";
  352. reg = <0xc5004000 0x4000>;
  353. interrupts = < 53 >;
  354. phy_type = "ulpi";
  355. clocks = <&tegra_car 58>; /* PERIPH_ID_USB2 */
  356. };
  357. usb@c5008000 {
  358. compatible = "nvidia,tegra20-ehci", "usb-ehci";
  359. reg = <0xc5008000 0x4000>;
  360. interrupts = < 129 >;
  361. phy_type = "utmi";
  362. clocks = <&tegra_car 59>; /* PERIPH_ID_USB3 */
  363. };
  364. sdhci@c8000000 {
  365. compatible = "nvidia,tegra20-sdhci";
  366. reg = <0xc8000000 0x200>;
  367. interrupts = <0 14 0x04>;
  368. clocks = <&tegra_car 14>;
  369. status = "disabled";
  370. };
  371. sdhci@c8000200 {
  372. compatible = "nvidia,tegra20-sdhci";
  373. reg = <0xc8000200 0x200>;
  374. interrupts = <0 15 0x04>;
  375. clocks = <&tegra_car 9>;
  376. status = "disabled";
  377. };
  378. sdhci@c8000400 {
  379. compatible = "nvidia,tegra20-sdhci";
  380. reg = <0xc8000400 0x200>;
  381. interrupts = <0 19 0x04>;
  382. clocks = <&tegra_car 69>;
  383. status = "disabled";
  384. };
  385. sdhci@c8000600 {
  386. compatible = "nvidia,tegra20-sdhci";
  387. reg = <0xc8000600 0x200>;
  388. interrupts = <0 31 0x04>;
  389. clocks = <&tegra_car 15>;
  390. status = "disabled";
  391. };
  392. };