tegra30.dtsi 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915
  1. #include <dt-bindings/clock/tegra30-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,tegra30";
  8. interrupt-parent = <&intc>;
  9. pcie-controller@00003000 {
  10. compatible = "nvidia,tegra30-pcie";
  11. device_type = "pci";
  12. reg = <0x00003000 0x00000800 /* PADS registers */
  13. 0x00003800 0x00000200 /* AFI registers */
  14. 0x10000000 0x10000000>; /* configuration space */
  15. reg-names = "pads", "afi", "cs";
  16. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH /* controller interrupt */
  17. GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
  18. interrupt-names = "intr", "msi";
  19. #interrupt-cells = <1>;
  20. interrupt-map-mask = <0 0 0 0>;
  21. interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  22. bus-range = <0x00 0xff>;
  23. #address-cells = <3>;
  24. #size-cells = <2>;
  25. ranges = <0x82000000 0 0x00000000 0x00000000 0 0x00001000 /* port 0 configuration space */
  26. 0x82000000 0 0x00001000 0x00001000 0 0x00001000 /* port 1 configuration space */
  27. 0x82000000 0 0x00004000 0x00004000 0 0x00001000 /* port 2 configuration space */
  28. 0x81000000 0 0 0x02000000 0 0x00010000 /* downstream I/O */
  29. 0x82000000 0 0x20000000 0x20000000 0 0x08000000 /* non-prefetchable memory */
  30. 0xc2000000 0 0x28000000 0x28000000 0 0x18000000>; /* prefetchable memory */
  31. clocks = <&tegra_car TEGRA30_CLK_PCIE>,
  32. <&tegra_car TEGRA30_CLK_AFI>,
  33. <&tegra_car TEGRA30_CLK_PLL_E>,
  34. <&tegra_car TEGRA30_CLK_CML0>;
  35. clock-names = "pex", "afi", "pll_e", "cml";
  36. resets = <&tegra_car 70>,
  37. <&tegra_car 72>,
  38. <&tegra_car 74>;
  39. reset-names = "pex", "afi", "pcie_x";
  40. status = "disabled";
  41. pci@1,0 {
  42. device_type = "pci";
  43. assigned-addresses = <0x82000800 0 0x00000000 0 0x1000>;
  44. reg = <0x000800 0 0 0 0>;
  45. status = "disabled";
  46. #address-cells = <3>;
  47. #size-cells = <2>;
  48. ranges;
  49. nvidia,num-lanes = <2>;
  50. };
  51. pci@2,0 {
  52. device_type = "pci";
  53. assigned-addresses = <0x82001000 0 0x00001000 0 0x1000>;
  54. reg = <0x001000 0 0 0 0>;
  55. status = "disabled";
  56. #address-cells = <3>;
  57. #size-cells = <2>;
  58. ranges;
  59. nvidia,num-lanes = <2>;
  60. };
  61. pci@3,0 {
  62. device_type = "pci";
  63. assigned-addresses = <0x82001800 0 0x00004000 0 0x1000>;
  64. reg = <0x001800 0 0 0 0>;
  65. status = "disabled";
  66. #address-cells = <3>;
  67. #size-cells = <2>;
  68. ranges;
  69. nvidia,num-lanes = <2>;
  70. };
  71. };
  72. host1x@50000000 {
  73. compatible = "nvidia,tegra30-host1x", "simple-bus";
  74. reg = <0x50000000 0x00024000>;
  75. interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */
  76. <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* general */
  77. clocks = <&tegra_car TEGRA30_CLK_HOST1X>;
  78. resets = <&tegra_car 28>;
  79. reset-names = "host1x";
  80. #address-cells = <1>;
  81. #size-cells = <1>;
  82. ranges = <0x54000000 0x54000000 0x04000000>;
  83. mpe@54040000 {
  84. compatible = "nvidia,tegra30-mpe";
  85. reg = <0x54040000 0x00040000>;
  86. interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
  87. clocks = <&tegra_car TEGRA30_CLK_MPE>;
  88. resets = <&tegra_car 60>;
  89. reset-names = "mpe";
  90. };
  91. vi@54080000 {
  92. compatible = "nvidia,tegra30-vi";
  93. reg = <0x54080000 0x00040000>;
  94. interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
  95. clocks = <&tegra_car TEGRA30_CLK_VI>;
  96. resets = <&tegra_car 20>;
  97. reset-names = "vi";
  98. };
  99. epp@540c0000 {
  100. compatible = "nvidia,tegra30-epp";
  101. reg = <0x540c0000 0x00040000>;
  102. interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
  103. clocks = <&tegra_car TEGRA30_CLK_EPP>;
  104. resets = <&tegra_car 19>;
  105. reset-names = "epp";
  106. };
  107. isp@54100000 {
  108. compatible = "nvidia,tegra30-isp";
  109. reg = <0x54100000 0x00040000>;
  110. interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
  111. clocks = <&tegra_car TEGRA30_CLK_ISP>;
  112. resets = <&tegra_car 23>;
  113. reset-names = "isp";
  114. };
  115. gr2d@54140000 {
  116. compatible = "nvidia,tegra30-gr2d";
  117. reg = <0x54140000 0x00040000>;
  118. interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
  119. clocks = <&tegra_car TEGRA30_CLK_GR2D>;
  120. resets = <&tegra_car 21>;
  121. reset-names = "2d";
  122. };
  123. gr3d@54180000 {
  124. compatible = "nvidia,tegra30-gr3d";
  125. reg = <0x54180000 0x00040000>;
  126. clocks = <&tegra_car TEGRA30_CLK_GR3D
  127. &tegra_car TEGRA30_CLK_GR3D2>;
  128. clock-names = "3d", "3d2";
  129. resets = <&tegra_car 24>,
  130. <&tegra_car 98>;
  131. reset-names = "3d", "3d2";
  132. };
  133. dc@54200000 {
  134. compatible = "nvidia,tegra30-dc", "nvidia,tegra20-dc";
  135. reg = <0x54200000 0x00040000>;
  136. interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
  137. clocks = <&tegra_car TEGRA30_CLK_DISP1>,
  138. <&tegra_car TEGRA30_CLK_PLL_P>;
  139. clock-names = "dc", "parent";
  140. resets = <&tegra_car 27>;
  141. reset-names = "dc";
  142. nvidia,head = <0>;
  143. rgb {
  144. status = "disabled";
  145. };
  146. };
  147. dc@54240000 {
  148. compatible = "nvidia,tegra30-dc";
  149. reg = <0x54240000 0x00040000>;
  150. interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
  151. clocks = <&tegra_car TEGRA30_CLK_DISP2>,
  152. <&tegra_car TEGRA30_CLK_PLL_P>;
  153. clock-names = "dc", "parent";
  154. resets = <&tegra_car 26>;
  155. reset-names = "dc";
  156. nvidia,head = <1>;
  157. rgb {
  158. status = "disabled";
  159. };
  160. };
  161. hdmi@54280000 {
  162. compatible = "nvidia,tegra30-hdmi";
  163. reg = <0x54280000 0x00040000>;
  164. interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
  165. clocks = <&tegra_car TEGRA30_CLK_HDMI>,
  166. <&tegra_car TEGRA30_CLK_PLL_D2_OUT0>;
  167. clock-names = "hdmi", "parent";
  168. resets = <&tegra_car 51>;
  169. reset-names = "hdmi";
  170. status = "disabled";
  171. };
  172. tvo@542c0000 {
  173. compatible = "nvidia,tegra30-tvo";
  174. reg = <0x542c0000 0x00040000>;
  175. interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
  176. clocks = <&tegra_car TEGRA30_CLK_TVO>;
  177. status = "disabled";
  178. };
  179. dsi@54300000 {
  180. compatible = "nvidia,tegra30-dsi";
  181. reg = <0x54300000 0x00040000>;
  182. clocks = <&tegra_car TEGRA30_CLK_DSIA>;
  183. resets = <&tegra_car 48>;
  184. reset-names = "dsi";
  185. status = "disabled";
  186. };
  187. };
  188. timer@50004600 {
  189. compatible = "arm,cortex-a9-twd-timer";
  190. reg = <0x50040600 0x20>;
  191. interrupts = <GIC_PPI 13
  192. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  193. clocks = <&tegra_car TEGRA30_CLK_TWD>;
  194. };
  195. intc: interrupt-controller@50041000 {
  196. compatible = "arm,cortex-a9-gic";
  197. reg = <0x50041000 0x1000
  198. 0x50040100 0x0100>;
  199. interrupt-controller;
  200. #interrupt-cells = <3>;
  201. };
  202. cache-controller@50043000 {
  203. compatible = "arm,pl310-cache";
  204. reg = <0x50043000 0x1000>;
  205. arm,data-latency = <6 6 2>;
  206. arm,tag-latency = <5 5 2>;
  207. cache-unified;
  208. cache-level = <2>;
  209. };
  210. timer@60005000 {
  211. compatible = "nvidia,tegra30-timer", "nvidia,tegra20-timer";
  212. reg = <0x60005000 0x400>;
  213. interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
  214. <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
  215. <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
  216. <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
  217. <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
  218. <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
  219. clocks = <&tegra_car TEGRA30_CLK_TIMER>;
  220. };
  221. tegra_car: clock@60006000 {
  222. compatible = "nvidia,tegra30-car";
  223. reg = <0x60006000 0x1000>;
  224. #clock-cells = <1>;
  225. #reset-cells = <1>;
  226. };
  227. flow-controller@60007000 {
  228. compatible = "nvidia,tegra30-flowctrl";
  229. reg = <0x60007000 0x1000>;
  230. };
  231. apbdma: dma@6000a000 {
  232. compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-apbdma";
  233. reg = <0x6000a000 0x1400>;
  234. interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
  235. <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
  236. <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
  237. <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
  238. <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
  239. <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
  240. <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
  241. <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
  242. <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
  243. <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
  244. <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
  245. <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
  246. <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
  247. <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
  248. <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
  249. <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
  250. <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
  251. <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
  252. <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
  253. <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
  254. <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
  255. <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
  256. <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
  257. <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
  258. <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
  259. <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
  260. <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
  261. <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
  262. <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
  263. <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
  264. <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
  265. <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
  266. clocks = <&tegra_car TEGRA30_CLK_APBDMA>;
  267. resets = <&tegra_car 34>;
  268. reset-names = "dma";
  269. #dma-cells = <1>;
  270. };
  271. ahb: ahb@6000c004 {
  272. compatible = "nvidia,tegra30-ahb";
  273. reg = <0x6000c004 0x14c>; /* AHB Arbitration + Gizmo Controller */
  274. };
  275. gpio: gpio@6000d000 {
  276. compatible = "nvidia,tegra30-gpio";
  277. reg = <0x6000d000 0x1000>;
  278. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
  279. <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
  280. <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
  281. <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
  282. <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
  283. <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
  284. <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
  285. <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
  286. #gpio-cells = <2>;
  287. gpio-controller;
  288. #interrupt-cells = <2>;
  289. interrupt-controller;
  290. };
  291. apbmisc@70000800 {
  292. compatible = "nvidia,tegra30-apbmisc", "nvidia,tegra20-apbmisc";
  293. reg = <0x70000800 0x64 /* Chip revision */
  294. 0x70000008 0x04>; /* Strapping options */
  295. };
  296. pinmux: pinmux@70000868 {
  297. compatible = "nvidia,tegra30-pinmux";
  298. reg = <0x70000868 0xd4 /* Pad control registers */
  299. 0x70003000 0x3e4>; /* Mux registers */
  300. };
  301. /*
  302. * There are two serial driver i.e. 8250 based simple serial
  303. * driver and APB DMA based serial driver for higher baudrate
  304. * and performace. To enable the 8250 based driver, the compatible
  305. * is "nvidia,tegra30-uart", "nvidia,tegra20-uart" and to enable
  306. * the APB DMA based serial driver, the comptible is
  307. * "nvidia,tegra30-hsuart", "nvidia,tegra20-hsuart".
  308. */
  309. uarta: serial@70006000 {
  310. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  311. reg = <0x70006000 0x40>;
  312. reg-shift = <2>;
  313. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  314. clocks = <&tegra_car TEGRA30_CLK_UARTA>;
  315. resets = <&tegra_car 6>;
  316. reset-names = "serial";
  317. dmas = <&apbdma 8>, <&apbdma 8>;
  318. dma-names = "rx", "tx";
  319. status = "disabled";
  320. };
  321. uartb: serial@70006040 {
  322. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  323. reg = <0x70006040 0x40>;
  324. reg-shift = <2>;
  325. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  326. clocks = <&tegra_car TEGRA30_CLK_UARTB>;
  327. resets = <&tegra_car 7>;
  328. reset-names = "serial";
  329. dmas = <&apbdma 9>, <&apbdma 9>;
  330. dma-names = "rx", "tx";
  331. status = "disabled";
  332. };
  333. uartc: serial@70006200 {
  334. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  335. reg = <0x70006200 0x100>;
  336. reg-shift = <2>;
  337. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
  338. clocks = <&tegra_car TEGRA30_CLK_UARTC>;
  339. resets = <&tegra_car 55>;
  340. reset-names = "serial";
  341. dmas = <&apbdma 10>, <&apbdma 10>;
  342. dma-names = "rx", "tx";
  343. status = "disabled";
  344. };
  345. uartd: serial@70006300 {
  346. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  347. reg = <0x70006300 0x100>;
  348. reg-shift = <2>;
  349. interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
  350. clocks = <&tegra_car TEGRA30_CLK_UARTD>;
  351. resets = <&tegra_car 65>;
  352. reset-names = "serial";
  353. dmas = <&apbdma 19>, <&apbdma 19>;
  354. dma-names = "rx", "tx";
  355. status = "disabled";
  356. };
  357. uarte: serial@70006400 {
  358. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  359. reg = <0x70006400 0x100>;
  360. reg-shift = <2>;
  361. interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
  362. clocks = <&tegra_car TEGRA30_CLK_UARTE>;
  363. resets = <&tegra_car 66>;
  364. reset-names = "serial";
  365. dmas = <&apbdma 20>, <&apbdma 20>;
  366. dma-names = "rx", "tx";
  367. status = "disabled";
  368. };
  369. pwm: pwm@7000a000 {
  370. compatible = "nvidia,tegra30-pwm", "nvidia,tegra20-pwm";
  371. reg = <0x7000a000 0x100>;
  372. #pwm-cells = <2>;
  373. clocks = <&tegra_car TEGRA30_CLK_PWM>;
  374. resets = <&tegra_car 17>;
  375. reset-names = "pwm";
  376. status = "disabled";
  377. };
  378. rtc@7000e000 {
  379. compatible = "nvidia,tegra30-rtc", "nvidia,tegra20-rtc";
  380. reg = <0x7000e000 0x100>;
  381. interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
  382. clocks = <&tegra_car TEGRA30_CLK_RTC>;
  383. };
  384. i2c@7000c000 {
  385. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  386. reg = <0x7000c000 0x100>;
  387. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  388. #address-cells = <1>;
  389. #size-cells = <0>;
  390. clocks = <&tegra_car TEGRA30_CLK_I2C1>,
  391. <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
  392. clock-names = "div-clk", "fast-clk";
  393. resets = <&tegra_car 12>;
  394. reset-names = "i2c";
  395. dmas = <&apbdma 21>, <&apbdma 21>;
  396. dma-names = "rx", "tx";
  397. status = "disabled";
  398. };
  399. i2c@7000c400 {
  400. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  401. reg = <0x7000c400 0x100>;
  402. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
  403. #address-cells = <1>;
  404. #size-cells = <0>;
  405. clocks = <&tegra_car TEGRA30_CLK_I2C2>,
  406. <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
  407. clock-names = "div-clk", "fast-clk";
  408. resets = <&tegra_car 54>;
  409. reset-names = "i2c";
  410. dmas = <&apbdma 22>, <&apbdma 22>;
  411. dma-names = "rx", "tx";
  412. status = "disabled";
  413. };
  414. i2c@7000c500 {
  415. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  416. reg = <0x7000c500 0x100>;
  417. interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
  418. #address-cells = <1>;
  419. #size-cells = <0>;
  420. clocks = <&tegra_car TEGRA30_CLK_I2C3>,
  421. <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
  422. clock-names = "div-clk", "fast-clk";
  423. resets = <&tegra_car 67>;
  424. reset-names = "i2c";
  425. dmas = <&apbdma 23>, <&apbdma 23>;
  426. dma-names = "rx", "tx";
  427. status = "disabled";
  428. };
  429. i2c@7000c700 {
  430. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  431. reg = <0x7000c700 0x100>;
  432. interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
  433. #address-cells = <1>;
  434. #size-cells = <0>;
  435. clocks = <&tegra_car TEGRA30_CLK_I2C4>,
  436. <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
  437. resets = <&tegra_car 103>;
  438. reset-names = "i2c";
  439. clock-names = "div-clk", "fast-clk";
  440. dmas = <&apbdma 26>, <&apbdma 26>;
  441. dma-names = "rx", "tx";
  442. status = "disabled";
  443. };
  444. i2c@7000d000 {
  445. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  446. reg = <0x7000d000 0x100>;
  447. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
  448. #address-cells = <1>;
  449. #size-cells = <0>;
  450. clocks = <&tegra_car TEGRA30_CLK_I2C5>,
  451. <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
  452. clock-names = "div-clk", "fast-clk";
  453. resets = <&tegra_car 47>;
  454. reset-names = "i2c";
  455. dmas = <&apbdma 24>, <&apbdma 24>;
  456. dma-names = "rx", "tx";
  457. status = "disabled";
  458. };
  459. spi@7000d400 {
  460. compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
  461. reg = <0x7000d400 0x200>;
  462. interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
  463. #address-cells = <1>;
  464. #size-cells = <0>;
  465. clocks = <&tegra_car TEGRA30_CLK_SBC1>;
  466. resets = <&tegra_car 41>;
  467. reset-names = "spi";
  468. dmas = <&apbdma 15>, <&apbdma 15>;
  469. dma-names = "rx", "tx";
  470. status = "disabled";
  471. };
  472. spi@7000d600 {
  473. compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
  474. reg = <0x7000d600 0x200>;
  475. interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
  476. #address-cells = <1>;
  477. #size-cells = <0>;
  478. clocks = <&tegra_car TEGRA30_CLK_SBC2>;
  479. resets = <&tegra_car 44>;
  480. reset-names = "spi";
  481. dmas = <&apbdma 16>, <&apbdma 16>;
  482. dma-names = "rx", "tx";
  483. status = "disabled";
  484. };
  485. spi@7000d800 {
  486. compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
  487. reg = <0x7000d800 0x200>;
  488. interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
  489. #address-cells = <1>;
  490. #size-cells = <0>;
  491. clocks = <&tegra_car TEGRA30_CLK_SBC3>;
  492. resets = <&tegra_car 46>;
  493. reset-names = "spi";
  494. dmas = <&apbdma 17>, <&apbdma 17>;
  495. dma-names = "rx", "tx";
  496. status = "disabled";
  497. };
  498. spi@7000da00 {
  499. compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
  500. reg = <0x7000da00 0x200>;
  501. interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
  502. #address-cells = <1>;
  503. #size-cells = <0>;
  504. clocks = <&tegra_car TEGRA30_CLK_SBC4>;
  505. resets = <&tegra_car 68>;
  506. reset-names = "spi";
  507. dmas = <&apbdma 18>, <&apbdma 18>;
  508. dma-names = "rx", "tx";
  509. status = "disabled";
  510. };
  511. spi@7000dc00 {
  512. compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
  513. reg = <0x7000dc00 0x200>;
  514. interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
  515. #address-cells = <1>;
  516. #size-cells = <0>;
  517. clocks = <&tegra_car TEGRA30_CLK_SBC5>;
  518. resets = <&tegra_car 104>;
  519. reset-names = "spi";
  520. dmas = <&apbdma 27>, <&apbdma 27>;
  521. dma-names = "rx", "tx";
  522. status = "disabled";
  523. };
  524. spi@7000de00 {
  525. compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink";
  526. reg = <0x7000de00 0x200>;
  527. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  528. #address-cells = <1>;
  529. #size-cells = <0>;
  530. clocks = <&tegra_car TEGRA30_CLK_SBC6>;
  531. resets = <&tegra_car 106>;
  532. reset-names = "spi";
  533. dmas = <&apbdma 28>, <&apbdma 28>;
  534. dma-names = "rx", "tx";
  535. status = "disabled";
  536. };
  537. kbc@7000e200 {
  538. compatible = "nvidia,tegra30-kbc", "nvidia,tegra20-kbc";
  539. reg = <0x7000e200 0x100>;
  540. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  541. clocks = <&tegra_car TEGRA30_CLK_KBC>;
  542. resets = <&tegra_car 36>;
  543. reset-names = "kbc";
  544. status = "disabled";
  545. };
  546. pmc@7000e400 {
  547. compatible = "nvidia,tegra30-pmc";
  548. reg = <0x7000e400 0x400>;
  549. clocks = <&tegra_car TEGRA30_CLK_PCLK>, <&clk32k_in>;
  550. clock-names = "pclk", "clk32k_in";
  551. };
  552. memory-controller@7000f000 {
  553. compatible = "nvidia,tegra30-mc";
  554. reg = <0x7000f000 0x010
  555. 0x7000f03c 0x1b4
  556. 0x7000f200 0x028
  557. 0x7000f284 0x17c>;
  558. interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
  559. };
  560. iommu@7000f010 {
  561. compatible = "nvidia,tegra30-smmu";
  562. reg = <0x7000f010 0x02c
  563. 0x7000f1f0 0x010
  564. 0x7000f228 0x05c>;
  565. nvidia,#asids = <4>; /* # of ASIDs */
  566. dma-window = <0 0x40000000>; /* IOVA start & length */
  567. nvidia,ahb = <&ahb>;
  568. };
  569. fuse@7000f800 {
  570. compatible = "nvidia,tegra30-efuse";
  571. reg = <0x7000f800 0x400>;
  572. clocks = <&tegra_car TEGRA30_CLK_FUSE>;
  573. clock-names = "fuse";
  574. resets = <&tegra_car 39>;
  575. reset-names = "fuse";
  576. };
  577. ahub@70080000 {
  578. compatible = "nvidia,tegra30-ahub";
  579. reg = <0x70080000 0x200
  580. 0x70080200 0x100>;
  581. interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
  582. clocks = <&tegra_car TEGRA30_CLK_D_AUDIO>,
  583. <&tegra_car TEGRA30_CLK_APBIF>;
  584. clock-names = "d_audio", "apbif";
  585. resets = <&tegra_car 106>, /* d_audio */
  586. <&tegra_car 107>, /* apbif */
  587. <&tegra_car 30>, /* i2s0 */
  588. <&tegra_car 11>, /* i2s1 */
  589. <&tegra_car 18>, /* i2s2 */
  590. <&tegra_car 101>, /* i2s3 */
  591. <&tegra_car 102>, /* i2s4 */
  592. <&tegra_car 108>, /* dam0 */
  593. <&tegra_car 109>, /* dam1 */
  594. <&tegra_car 110>, /* dam2 */
  595. <&tegra_car 10>; /* spdif */
  596. reset-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2",
  597. "i2s3", "i2s4", "dam0", "dam1", "dam2",
  598. "spdif";
  599. dmas = <&apbdma 1>, <&apbdma 1>,
  600. <&apbdma 2>, <&apbdma 2>,
  601. <&apbdma 3>, <&apbdma 3>,
  602. <&apbdma 4>, <&apbdma 4>;
  603. dma-names = "rx0", "tx0", "rx1", "tx1", "rx2", "tx2",
  604. "rx3", "tx3";
  605. ranges;
  606. #address-cells = <1>;
  607. #size-cells = <1>;
  608. tegra_i2s0: i2s@70080300 {
  609. compatible = "nvidia,tegra30-i2s";
  610. reg = <0x70080300 0x100>;
  611. nvidia,ahub-cif-ids = <4 4>;
  612. clocks = <&tegra_car TEGRA30_CLK_I2S0>;
  613. resets = <&tegra_car 30>;
  614. reset-names = "i2s";
  615. status = "disabled";
  616. };
  617. tegra_i2s1: i2s@70080400 {
  618. compatible = "nvidia,tegra30-i2s";
  619. reg = <0x70080400 0x100>;
  620. nvidia,ahub-cif-ids = <5 5>;
  621. clocks = <&tegra_car TEGRA30_CLK_I2S1>;
  622. resets = <&tegra_car 11>;
  623. reset-names = "i2s";
  624. status = "disabled";
  625. };
  626. tegra_i2s2: i2s@70080500 {
  627. compatible = "nvidia,tegra30-i2s";
  628. reg = <0x70080500 0x100>;
  629. nvidia,ahub-cif-ids = <6 6>;
  630. clocks = <&tegra_car TEGRA30_CLK_I2S2>;
  631. resets = <&tegra_car 18>;
  632. reset-names = "i2s";
  633. status = "disabled";
  634. };
  635. tegra_i2s3: i2s@70080600 {
  636. compatible = "nvidia,tegra30-i2s";
  637. reg = <0x70080600 0x100>;
  638. nvidia,ahub-cif-ids = <7 7>;
  639. clocks = <&tegra_car TEGRA30_CLK_I2S3>;
  640. resets = <&tegra_car 101>;
  641. reset-names = "i2s";
  642. status = "disabled";
  643. };
  644. tegra_i2s4: i2s@70080700 {
  645. compatible = "nvidia,tegra30-i2s";
  646. reg = <0x70080700 0x100>;
  647. nvidia,ahub-cif-ids = <8 8>;
  648. clocks = <&tegra_car TEGRA30_CLK_I2S4>;
  649. resets = <&tegra_car 102>;
  650. reset-names = "i2s";
  651. status = "disabled";
  652. };
  653. };
  654. sdhci@78000000 {
  655. compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
  656. reg = <0x78000000 0x200>;
  657. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  658. clocks = <&tegra_car TEGRA30_CLK_SDMMC1>;
  659. resets = <&tegra_car 14>;
  660. reset-names = "sdhci";
  661. status = "disabled";
  662. };
  663. sdhci@78000200 {
  664. compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
  665. reg = <0x78000200 0x200>;
  666. interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
  667. clocks = <&tegra_car TEGRA30_CLK_SDMMC2>;
  668. resets = <&tegra_car 9>;
  669. reset-names = "sdhci";
  670. status = "disabled";
  671. };
  672. sdhci@78000400 {
  673. compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
  674. reg = <0x78000400 0x200>;
  675. interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
  676. clocks = <&tegra_car TEGRA30_CLK_SDMMC3>;
  677. resets = <&tegra_car 69>;
  678. reset-names = "sdhci";
  679. status = "disabled";
  680. };
  681. sdhci@78000600 {
  682. compatible = "nvidia,tegra30-sdhci", "nvidia,tegra20-sdhci";
  683. reg = <0x78000600 0x200>;
  684. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
  685. clocks = <&tegra_car TEGRA30_CLK_SDMMC4>;
  686. resets = <&tegra_car 15>;
  687. reset-names = "sdhci";
  688. status = "disabled";
  689. };
  690. usb@7d000000 {
  691. compatible = "nvidia,tegra30-ehci", "usb-ehci";
  692. reg = <0x7d000000 0x4000>;
  693. interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
  694. phy_type = "utmi";
  695. clocks = <&tegra_car TEGRA30_CLK_USBD>;
  696. resets = <&tegra_car 22>;
  697. reset-names = "usb";
  698. nvidia,needs-double-reset;
  699. nvidia,phy = <&phy1>;
  700. status = "disabled";
  701. };
  702. phy1: usb-phy@7d000000 {
  703. compatible = "nvidia,tegra30-usb-phy";
  704. reg = <0x7d000000 0x4000 0x7d000000 0x4000>;
  705. phy_type = "utmi";
  706. clocks = <&tegra_car TEGRA30_CLK_USBD>,
  707. <&tegra_car TEGRA30_CLK_PLL_U>,
  708. <&tegra_car TEGRA30_CLK_USBD>;
  709. clock-names = "reg", "pll_u", "utmi-pads";
  710. resets = <&tegra_car 22>, <&tegra_car 22>;
  711. reset-names = "usb", "utmi-pads";
  712. nvidia,hssync-start-delay = <9>;
  713. nvidia,idle-wait-delay = <17>;
  714. nvidia,elastic-limit = <16>;
  715. nvidia,term-range-adj = <6>;
  716. nvidia,xcvr-setup = <51>;
  717. nvidia.xcvr-setup-use-fuses;
  718. nvidia,xcvr-lsfslew = <1>;
  719. nvidia,xcvr-lsrslew = <1>;
  720. nvidia,xcvr-hsslew = <32>;
  721. nvidia,hssquelch-level = <2>;
  722. nvidia,hsdiscon-level = <5>;
  723. nvidia,has-utmi-pad-registers;
  724. status = "disabled";
  725. };
  726. usb@7d004000 {
  727. compatible = "nvidia,tegra30-ehci", "usb-ehci";
  728. reg = <0x7d004000 0x4000>;
  729. interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
  730. phy_type = "utmi";
  731. clocks = <&tegra_car TEGRA30_CLK_USB2>;
  732. resets = <&tegra_car 58>;
  733. reset-names = "usb";
  734. nvidia,phy = <&phy2>;
  735. status = "disabled";
  736. };
  737. phy2: usb-phy@7d004000 {
  738. compatible = "nvidia,tegra30-usb-phy";
  739. reg = <0x7d004000 0x4000 0x7d000000 0x4000>;
  740. phy_type = "utmi";
  741. clocks = <&tegra_car TEGRA30_CLK_USB2>,
  742. <&tegra_car TEGRA30_CLK_PLL_U>,
  743. <&tegra_car TEGRA30_CLK_USBD>;
  744. clock-names = "reg", "pll_u", "utmi-pads";
  745. resets = <&tegra_car 58>, <&tegra_car 22>;
  746. reset-names = "usb", "utmi-pads";
  747. nvidia,hssync-start-delay = <9>;
  748. nvidia,idle-wait-delay = <17>;
  749. nvidia,elastic-limit = <16>;
  750. nvidia,term-range-adj = <6>;
  751. nvidia,xcvr-setup = <51>;
  752. nvidia.xcvr-setup-use-fuses;
  753. nvidia,xcvr-lsfslew = <2>;
  754. nvidia,xcvr-lsrslew = <2>;
  755. nvidia,xcvr-hsslew = <32>;
  756. nvidia,hssquelch-level = <2>;
  757. nvidia,hsdiscon-level = <5>;
  758. status = "disabled";
  759. };
  760. usb@7d008000 {
  761. compatible = "nvidia,tegra30-ehci", "usb-ehci";
  762. reg = <0x7d008000 0x4000>;
  763. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  764. phy_type = "utmi";
  765. clocks = <&tegra_car TEGRA30_CLK_USB3>;
  766. resets = <&tegra_car 59>;
  767. reset-names = "usb";
  768. nvidia,phy = <&phy3>;
  769. status = "disabled";
  770. };
  771. phy3: usb-phy@7d008000 {
  772. compatible = "nvidia,tegra30-usb-phy";
  773. reg = <0x7d008000 0x4000 0x7d000000 0x4000>;
  774. phy_type = "utmi";
  775. clocks = <&tegra_car TEGRA30_CLK_USB3>,
  776. <&tegra_car TEGRA30_CLK_PLL_U>,
  777. <&tegra_car TEGRA30_CLK_USBD>;
  778. clock-names = "reg", "pll_u", "utmi-pads";
  779. resets = <&tegra_car 59>, <&tegra_car 22>;
  780. reset-names = "usb", "utmi-pads";
  781. nvidia,hssync-start-delay = <0>;
  782. nvidia,idle-wait-delay = <17>;
  783. nvidia,elastic-limit = <16>;
  784. nvidia,term-range-adj = <6>;
  785. nvidia,xcvr-setup = <51>;
  786. nvidia.xcvr-setup-use-fuses;
  787. nvidia,xcvr-lsfslew = <2>;
  788. nvidia,xcvr-lsrslew = <2>;
  789. nvidia,xcvr-hsslew = <32>;
  790. nvidia,hssquelch-level = <2>;
  791. nvidia,hsdiscon-level = <5>;
  792. status = "disabled";
  793. };
  794. cpus {
  795. #address-cells = <1>;
  796. #size-cells = <0>;
  797. cpu@0 {
  798. device_type = "cpu";
  799. compatible = "arm,cortex-a9";
  800. reg = <0>;
  801. };
  802. cpu@1 {
  803. device_type = "cpu";
  804. compatible = "arm,cortex-a9";
  805. reg = <1>;
  806. };
  807. cpu@2 {
  808. device_type = "cpu";
  809. compatible = "arm,cortex-a9";
  810. reg = <2>;
  811. };
  812. cpu@3 {
  813. device_type = "cpu";
  814. compatible = "arm,cortex-a9";
  815. reg = <3>;
  816. };
  817. };
  818. pmu {
  819. compatible = "arm,cortex-a9-pmu";
  820. interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
  821. <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
  822. <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
  823. <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
  824. };
  825. };