tegra124.dtsi 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522
  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/interrupt-controller/arm-gic.h>
  5. #include <dt-bindings/pinctrl/pinctrl-tegra-xusb.h>
  6. #include "skeleton.dtsi"
  7. / {
  8. compatible = "nvidia,tegra124";
  9. interrupt-parent = <&gic>;
  10. pcie-controller@01003000 {
  11. compatible = "nvidia,tegra124-pcie";
  12. device_type = "pci";
  13. reg = <0x01003000 0x00000800 /* PADS registers */
  14. 0x01003800 0x00000800 /* AFI registers */
  15. 0x02000000 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 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  23. bus-range = <0x00 0xff>;
  24. #address-cells = <3>;
  25. #size-cells = <2>;
  26. ranges = <0x82000000 0 0x01000000 0x01000000 0 0x00001000 /* port 0 configuration space */
  27. 0x82000000 0 0x01001000 0x01001000 0 0x00001000 /* port 1 configuration space */
  28. 0x81000000 0 0x0 0x12000000 0 0x00010000 /* downstream I/O (64 KiB) */
  29. 0x82000000 0 0x13000000 0x13000000 0 0x0d000000 /* non-prefetchable memory (208 MiB) */
  30. 0xc2000000 0 0x20000000 0x20000000 0 0x20000000>; /* prefetchable memory (512 MiB) */
  31. clocks = <&tegra_car TEGRA124_CLK_PCIE>,
  32. <&tegra_car TEGRA124_CLK_AFI>,
  33. <&tegra_car TEGRA124_CLK_PLL_E>,
  34. <&tegra_car TEGRA124_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. phys = <&padctl TEGRA_XUSB_PADCTL_PCIE>;
  42. phy-names = "pcie";
  43. pci@1,0 {
  44. device_type = "pci";
  45. assigned-addresses = <0x82000800 0 0x01000000 0 0x1000>;
  46. reg = <0x000800 0 0 0 0>;
  47. status = "disabled";
  48. #address-cells = <3>;
  49. #size-cells = <2>;
  50. ranges;
  51. nvidia,num-lanes = <2>;
  52. };
  53. pci@2,0 {
  54. device_type = "pci";
  55. assigned-addresses = <0x82001000 0 0x01001000 0 0x1000>;
  56. reg = <0x001000 0 0 0 0>;
  57. status = "disabled";
  58. #address-cells = <3>;
  59. #size-cells = <2>;
  60. ranges;
  61. nvidia,num-lanes = <1>;
  62. };
  63. };
  64. gic: interrupt-controller@50041000 {
  65. compatible = "arm,cortex-a15-gic";
  66. #interrupt-cells = <3>;
  67. interrupt-controller;
  68. reg = <0x50041000 0x1000>,
  69. <0x50042000 0x2000>,
  70. <0x50044000 0x2000>,
  71. <0x50046000 0x2000>;
  72. interrupts = <GIC_PPI 9
  73. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  74. };
  75. tegra_car: clock@60006000 {
  76. compatible = "nvidia,tegra124-car";
  77. reg = <0x60006000 0x1000>;
  78. #clock-cells = <1>;
  79. };
  80. apbdma: dma@60020000 {
  81. compatible = "nvidia,tegra124-apbdma", "nvidia,tegra148-apbdma";
  82. reg = <0x60020000 0x1400>;
  83. interrupts = <0 104 0x04
  84. 0 105 0x04
  85. 0 106 0x04
  86. 0 107 0x04
  87. 0 108 0x04
  88. 0 109 0x04
  89. 0 110 0x04
  90. 0 111 0x04
  91. 0 112 0x04
  92. 0 113 0x04
  93. 0 114 0x04
  94. 0 115 0x04
  95. 0 116 0x04
  96. 0 117 0x04
  97. 0 118 0x04
  98. 0 119 0x04
  99. 0 128 0x04
  100. 0 129 0x04
  101. 0 130 0x04
  102. 0 131 0x04
  103. 0 132 0x04
  104. 0 133 0x04
  105. 0 134 0x04
  106. 0 135 0x04
  107. 0 136 0x04
  108. 0 137 0x04
  109. 0 138 0x04
  110. 0 139 0x04
  111. 0 140 0x04
  112. 0 141 0x04
  113. 0 142 0x04
  114. 0 143 0x04>;
  115. };
  116. gpio: gpio@6000d000 {
  117. compatible = "nvidia,tegra124-gpio", "nvidia,tegra30-gpio";
  118. reg = <0x6000d000 0x1000>;
  119. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
  120. <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
  121. <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
  122. <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
  123. <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
  124. <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
  125. <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
  126. <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
  127. #gpio-cells = <2>;
  128. gpio-controller;
  129. #interrupt-cells = <2>;
  130. interrupt-controller;
  131. };
  132. i2c@7000c000 {
  133. compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
  134. reg = <0x7000c000 0x100>;
  135. interrupts = <0 38 0x04>;
  136. #address-cells = <1>;
  137. #size-cells = <0>;
  138. clocks = <&tegra_car 12>;
  139. status = "disabled";
  140. };
  141. i2c@7000c400 {
  142. compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
  143. reg = <0x7000c400 0x100>;
  144. interrupts = <0 84 0x04>;
  145. #address-cells = <1>;
  146. #size-cells = <0>;
  147. clocks = <&tegra_car 54>;
  148. status = "disabled";
  149. };
  150. i2c@7000c500 {
  151. compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
  152. reg = <0x7000c500 0x100>;
  153. interrupts = <0 92 0x04>;
  154. #address-cells = <1>;
  155. #size-cells = <0>;
  156. clocks = <&tegra_car 67>;
  157. status = "disabled";
  158. };
  159. i2c@7000c700 {
  160. compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
  161. reg = <0x7000c700 0x100>;
  162. interrupts = <0 120 0x04>;
  163. #address-cells = <1>;
  164. #size-cells = <0>;
  165. clocks = <&tegra_car 103>;
  166. status = "disabled";
  167. };
  168. i2c@7000d000 {
  169. compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
  170. reg = <0x7000d000 0x100>;
  171. interrupts = <0 53 0x04>;
  172. #address-cells = <1>;
  173. #size-cells = <0>;
  174. clocks = <&tegra_car 47>;
  175. status = "disabled";
  176. };
  177. i2c@7000d100 {
  178. compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
  179. reg = <0x7000d100 0x100>;
  180. interrupts = <0 53 0x04>;
  181. #address-cells = <1>;
  182. #size-cells = <0>;
  183. clocks = <&tegra_car 47>;
  184. status = "disabled";
  185. };
  186. uarta: serial@70006000 {
  187. compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart";
  188. reg = <0x70006000 0x40>;
  189. reg-shift = <2>;
  190. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  191. clocks = <&tegra_car TEGRA124_CLK_UARTA>;
  192. resets = <&tegra_car 6>;
  193. reset-names = "serial";
  194. dmas = <&apbdma 8>, <&apbdma 8>;
  195. dma-names = "rx", "tx";
  196. status = "disabled";
  197. };
  198. uartb: serial@70006040 {
  199. compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart";
  200. reg = <0x70006040 0x40>;
  201. reg-shift = <2>;
  202. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  203. clocks = <&tegra_car TEGRA124_CLK_UARTB>;
  204. resets = <&tegra_car 7>;
  205. reset-names = "serial";
  206. dmas = <&apbdma 9>, <&apbdma 9>;
  207. dma-names = "rx", "tx";
  208. status = "disabled";
  209. };
  210. uartc: serial@70006200 {
  211. compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart";
  212. reg = <0x70006200 0x40>;
  213. reg-shift = <2>;
  214. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
  215. clocks = <&tegra_car TEGRA124_CLK_UARTC>;
  216. resets = <&tegra_car 55>;
  217. reset-names = "serial";
  218. dmas = <&apbdma 10>, <&apbdma 10>;
  219. dma-names = "rx", "tx";
  220. status = "disabled";
  221. };
  222. uartd: serial@70006300 {
  223. compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart";
  224. reg = <0x70006300 0x40>;
  225. reg-shift = <2>;
  226. interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
  227. clocks = <&tegra_car TEGRA124_CLK_UARTD>;
  228. resets = <&tegra_car 65>;
  229. reset-names = "serial";
  230. dmas = <&apbdma 19>, <&apbdma 19>;
  231. dma-names = "rx", "tx";
  232. status = "disabled";
  233. };
  234. uarte: serial@70006400 {
  235. compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart";
  236. reg = <0x70006400 0x40>;
  237. reg-shift = <2>;
  238. interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
  239. clocks = <&tegra_car TEGRA124_CLK_UARTE>;
  240. resets = <&tegra_car 66>;
  241. reset-names = "serial";
  242. dmas = <&apbdma 20>, <&apbdma 20>;
  243. dma-names = "rx", "tx";
  244. status = "disabled";
  245. };
  246. pwm: pwm@7000a000 {
  247. compatible = "nvidia,tegra124-pwm", "nvidia,tegra20-pwm";
  248. reg = <0x7000a000 0x100>;
  249. #pwm-cells = <2>;
  250. clocks = <&tegra_car TEGRA124_CLK_PWM>;
  251. resets = <&tegra_car 17>;
  252. reset-names = "pwm";
  253. status = "disabled";
  254. };
  255. spi@7000d400 {
  256. compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
  257. reg = <0x7000d400 0x200>;
  258. interrupts = <0 59 0x04>;
  259. nvidia,dma-request-selector = <&apbdma 15>;
  260. #address-cells = <1>;
  261. #size-cells = <0>;
  262. status = "disabled";
  263. clocks = <&tegra_car 41>;
  264. };
  265. spi@7000d600 {
  266. compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
  267. reg = <0x7000d600 0x200>;
  268. interrupts = <0 82 0x04>;
  269. nvidia,dma-request-selector = <&apbdma 16>;
  270. #address-cells = <1>;
  271. #size-cells = <0>;
  272. status = "disabled";
  273. clocks = <&tegra_car 44>;
  274. };
  275. spi@7000d800 {
  276. compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
  277. reg = <0x7000d800 0x200>;
  278. interrupts = <0 83 0x04>;
  279. nvidia,dma-request-selector = <&apbdma 17>;
  280. #address-cells = <1>;
  281. #size-cells = <0>;
  282. status = "disabled";
  283. clocks = <&tegra_car 46>;
  284. };
  285. spi@7000da00 {
  286. compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
  287. reg = <0x7000da00 0x200>;
  288. interrupts = <0 93 0x04>;
  289. nvidia,dma-request-selector = <&apbdma 18>;
  290. #address-cells = <1>;
  291. #size-cells = <0>;
  292. status = "disabled";
  293. clocks = <&tegra_car 68>;
  294. };
  295. spi@7000dc00 {
  296. compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
  297. reg = <0x7000dc00 0x200>;
  298. interrupts = <0 94 0x04>;
  299. nvidia,dma-request-selector = <&apbdma 27>;
  300. #address-cells = <1>;
  301. #size-cells = <0>;
  302. status = "disabled";
  303. clocks = <&tegra_car 104>;
  304. };
  305. spi@7000de00 {
  306. compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
  307. reg = <0x7000de00 0x200>;
  308. interrupts = <0 79 0x04>;
  309. nvidia,dma-request-selector = <&apbdma 28>;
  310. #address-cells = <1>;
  311. #size-cells = <0>;
  312. status = "disabled";
  313. clocks = <&tegra_car 105>;
  314. };
  315. padctl: padctl@7009f000 {
  316. compatible = "nvidia,tegra124-xusb-padctl";
  317. reg = <0x7009f000 0x1000>;
  318. resets = <&tegra_car 142>;
  319. reset-names = "padctl";
  320. #phy-cells = <1>;
  321. };
  322. sdhci@700b0000 {
  323. compatible = "nvidia,tegra124-sdhci";
  324. reg = <0x700b0000 0x200>;
  325. interrupts = <0 14 0x04>;
  326. clocks = <&tegra_car 14>;
  327. status = "disabled";
  328. };
  329. sdhci@700b0200 {
  330. compatible = "nvidia,tegra124-sdhci";
  331. reg = <0x700b0200 0x200>;
  332. interrupts = <0 15 0x04>;
  333. clocks = <&tegra_car 9>;
  334. status = "disabled";
  335. };
  336. sdhci@700b0400 {
  337. compatible = "nvidia,tegra124-sdhci";
  338. reg = <0x700b0400 0x200>;
  339. interrupts = <0 19 0x04>;
  340. clocks = <&tegra_car 69>;
  341. status = "disabled";
  342. };
  343. sdhci@700b0600 {
  344. compatible = "nvidia,tegra124-sdhci";
  345. reg = <0x700b0600 0x200>;
  346. interrupts = <0 31 0x04>;
  347. clocks = <&tegra_car 15>;
  348. status = "disabled";
  349. };
  350. ahub@70300000 {
  351. compatible = "nvidia,tegra124-ahub";
  352. reg = <0x70300000 0x200>,
  353. <0x70300800 0x800>,
  354. <0x70300200 0x600>;
  355. interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
  356. clocks = <&tegra_car TEGRA124_CLK_D_AUDIO>,
  357. <&tegra_car TEGRA124_CLK_APBIF>;
  358. clock-names = "d_audio", "apbif";
  359. resets = <&tegra_car 106>, /* d_audio */
  360. <&tegra_car 107>, /* apbif */
  361. <&tegra_car 30>, /* i2s0 */
  362. <&tegra_car 11>, /* i2s1 */
  363. <&tegra_car 18>, /* i2s2 */
  364. <&tegra_car 101>, /* i2s3 */
  365. <&tegra_car 102>, /* i2s4 */
  366. <&tegra_car 108>, /* dam0 */
  367. <&tegra_car 109>, /* dam1 */
  368. <&tegra_car 110>, /* dam2 */
  369. <&tegra_car 10>, /* spdif */
  370. <&tegra_car 153>, /* amx */
  371. <&tegra_car 185>, /* amx1 */
  372. <&tegra_car 154>, /* adx */
  373. <&tegra_car 180>, /* adx1 */
  374. <&tegra_car 186>, /* afc0 */
  375. <&tegra_car 187>, /* afc1 */
  376. <&tegra_car 188>, /* afc2 */
  377. <&tegra_car 189>, /* afc3 */
  378. <&tegra_car 190>, /* afc4 */
  379. <&tegra_car 191>; /* afc5 */
  380. reset-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2",
  381. "i2s3", "i2s4", "dam0", "dam1", "dam2",
  382. "spdif", "amx", "amx1", "adx", "adx1",
  383. "afc0", "afc1", "afc2", "afc3", "afc4", "afc5";
  384. dmas = <&apbdma 1>, <&apbdma 1>,
  385. <&apbdma 2>, <&apbdma 2>,
  386. <&apbdma 3>, <&apbdma 3>,
  387. <&apbdma 4>, <&apbdma 4>,
  388. <&apbdma 6>, <&apbdma 6>,
  389. <&apbdma 7>, <&apbdma 7>,
  390. <&apbdma 12>, <&apbdma 12>,
  391. <&apbdma 13>, <&apbdma 13>,
  392. <&apbdma 14>, <&apbdma 14>,
  393. <&apbdma 29>, <&apbdma 29>;
  394. dma-names = "rx0", "tx0", "rx1", "tx1", "rx2", "tx2",
  395. "rx3", "tx3", "rx4", "tx4", "rx5", "tx5",
  396. "rx6", "tx6", "rx7", "tx7", "rx8", "tx8",
  397. "rx9", "tx9";
  398. ranges;
  399. #address-cells = <1>;
  400. #size-cells = <1>;
  401. tegra_i2s0: i2s@70301000 {
  402. compatible = "nvidia,tegra124-i2s";
  403. reg = <0x70301000 0x100>;
  404. nvidia,ahub-cif-ids = <4 4>;
  405. clocks = <&tegra_car TEGRA124_CLK_I2S0>;
  406. resets = <&tegra_car 30>;
  407. reset-names = "i2s";
  408. status = "disabled";
  409. };
  410. tegra_i2s1: i2s@70301100 {
  411. compatible = "nvidia,tegra124-i2s";
  412. reg = <0x70301100 0x100>;
  413. nvidia,ahub-cif-ids = <5 5>;
  414. clocks = <&tegra_car TEGRA124_CLK_I2S1>;
  415. resets = <&tegra_car 11>;
  416. reset-names = "i2s";
  417. status = "disabled";
  418. };
  419. tegra_i2s2: i2s@70301200 {
  420. compatible = "nvidia,tegra124-i2s";
  421. reg = <0x70301200 0x100>;
  422. nvidia,ahub-cif-ids = <6 6>;
  423. clocks = <&tegra_car TEGRA124_CLK_I2S2>;
  424. resets = <&tegra_car 18>;
  425. reset-names = "i2s";
  426. status = "disabled";
  427. };
  428. tegra_i2s3: i2s@70301300 {
  429. compatible = "nvidia,tegra124-i2s";
  430. reg = <0x70301300 0x100>;
  431. nvidia,ahub-cif-ids = <7 7>;
  432. clocks = <&tegra_car TEGRA124_CLK_I2S3>;
  433. resets = <&tegra_car 101>;
  434. reset-names = "i2s";
  435. status = "disabled";
  436. };
  437. tegra_i2s4: i2s@70301400 {
  438. compatible = "nvidia,tegra124-i2s";
  439. reg = <0x70301400 0x100>;
  440. nvidia,ahub-cif-ids = <8 8>;
  441. clocks = <&tegra_car TEGRA124_CLK_I2S4>;
  442. resets = <&tegra_car 102>;
  443. reset-names = "i2s";
  444. status = "disabled";
  445. };
  446. };
  447. usb@7d000000 {
  448. compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci";
  449. reg = <0x7d000000 0x4000>;
  450. interrupts = < 52 >;
  451. phy_type = "utmi";
  452. clocks = <&tegra_car 22>; /* PERIPH_ID_USBD */
  453. status = "disabled";
  454. };
  455. usb@7d004000 {
  456. compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci";
  457. reg = <0x7d004000 0x4000>;
  458. interrupts = < 53 >;
  459. phy_type = "hsic";
  460. clocks = <&tegra_car 58>; /* PERIPH_ID_USB2 */
  461. status = "disabled";
  462. };
  463. usb@7d008000 {
  464. compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci";
  465. reg = <0x7d008000 0x4000>;
  466. interrupts = < 129 >;
  467. phy_type = "utmi";
  468. clocks = <&tegra_car 59>; /* PERIPH_ID_USB3 */
  469. status = "disabled";
  470. };
  471. };