tegra30.dtsi 26 KB

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