tegra124.dtsi 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895
  1. #include <dt-bindings/clock/tegra124-car.h>
  2. #include <dt-bindings/gpio/tegra-gpio.h>
  3. #include <dt-bindings/pinctrl/pinctrl-tegra.h>
  4. #include <dt-bindings/pinctrl/pinctrl-tegra-xusb.h>
  5. #include <dt-bindings/interrupt-controller/arm-gic.h>
  6. #include "skeleton.dtsi"
  7. / {
  8. compatible = "nvidia,tegra124";
  9. interrupt-parent = <&gic>;
  10. #address-cells = <2>;
  11. #size-cells = <2>;
  12. pcie-controller@0,01003000 {
  13. compatible = "nvidia,tegra124-pcie";
  14. device_type = "pci";
  15. reg = <0x0 0x01003000 0x0 0x00000800 /* PADS registers */
  16. 0x0 0x01003800 0x0 0x00000800 /* AFI registers */
  17. 0x0 0x02000000 0x0 0x10000000>; /* configuration space */
  18. reg-names = "pads", "afi", "cs";
  19. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
  20. <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
  21. interrupt-names = "intr", "msi";
  22. #interrupt-cells = <1>;
  23. interrupt-map-mask = <0 0 0 0>;
  24. interrupt-map = <0 0 0 0 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  25. bus-range = <0x00 0xff>;
  26. #address-cells = <3>;
  27. #size-cells = <2>;
  28. ranges = <0x82000000 0 0x01000000 0x0 0x01000000 0 0x00001000 /* port 0 configuration space */
  29. 0x82000000 0 0x01001000 0x0 0x01001000 0 0x00001000 /* port 1 configuration space */
  30. 0x81000000 0 0x0 0x0 0x12000000 0 0x00010000 /* downstream I/O (64 KiB) */
  31. 0x82000000 0 0x13000000 0x0 0x13000000 0 0x0d000000 /* non-prefetchable memory (208 MiB) */
  32. 0xc2000000 0 0x20000000 0x0 0x20000000 0 0x20000000>; /* prefetchable memory (512 MiB) */
  33. clocks = <&tegra_car TEGRA124_CLK_PCIE>,
  34. <&tegra_car TEGRA124_CLK_AFI>,
  35. <&tegra_car TEGRA124_CLK_PLL_E>,
  36. <&tegra_car TEGRA124_CLK_CML0>;
  37. clock-names = "pex", "afi", "pll_e", "cml";
  38. resets = <&tegra_car 70>,
  39. <&tegra_car 72>,
  40. <&tegra_car 74>;
  41. reset-names = "pex", "afi", "pcie_x";
  42. status = "disabled";
  43. phys = <&padctl TEGRA_XUSB_PADCTL_PCIE>;
  44. phy-names = "pcie";
  45. pci@1,0 {
  46. device_type = "pci";
  47. assigned-addresses = <0x82000800 0 0x01000000 0 0x1000>;
  48. reg = <0x000800 0 0 0 0>;
  49. status = "disabled";
  50. #address-cells = <3>;
  51. #size-cells = <2>;
  52. ranges;
  53. nvidia,num-lanes = <2>;
  54. };
  55. pci@2,0 {
  56. device_type = "pci";
  57. assigned-addresses = <0x82001000 0 0x01001000 0 0x1000>;
  58. reg = <0x001000 0 0 0 0>;
  59. status = "disabled";
  60. #address-cells = <3>;
  61. #size-cells = <2>;
  62. ranges;
  63. nvidia,num-lanes = <1>;
  64. };
  65. };
  66. host1x@0,50000000 {
  67. compatible = "nvidia,tegra124-host1x", "simple-bus";
  68. reg = <0x0 0x50000000 0x0 0x00034000>;
  69. interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */
  70. <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* general */
  71. clocks = <&tegra_car TEGRA124_CLK_HOST1X>;
  72. resets = <&tegra_car 28>;
  73. reset-names = "host1x";
  74. #address-cells = <2>;
  75. #size-cells = <2>;
  76. ranges = <0 0x54000000 0 0x54000000 0 0x01000000>;
  77. dc@0,54200000 {
  78. compatible = "nvidia,tegra124-dc";
  79. reg = <0x0 0x54200000 0x0 0x00040000>;
  80. interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
  81. clocks = <&tegra_car TEGRA124_CLK_DISP1>,
  82. <&tegra_car TEGRA124_CLK_PLL_P>;
  83. clock-names = "dc", "parent";
  84. resets = <&tegra_car 27>;
  85. reset-names = "dc";
  86. nvidia,head = <0>;
  87. };
  88. dc@0,54240000 {
  89. compatible = "nvidia,tegra124-dc";
  90. reg = <0x0 0x54240000 0x0 0x00040000>;
  91. interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
  92. clocks = <&tegra_car TEGRA124_CLK_DISP2>,
  93. <&tegra_car TEGRA124_CLK_PLL_P>;
  94. clock-names = "dc", "parent";
  95. resets = <&tegra_car 26>;
  96. reset-names = "dc";
  97. nvidia,head = <1>;
  98. };
  99. hdmi@0,54280000 {
  100. compatible = "nvidia,tegra124-hdmi";
  101. reg = <0x0 0x54280000 0x0 0x00040000>;
  102. interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
  103. clocks = <&tegra_car TEGRA124_CLK_HDMI>,
  104. <&tegra_car TEGRA124_CLK_PLL_D2_OUT0>;
  105. clock-names = "hdmi", "parent";
  106. resets = <&tegra_car 51>;
  107. reset-names = "hdmi";
  108. status = "disabled";
  109. };
  110. sor@0,54540000 {
  111. compatible = "nvidia,tegra124-sor";
  112. reg = <0x0 0x54540000 0x0 0x00040000>;
  113. interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
  114. clocks = <&tegra_car TEGRA124_CLK_SOR0>,
  115. <&tegra_car TEGRA124_CLK_PLL_D_OUT0>,
  116. <&tegra_car TEGRA124_CLK_PLL_DP>,
  117. <&tegra_car TEGRA124_CLK_CLK_M>;
  118. clock-names = "sor", "parent", "dp", "safe";
  119. resets = <&tegra_car 182>;
  120. reset-names = "sor";
  121. status = "disabled";
  122. };
  123. dpaux: dpaux@0,545c0000 {
  124. compatible = "nvidia,tegra124-dpaux";
  125. reg = <0x0 0x545c0000 0x0 0x00040000>;
  126. interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
  127. clocks = <&tegra_car TEGRA124_CLK_DPAUX>,
  128. <&tegra_car TEGRA124_CLK_PLL_DP>;
  129. clock-names = "dpaux", "parent";
  130. resets = <&tegra_car 181>;
  131. reset-names = "dpaux";
  132. status = "disabled";
  133. };
  134. };
  135. gic: interrupt-controller@0,50041000 {
  136. compatible = "arm,cortex-a15-gic";
  137. #interrupt-cells = <3>;
  138. interrupt-controller;
  139. reg = <0x0 0x50041000 0x0 0x1000>,
  140. <0x0 0x50042000 0x0 0x1000>,
  141. <0x0 0x50044000 0x0 0x2000>,
  142. <0x0 0x50046000 0x0 0x2000>;
  143. interrupts = <GIC_PPI 9
  144. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  145. };
  146. gpu@0,57000000 {
  147. compatible = "nvidia,gk20a";
  148. reg = <0x0 0x57000000 0x0 0x01000000>,
  149. <0x0 0x58000000 0x0 0x01000000>;
  150. interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
  151. <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
  152. interrupt-names = "stall", "nonstall";
  153. clocks = <&tegra_car TEGRA124_CLK_GPU>,
  154. <&tegra_car TEGRA124_CLK_PLL_P_OUT5>;
  155. clock-names = "gpu", "pwr";
  156. resets = <&tegra_car 184>;
  157. reset-names = "gpu";
  158. status = "disabled";
  159. };
  160. timer@0,60005000 {
  161. compatible = "nvidia,tegra124-timer", "nvidia,tegra20-timer";
  162. reg = <0x0 0x60005000 0x0 0x400>;
  163. interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
  164. <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
  165. <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
  166. <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
  167. <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
  168. <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
  169. clocks = <&tegra_car TEGRA124_CLK_TIMER>;
  170. };
  171. tegra_car: clock@0,60006000 {
  172. compatible = "nvidia,tegra124-car";
  173. reg = <0x0 0x60006000 0x0 0x1000>;
  174. #clock-cells = <1>;
  175. #reset-cells = <1>;
  176. };
  177. flow-controller@0,60007000 {
  178. compatible = "nvidia,tegra124-flowctrl";
  179. reg = <0x0 0x60007000 0x0 0x1000>;
  180. };
  181. gpio: gpio@0,6000d000 {
  182. compatible = "nvidia,tegra124-gpio", "nvidia,tegra30-gpio";
  183. reg = <0x0 0x6000d000 0x0 0x1000>;
  184. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
  185. <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
  186. <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
  187. <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
  188. <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
  189. <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
  190. <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
  191. <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
  192. #gpio-cells = <2>;
  193. gpio-controller;
  194. #interrupt-cells = <2>;
  195. interrupt-controller;
  196. };
  197. apbdma: dma@0,60020000 {
  198. compatible = "nvidia,tegra124-apbdma", "nvidia,tegra148-apbdma";
  199. reg = <0x0 0x60020000 0x0 0x1400>;
  200. interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
  201. <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
  202. <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
  203. <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
  204. <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
  205. <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
  206. <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
  207. <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
  208. <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
  209. <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
  210. <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
  211. <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
  212. <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
  213. <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
  214. <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
  215. <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
  216. <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
  217. <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
  218. <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
  219. <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
  220. <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
  221. <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
  222. <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
  223. <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
  224. <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
  225. <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
  226. <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
  227. <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
  228. <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
  229. <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
  230. <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
  231. <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
  232. clocks = <&tegra_car TEGRA124_CLK_APBDMA>;
  233. resets = <&tegra_car 34>;
  234. reset-names = "dma";
  235. #dma-cells = <1>;
  236. };
  237. apbmisc@0,70000800 {
  238. compatible = "nvidia,tegra124-apbmisc", "nvidia,tegra20-apbmisc";
  239. reg = <0x0 0x70000800 0x0 0x64>, /* Chip revision */
  240. <0x0 0x7000E864 0x0 0x04>; /* Strapping options */
  241. };
  242. pinmux: pinmux@0,70000868 {
  243. compatible = "nvidia,tegra124-pinmux";
  244. reg = <0x0 0x70000868 0x0 0x164>, /* Pad control registers */
  245. <0x0 0x70003000 0x0 0x434>; /* Mux registers */
  246. };
  247. /*
  248. * There are two serial driver i.e. 8250 based simple serial
  249. * driver and APB DMA based serial driver for higher baudrate
  250. * and performace. To enable the 8250 based driver, the compatible
  251. * is "nvidia,tegra124-uart", "nvidia,tegra20-uart" and to enable
  252. * the APB DMA based serial driver, the comptible is
  253. * "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart".
  254. */
  255. uarta: serial@0,70006000 {
  256. compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart";
  257. reg = <0x0 0x70006000 0x0 0x40>;
  258. reg-shift = <2>;
  259. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  260. clocks = <&tegra_car TEGRA124_CLK_UARTA>;
  261. resets = <&tegra_car 6>;
  262. reset-names = "serial";
  263. dmas = <&apbdma 8>, <&apbdma 8>;
  264. dma-names = "rx", "tx";
  265. status = "disabled";
  266. };
  267. uartb: serial@0,70006040 {
  268. compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart";
  269. reg = <0x0 0x70006040 0x0 0x40>;
  270. reg-shift = <2>;
  271. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  272. clocks = <&tegra_car TEGRA124_CLK_UARTB>;
  273. resets = <&tegra_car 7>;
  274. reset-names = "serial";
  275. dmas = <&apbdma 9>, <&apbdma 9>;
  276. dma-names = "rx", "tx";
  277. status = "disabled";
  278. };
  279. uartc: serial@0,70006200 {
  280. compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart";
  281. reg = <0x0 0x70006200 0x0 0x40>;
  282. reg-shift = <2>;
  283. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
  284. clocks = <&tegra_car TEGRA124_CLK_UARTC>;
  285. resets = <&tegra_car 55>;
  286. reset-names = "serial";
  287. dmas = <&apbdma 10>, <&apbdma 10>;
  288. dma-names = "rx", "tx";
  289. status = "disabled";
  290. };
  291. uartd: serial@0,70006300 {
  292. compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart";
  293. reg = <0x0 0x70006300 0x0 0x40>;
  294. reg-shift = <2>;
  295. interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
  296. clocks = <&tegra_car TEGRA124_CLK_UARTD>;
  297. resets = <&tegra_car 65>;
  298. reset-names = "serial";
  299. dmas = <&apbdma 19>, <&apbdma 19>;
  300. dma-names = "rx", "tx";
  301. status = "disabled";
  302. };
  303. pwm: pwm@0,7000a000 {
  304. compatible = "nvidia,tegra124-pwm", "nvidia,tegra20-pwm";
  305. reg = <0x0 0x7000a000 0x0 0x100>;
  306. #pwm-cells = <2>;
  307. clocks = <&tegra_car TEGRA124_CLK_PWM>;
  308. resets = <&tegra_car 17>;
  309. reset-names = "pwm";
  310. status = "disabled";
  311. };
  312. i2c@0,7000c000 {
  313. compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
  314. reg = <0x0 0x7000c000 0x0 0x100>;
  315. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  316. #address-cells = <1>;
  317. #size-cells = <0>;
  318. clocks = <&tegra_car TEGRA124_CLK_I2C1>;
  319. clock-names = "div-clk";
  320. resets = <&tegra_car 12>;
  321. reset-names = "i2c";
  322. dmas = <&apbdma 21>, <&apbdma 21>;
  323. dma-names = "rx", "tx";
  324. status = "disabled";
  325. };
  326. i2c@0,7000c400 {
  327. compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
  328. reg = <0x0 0x7000c400 0x0 0x100>;
  329. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
  330. #address-cells = <1>;
  331. #size-cells = <0>;
  332. clocks = <&tegra_car TEGRA124_CLK_I2C2>;
  333. clock-names = "div-clk";
  334. resets = <&tegra_car 54>;
  335. reset-names = "i2c";
  336. dmas = <&apbdma 22>, <&apbdma 22>;
  337. dma-names = "rx", "tx";
  338. status = "disabled";
  339. };
  340. i2c@0,7000c500 {
  341. compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
  342. reg = <0x0 0x7000c500 0x0 0x100>;
  343. interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
  344. #address-cells = <1>;
  345. #size-cells = <0>;
  346. clocks = <&tegra_car TEGRA124_CLK_I2C3>;
  347. clock-names = "div-clk";
  348. resets = <&tegra_car 67>;
  349. reset-names = "i2c";
  350. dmas = <&apbdma 23>, <&apbdma 23>;
  351. dma-names = "rx", "tx";
  352. status = "disabled";
  353. };
  354. i2c@0,7000c700 {
  355. compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
  356. reg = <0x0 0x7000c700 0x0 0x100>;
  357. interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
  358. #address-cells = <1>;
  359. #size-cells = <0>;
  360. clocks = <&tegra_car TEGRA124_CLK_I2C4>;
  361. clock-names = "div-clk";
  362. resets = <&tegra_car 103>;
  363. reset-names = "i2c";
  364. dmas = <&apbdma 26>, <&apbdma 26>;
  365. dma-names = "rx", "tx";
  366. status = "disabled";
  367. };
  368. i2c@0,7000d000 {
  369. compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
  370. reg = <0x0 0x7000d000 0x0 0x100>;
  371. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
  372. #address-cells = <1>;
  373. #size-cells = <0>;
  374. clocks = <&tegra_car TEGRA124_CLK_I2C5>;
  375. clock-names = "div-clk";
  376. resets = <&tegra_car 47>;
  377. reset-names = "i2c";
  378. dmas = <&apbdma 24>, <&apbdma 24>;
  379. dma-names = "rx", "tx";
  380. status = "disabled";
  381. };
  382. i2c@0,7000d100 {
  383. compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
  384. reg = <0x0 0x7000d100 0x0 0x100>;
  385. interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
  386. #address-cells = <1>;
  387. #size-cells = <0>;
  388. clocks = <&tegra_car TEGRA124_CLK_I2C6>;
  389. clock-names = "div-clk";
  390. resets = <&tegra_car 166>;
  391. reset-names = "i2c";
  392. dmas = <&apbdma 30>, <&apbdma 30>;
  393. dma-names = "rx", "tx";
  394. status = "disabled";
  395. };
  396. spi@0,7000d400 {
  397. compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
  398. reg = <0x0 0x7000d400 0x0 0x200>;
  399. interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
  400. #address-cells = <1>;
  401. #size-cells = <0>;
  402. clocks = <&tegra_car TEGRA124_CLK_SBC1>;
  403. clock-names = "spi";
  404. resets = <&tegra_car 41>;
  405. reset-names = "spi";
  406. dmas = <&apbdma 15>, <&apbdma 15>;
  407. dma-names = "rx", "tx";
  408. status = "disabled";
  409. };
  410. spi@0,7000d600 {
  411. compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
  412. reg = <0x0 0x7000d600 0x0 0x200>;
  413. interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
  414. #address-cells = <1>;
  415. #size-cells = <0>;
  416. clocks = <&tegra_car TEGRA124_CLK_SBC2>;
  417. clock-names = "spi";
  418. resets = <&tegra_car 44>;
  419. reset-names = "spi";
  420. dmas = <&apbdma 16>, <&apbdma 16>;
  421. dma-names = "rx", "tx";
  422. status = "disabled";
  423. };
  424. spi@0,7000d800 {
  425. compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
  426. reg = <0x0 0x7000d800 0x0 0x200>;
  427. interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
  428. #address-cells = <1>;
  429. #size-cells = <0>;
  430. clocks = <&tegra_car TEGRA124_CLK_SBC3>;
  431. clock-names = "spi";
  432. resets = <&tegra_car 46>;
  433. reset-names = "spi";
  434. dmas = <&apbdma 17>, <&apbdma 17>;
  435. dma-names = "rx", "tx";
  436. status = "disabled";
  437. };
  438. spi@0,7000da00 {
  439. compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
  440. reg = <0x0 0x7000da00 0x0 0x200>;
  441. interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
  442. #address-cells = <1>;
  443. #size-cells = <0>;
  444. clocks = <&tegra_car TEGRA124_CLK_SBC4>;
  445. clock-names = "spi";
  446. resets = <&tegra_car 68>;
  447. reset-names = "spi";
  448. dmas = <&apbdma 18>, <&apbdma 18>;
  449. dma-names = "rx", "tx";
  450. status = "disabled";
  451. };
  452. spi@0,7000dc00 {
  453. compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
  454. reg = <0x0 0x7000dc00 0x0 0x200>;
  455. interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
  456. #address-cells = <1>;
  457. #size-cells = <0>;
  458. clocks = <&tegra_car TEGRA124_CLK_SBC5>;
  459. clock-names = "spi";
  460. resets = <&tegra_car 104>;
  461. reset-names = "spi";
  462. dmas = <&apbdma 27>, <&apbdma 27>;
  463. dma-names = "rx", "tx";
  464. status = "disabled";
  465. };
  466. spi@0,7000de00 {
  467. compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
  468. reg = <0x0 0x7000de00 0x0 0x200>;
  469. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  470. #address-cells = <1>;
  471. #size-cells = <0>;
  472. clocks = <&tegra_car TEGRA124_CLK_SBC6>;
  473. clock-names = "spi";
  474. resets = <&tegra_car 105>;
  475. reset-names = "spi";
  476. dmas = <&apbdma 28>, <&apbdma 28>;
  477. dma-names = "rx", "tx";
  478. status = "disabled";
  479. };
  480. rtc@0,7000e000 {
  481. compatible = "nvidia,tegra124-rtc", "nvidia,tegra20-rtc";
  482. reg = <0x0 0x7000e000 0x0 0x100>;
  483. interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
  484. clocks = <&tegra_car TEGRA124_CLK_RTC>;
  485. };
  486. pmc@0,7000e400 {
  487. compatible = "nvidia,tegra124-pmc";
  488. reg = <0x0 0x7000e400 0x0 0x400>;
  489. clocks = <&tegra_car TEGRA124_CLK_PCLK>, <&clk32k_in>;
  490. clock-names = "pclk", "clk32k_in";
  491. };
  492. fuse@0,7000f800 {
  493. compatible = "nvidia,tegra124-efuse";
  494. reg = <0x0 0x7000f800 0x0 0x400>;
  495. clocks = <&tegra_car TEGRA124_CLK_FUSE>;
  496. clock-names = "fuse";
  497. resets = <&tegra_car 39>;
  498. reset-names = "fuse";
  499. };
  500. sata@0,70020000 {
  501. compatible = "nvidia,tegra124-ahci";
  502. reg = <0x0 0x70027000 0x0 0x2000>, /* AHCI */
  503. <0x0 0x70020000 0x0 0x7000>; /* SATA */
  504. interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
  505. clocks = <&tegra_car TEGRA124_CLK_SATA>,
  506. <&tegra_car TEGRA124_CLK_SATA_OOB>,
  507. <&tegra_car TEGRA124_CLK_CML1>,
  508. <&tegra_car TEGRA124_CLK_PLL_E>;
  509. clock-names = "sata", "sata-oob", "cml1", "pll_e";
  510. resets = <&tegra_car 124>,
  511. <&tegra_car 123>,
  512. <&tegra_car 129>;
  513. reset-names = "sata", "sata-oob", "sata-cold";
  514. phys = <&padctl TEGRA_XUSB_PADCTL_SATA>;
  515. phy-names = "sata-phy";
  516. status = "disabled";
  517. };
  518. hda@0,70030000 {
  519. compatible = "nvidia,tegra124-hda", "nvidia,tegra30-hda";
  520. reg = <0x0 0x70030000 0x0 0x10000>;
  521. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
  522. clocks = <&tegra_car TEGRA124_CLK_HDA>,
  523. <&tegra_car TEGRA124_CLK_HDA2HDMI>,
  524. <&tegra_car TEGRA124_CLK_HDA2CODEC_2X>;
  525. clock-names = "hda", "hda2hdmi", "hdacodec_2x";
  526. resets = <&tegra_car 125>, /* hda */
  527. <&tegra_car 128>, /* hda2hdmi */
  528. <&tegra_car 111>; /* hda2codec_2x */
  529. reset-names = "hda", "hda2hdmi", "hdacodec_2x";
  530. status = "disabled";
  531. };
  532. padctl: padctl@0,7009f000 {
  533. compatible = "nvidia,tegra124-xusb-padctl";
  534. reg = <0x0 0x7009f000 0x0 0x1000>;
  535. resets = <&tegra_car 142>;
  536. reset-names = "padctl";
  537. #phy-cells = <1>;
  538. };
  539. sdhci@0,700b0000 {
  540. compatible = "nvidia,tegra124-sdhci";
  541. reg = <0x0 0x700b0000 0x0 0x200>;
  542. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  543. clocks = <&tegra_car TEGRA124_CLK_SDMMC1>;
  544. resets = <&tegra_car 14>;
  545. reset-names = "sdhci";
  546. status = "disabled";
  547. };
  548. sdhci@0,700b0200 {
  549. compatible = "nvidia,tegra124-sdhci";
  550. reg = <0x0 0x700b0200 0x0 0x200>;
  551. interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
  552. clocks = <&tegra_car TEGRA124_CLK_SDMMC2>;
  553. resets = <&tegra_car 9>;
  554. reset-names = "sdhci";
  555. status = "disabled";
  556. };
  557. sdhci@0,700b0400 {
  558. compatible = "nvidia,tegra124-sdhci";
  559. reg = <0x0 0x700b0400 0x0 0x200>;
  560. interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
  561. clocks = <&tegra_car TEGRA124_CLK_SDMMC3>;
  562. resets = <&tegra_car 69>;
  563. reset-names = "sdhci";
  564. status = "disabled";
  565. };
  566. sdhci@0,700b0600 {
  567. compatible = "nvidia,tegra124-sdhci";
  568. reg = <0x0 0x700b0600 0x0 0x200>;
  569. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
  570. clocks = <&tegra_car TEGRA124_CLK_SDMMC4>;
  571. resets = <&tegra_car 15>;
  572. reset-names = "sdhci";
  573. status = "disabled";
  574. };
  575. ahub@0,70300000 {
  576. compatible = "nvidia,tegra124-ahub";
  577. reg = <0x0 0x70300000 0x0 0x200>,
  578. <0x0 0x70300800 0x0 0x800>,
  579. <0x0 0x70300200 0x0 0x600>;
  580. interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
  581. clocks = <&tegra_car TEGRA124_CLK_D_AUDIO>,
  582. <&tegra_car TEGRA124_CLK_APBIF>;
  583. clock-names = "d_audio", "apbif";
  584. resets = <&tegra_car 106>, /* d_audio */
  585. <&tegra_car 107>, /* apbif */
  586. <&tegra_car 30>, /* i2s0 */
  587. <&tegra_car 11>, /* i2s1 */
  588. <&tegra_car 18>, /* i2s2 */
  589. <&tegra_car 101>, /* i2s3 */
  590. <&tegra_car 102>, /* i2s4 */
  591. <&tegra_car 108>, /* dam0 */
  592. <&tegra_car 109>, /* dam1 */
  593. <&tegra_car 110>, /* dam2 */
  594. <&tegra_car 10>, /* spdif */
  595. <&tegra_car 153>, /* amx */
  596. <&tegra_car 185>, /* amx1 */
  597. <&tegra_car 154>, /* adx */
  598. <&tegra_car 180>, /* adx1 */
  599. <&tegra_car 186>, /* afc0 */
  600. <&tegra_car 187>, /* afc1 */
  601. <&tegra_car 188>, /* afc2 */
  602. <&tegra_car 189>, /* afc3 */
  603. <&tegra_car 190>, /* afc4 */
  604. <&tegra_car 191>; /* afc5 */
  605. reset-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2",
  606. "i2s3", "i2s4", "dam0", "dam1", "dam2",
  607. "spdif", "amx", "amx1", "adx", "adx1",
  608. "afc0", "afc1", "afc2", "afc3", "afc4", "afc5";
  609. dmas = <&apbdma 1>, <&apbdma 1>,
  610. <&apbdma 2>, <&apbdma 2>,
  611. <&apbdma 3>, <&apbdma 3>,
  612. <&apbdma 4>, <&apbdma 4>,
  613. <&apbdma 6>, <&apbdma 6>,
  614. <&apbdma 7>, <&apbdma 7>,
  615. <&apbdma 12>, <&apbdma 12>,
  616. <&apbdma 13>, <&apbdma 13>,
  617. <&apbdma 14>, <&apbdma 14>,
  618. <&apbdma 29>, <&apbdma 29>;
  619. dma-names = "rx0", "tx0", "rx1", "tx1", "rx2", "tx2",
  620. "rx3", "tx3", "rx4", "tx4", "rx5", "tx5",
  621. "rx6", "tx6", "rx7", "tx7", "rx8", "tx8",
  622. "rx9", "tx9";
  623. ranges;
  624. #address-cells = <2>;
  625. #size-cells = <2>;
  626. tegra_i2s0: i2s@0,70301000 {
  627. compatible = "nvidia,tegra124-i2s";
  628. reg = <0x0 0x70301000 0x0 0x100>;
  629. nvidia,ahub-cif-ids = <4 4>;
  630. clocks = <&tegra_car TEGRA124_CLK_I2S0>;
  631. resets = <&tegra_car 30>;
  632. reset-names = "i2s";
  633. status = "disabled";
  634. };
  635. tegra_i2s1: i2s@0,70301100 {
  636. compatible = "nvidia,tegra124-i2s";
  637. reg = <0x0 0x70301100 0x0 0x100>;
  638. nvidia,ahub-cif-ids = <5 5>;
  639. clocks = <&tegra_car TEGRA124_CLK_I2S1>;
  640. resets = <&tegra_car 11>;
  641. reset-names = "i2s";
  642. status = "disabled";
  643. };
  644. tegra_i2s2: i2s@0,70301200 {
  645. compatible = "nvidia,tegra124-i2s";
  646. reg = <0x0 0x70301200 0x0 0x100>;
  647. nvidia,ahub-cif-ids = <6 6>;
  648. clocks = <&tegra_car TEGRA124_CLK_I2S2>;
  649. resets = <&tegra_car 18>;
  650. reset-names = "i2s";
  651. status = "disabled";
  652. };
  653. tegra_i2s3: i2s@0,70301300 {
  654. compatible = "nvidia,tegra124-i2s";
  655. reg = <0x0 0x70301300 0x0 0x100>;
  656. nvidia,ahub-cif-ids = <7 7>;
  657. clocks = <&tegra_car TEGRA124_CLK_I2S3>;
  658. resets = <&tegra_car 101>;
  659. reset-names = "i2s";
  660. status = "disabled";
  661. };
  662. tegra_i2s4: i2s@0,70301400 {
  663. compatible = "nvidia,tegra124-i2s";
  664. reg = <0x0 0x70301400 0x0 0x100>;
  665. nvidia,ahub-cif-ids = <8 8>;
  666. clocks = <&tegra_car TEGRA124_CLK_I2S4>;
  667. resets = <&tegra_car 102>;
  668. reset-names = "i2s";
  669. status = "disabled";
  670. };
  671. };
  672. usb@0,7d000000 {
  673. compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci";
  674. reg = <0x0 0x7d000000 0x0 0x4000>;
  675. interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
  676. phy_type = "utmi";
  677. clocks = <&tegra_car TEGRA124_CLK_USBD>;
  678. resets = <&tegra_car 22>;
  679. reset-names = "usb";
  680. nvidia,phy = <&phy1>;
  681. status = "disabled";
  682. };
  683. phy1: usb-phy@0,7d000000 {
  684. compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
  685. reg = <0x0 0x7d000000 0x0 0x4000>,
  686. <0x0 0x7d000000 0x0 0x4000>;
  687. phy_type = "utmi";
  688. clocks = <&tegra_car TEGRA124_CLK_USBD>,
  689. <&tegra_car TEGRA124_CLK_PLL_U>,
  690. <&tegra_car TEGRA124_CLK_USBD>;
  691. clock-names = "reg", "pll_u", "utmi-pads";
  692. resets = <&tegra_car 59>, <&tegra_car 22>;
  693. reset-names = "usb", "utmi-pads";
  694. nvidia,hssync-start-delay = <0>;
  695. nvidia,idle-wait-delay = <17>;
  696. nvidia,elastic-limit = <16>;
  697. nvidia,term-range-adj = <6>;
  698. nvidia,xcvr-setup = <9>;
  699. nvidia,xcvr-lsfslew = <0>;
  700. nvidia,xcvr-lsrslew = <3>;
  701. nvidia,hssquelch-level = <2>;
  702. nvidia,hsdiscon-level = <5>;
  703. nvidia,xcvr-hsslew = <12>;
  704. status = "disabled";
  705. };
  706. usb@0,7d004000 {
  707. compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci";
  708. reg = <0x0 0x7d004000 0x0 0x4000>;
  709. interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
  710. phy_type = "utmi";
  711. clocks = <&tegra_car TEGRA124_CLK_USB2>;
  712. resets = <&tegra_car 58>;
  713. reset-names = "usb";
  714. nvidia,phy = <&phy2>;
  715. status = "disabled";
  716. };
  717. phy2: usb-phy@0,7d004000 {
  718. compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
  719. reg = <0x0 0x7d004000 0x0 0x4000>,
  720. <0x0 0x7d000000 0x0 0x4000>;
  721. phy_type = "utmi";
  722. clocks = <&tegra_car TEGRA124_CLK_USB2>,
  723. <&tegra_car TEGRA124_CLK_PLL_U>,
  724. <&tegra_car TEGRA124_CLK_USBD>;
  725. clock-names = "reg", "pll_u", "utmi-pads";
  726. resets = <&tegra_car 22>, <&tegra_car 22>;
  727. reset-names = "usb", "utmi-pads";
  728. nvidia,hssync-start-delay = <0>;
  729. nvidia,idle-wait-delay = <17>;
  730. nvidia,elastic-limit = <16>;
  731. nvidia,term-range-adj = <6>;
  732. nvidia,xcvr-setup = <9>;
  733. nvidia,xcvr-lsfslew = <0>;
  734. nvidia,xcvr-lsrslew = <3>;
  735. nvidia,hssquelch-level = <2>;
  736. nvidia,hsdiscon-level = <5>;
  737. nvidia,xcvr-hsslew = <12>;
  738. nvidia,has-utmi-pad-registers;
  739. status = "disabled";
  740. };
  741. usb@0,7d008000 {
  742. compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci";
  743. reg = <0x0 0x7d008000 0x0 0x4000>;
  744. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  745. phy_type = "utmi";
  746. clocks = <&tegra_car TEGRA124_CLK_USB3>;
  747. resets = <&tegra_car 59>;
  748. reset-names = "usb";
  749. nvidia,phy = <&phy3>;
  750. status = "disabled";
  751. };
  752. phy3: usb-phy@0,7d008000 {
  753. compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
  754. reg = <0x0 0x7d008000 0x0 0x4000>,
  755. <0x0 0x7d000000 0x0 0x4000>;
  756. phy_type = "utmi";
  757. clocks = <&tegra_car TEGRA124_CLK_USB3>,
  758. <&tegra_car TEGRA124_CLK_PLL_U>,
  759. <&tegra_car TEGRA124_CLK_USBD>;
  760. clock-names = "reg", "pll_u", "utmi-pads";
  761. resets = <&tegra_car 58>, <&tegra_car 22>;
  762. reset-names = "usb", "utmi-pads";
  763. nvidia,hssync-start-delay = <0>;
  764. nvidia,idle-wait-delay = <17>;
  765. nvidia,elastic-limit = <16>;
  766. nvidia,term-range-adj = <6>;
  767. nvidia,xcvr-setup = <9>;
  768. nvidia,xcvr-lsfslew = <0>;
  769. nvidia,xcvr-lsrslew = <3>;
  770. nvidia,hssquelch-level = <2>;
  771. nvidia,hsdiscon-level = <5>;
  772. nvidia,xcvr-hsslew = <12>;
  773. status = "disabled";
  774. };
  775. cpus {
  776. #address-cells = <1>;
  777. #size-cells = <0>;
  778. cpu@0 {
  779. device_type = "cpu";
  780. compatible = "arm,cortex-a15";
  781. reg = <0>;
  782. };
  783. cpu@1 {
  784. device_type = "cpu";
  785. compatible = "arm,cortex-a15";
  786. reg = <1>;
  787. };
  788. cpu@2 {
  789. device_type = "cpu";
  790. compatible = "arm,cortex-a15";
  791. reg = <2>;
  792. };
  793. cpu@3 {
  794. device_type = "cpu";
  795. compatible = "arm,cortex-a15";
  796. reg = <3>;
  797. };
  798. };
  799. timer {
  800. compatible = "arm,armv7-timer";
  801. interrupts = <GIC_PPI 13
  802. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  803. <GIC_PPI 14
  804. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  805. <GIC_PPI 11
  806. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  807. <GIC_PPI 10
  808. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  809. };
  810. };