tegra114.dtsi 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474
  1. #include <dt-bindings/clock/tegra114-car.h>
  2. #include <dt-bindings/gpio/tegra-gpio.h>
  3. #include <dt-bindings/interrupt-controller/arm-gic.h>
  4. #include "skeleton.dtsi"
  5. / {
  6. compatible = "nvidia,tegra114";
  7. interrupt-parent = <&gic>;
  8. aliases {
  9. serial0 = &uarta;
  10. serial1 = &uartb;
  11. serial2 = &uartc;
  12. serial3 = &uartd;
  13. };
  14. gic: interrupt-controller {
  15. compatible = "arm,cortex-a15-gic";
  16. #interrupt-cells = <3>;
  17. interrupt-controller;
  18. reg = <0x50041000 0x1000>,
  19. <0x50042000 0x1000>,
  20. <0x50044000 0x2000>,
  21. <0x50046000 0x2000>;
  22. interrupts = <GIC_PPI 9
  23. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  24. };
  25. timer@60005000 {
  26. compatible = "nvidia,tegra114-timer", "nvidia,tegra20-timer";
  27. reg = <0x60005000 0x400>;
  28. interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
  29. <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
  30. <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
  31. <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
  32. <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
  33. <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
  34. clocks = <&tegra_car TEGRA114_CLK_TIMER>;
  35. };
  36. tegra_car: clock {
  37. compatible = "nvidia,tegra114-car";
  38. reg = <0x60006000 0x1000>;
  39. #clock-cells = <1>;
  40. };
  41. apbdma: dma {
  42. compatible = "nvidia,tegra114-apbdma";
  43. reg = <0x6000a000 0x1400>;
  44. interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
  45. <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
  46. <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
  47. <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
  48. <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
  49. <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
  50. <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
  51. <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
  52. <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
  53. <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
  54. <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
  55. <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
  56. <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
  57. <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
  58. <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
  59. <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
  60. <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
  61. <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
  62. <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
  63. <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
  64. <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
  65. <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
  66. <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
  67. <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
  68. <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
  69. <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
  70. <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
  71. <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
  72. <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
  73. <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
  74. <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
  75. <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
  76. clocks = <&tegra_car TEGRA114_CLK_APBDMA>;
  77. };
  78. ahb: ahb {
  79. compatible = "nvidia,tegra114-ahb", "nvidia,tegra30-ahb";
  80. reg = <0x6000c004 0x14c>;
  81. };
  82. gpio: gpio {
  83. compatible = "nvidia,tegra114-gpio", "nvidia,tegra30-gpio";
  84. reg = <0x6000d000 0x1000>;
  85. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
  86. <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
  87. <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
  88. <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
  89. <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
  90. <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
  91. <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
  92. <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
  93. #gpio-cells = <2>;
  94. gpio-controller;
  95. #interrupt-cells = <2>;
  96. interrupt-controller;
  97. };
  98. pinmux: pinmux {
  99. compatible = "nvidia,tegra114-pinmux";
  100. reg = <0x70000868 0x148 /* Pad control registers */
  101. 0x70003000 0x40c>; /* Mux registers */
  102. };
  103. /*
  104. * There are two serial driver i.e. 8250 based simple serial
  105. * driver and APB DMA based serial driver for higher baudrate
  106. * and performace. To enable the 8250 based driver, the compatible
  107. * is "nvidia,tegra114-uart", "nvidia,tegra20-uart" and to enable
  108. * the APB DMA based serial driver, the comptible is
  109. * "nvidia,tegra114-hsuart", "nvidia,tegra30-hsuart".
  110. */
  111. uarta: serial@70006000 {
  112. compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
  113. reg = <0x70006000 0x40>;
  114. reg-shift = <2>;
  115. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  116. nvidia,dma-request-selector = <&apbdma 8>;
  117. status = "disabled";
  118. clocks = <&tegra_car TEGRA114_CLK_UARTA>;
  119. };
  120. uartb: serial@70006040 {
  121. compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
  122. reg = <0x70006040 0x40>;
  123. reg-shift = <2>;
  124. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  125. nvidia,dma-request-selector = <&apbdma 9>;
  126. status = "disabled";
  127. clocks = <&tegra_car TEGRA114_CLK_UARTB>;
  128. };
  129. uartc: serial@70006200 {
  130. compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
  131. reg = <0x70006200 0x100>;
  132. reg-shift = <2>;
  133. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
  134. nvidia,dma-request-selector = <&apbdma 10>;
  135. status = "disabled";
  136. clocks = <&tegra_car TEGRA114_CLK_UARTC>;
  137. };
  138. uartd: serial@70006300 {
  139. compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
  140. reg = <0x70006300 0x100>;
  141. reg-shift = <2>;
  142. interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
  143. nvidia,dma-request-selector = <&apbdma 19>;
  144. status = "disabled";
  145. clocks = <&tegra_car TEGRA114_CLK_UARTD>;
  146. };
  147. pwm: pwm {
  148. compatible = "nvidia,tegra114-pwm", "nvidia,tegra20-pwm";
  149. reg = <0x7000a000 0x100>;
  150. #pwm-cells = <2>;
  151. clocks = <&tegra_car TEGRA114_CLK_PWM>;
  152. status = "disabled";
  153. };
  154. i2c@7000c000 {
  155. compatible = "nvidia,tegra114-i2c";
  156. reg = <0x7000c000 0x100>;
  157. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  158. #address-cells = <1>;
  159. #size-cells = <0>;
  160. clocks = <&tegra_car TEGRA114_CLK_I2C1>;
  161. clock-names = "div-clk";
  162. status = "disabled";
  163. };
  164. i2c@7000c400 {
  165. compatible = "nvidia,tegra114-i2c";
  166. reg = <0x7000c400 0x100>;
  167. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
  168. #address-cells = <1>;
  169. #size-cells = <0>;
  170. clocks = <&tegra_car TEGRA114_CLK_I2C2>;
  171. clock-names = "div-clk";
  172. status = "disabled";
  173. };
  174. i2c@7000c500 {
  175. compatible = "nvidia,tegra114-i2c";
  176. reg = <0x7000c500 0x100>;
  177. interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
  178. #address-cells = <1>;
  179. #size-cells = <0>;
  180. clocks = <&tegra_car TEGRA114_CLK_I2C3>;
  181. clock-names = "div-clk";
  182. status = "disabled";
  183. };
  184. i2c@7000c700 {
  185. compatible = "nvidia,tegra114-i2c";
  186. reg = <0x7000c700 0x100>;
  187. interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
  188. #address-cells = <1>;
  189. #size-cells = <0>;
  190. clocks = <&tegra_car TEGRA114_CLK_I2C4>;
  191. clock-names = "div-clk";
  192. status = "disabled";
  193. };
  194. i2c@7000d000 {
  195. compatible = "nvidia,tegra114-i2c";
  196. reg = <0x7000d000 0x100>;
  197. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
  198. #address-cells = <1>;
  199. #size-cells = <0>;
  200. clocks = <&tegra_car TEGRA114_CLK_I2C5>;
  201. clock-names = "div-clk";
  202. status = "disabled";
  203. };
  204. spi@7000d400 {
  205. compatible = "nvidia,tegra114-spi";
  206. reg = <0x7000d400 0x200>;
  207. interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
  208. nvidia,dma-request-selector = <&apbdma 15>;
  209. #address-cells = <1>;
  210. #size-cells = <0>;
  211. clocks = <&tegra_car TEGRA114_CLK_SBC1>;
  212. clock-names = "spi";
  213. status = "disabled";
  214. };
  215. spi@7000d600 {
  216. compatible = "nvidia,tegra114-spi";
  217. reg = <0x7000d600 0x200>;
  218. interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
  219. nvidia,dma-request-selector = <&apbdma 16>;
  220. #address-cells = <1>;
  221. #size-cells = <0>;
  222. clocks = <&tegra_car TEGRA114_CLK_SBC2>;
  223. clock-names = "spi";
  224. status = "disabled";
  225. };
  226. spi@7000d800 {
  227. compatible = "nvidia,tegra114-spi";
  228. reg = <0x7000d800 0x200>;
  229. interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
  230. nvidia,dma-request-selector = <&apbdma 17>;
  231. #address-cells = <1>;
  232. #size-cells = <0>;
  233. clocks = <&tegra_car TEGRA114_CLK_SBC3>;
  234. clock-names = "spi";
  235. status = "disabled";
  236. };
  237. spi@7000da00 {
  238. compatible = "nvidia,tegra114-spi";
  239. reg = <0x7000da00 0x200>;
  240. interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
  241. nvidia,dma-request-selector = <&apbdma 18>;
  242. #address-cells = <1>;
  243. #size-cells = <0>;
  244. clocks = <&tegra_car TEGRA114_CLK_SBC4>;
  245. clock-names = "spi";
  246. status = "disabled";
  247. };
  248. spi@7000dc00 {
  249. compatible = "nvidia,tegra114-spi";
  250. reg = <0x7000dc00 0x200>;
  251. interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
  252. nvidia,dma-request-selector = <&apbdma 27>;
  253. #address-cells = <1>;
  254. #size-cells = <0>;
  255. clocks = <&tegra_car TEGRA114_CLK_SBC5>;
  256. clock-names = "spi";
  257. status = "disabled";
  258. };
  259. spi@7000de00 {
  260. compatible = "nvidia,tegra114-spi";
  261. reg = <0x7000de00 0x200>;
  262. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  263. nvidia,dma-request-selector = <&apbdma 28>;
  264. #address-cells = <1>;
  265. #size-cells = <0>;
  266. clocks = <&tegra_car TEGRA114_CLK_SBC6>;
  267. clock-names = "spi";
  268. status = "disabled";
  269. };
  270. rtc {
  271. compatible = "nvidia,tegra114-rtc", "nvidia,tegra20-rtc";
  272. reg = <0x7000e000 0x100>;
  273. interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
  274. clocks = <&tegra_car TEGRA114_CLK_RTC>;
  275. };
  276. kbc {
  277. compatible = "nvidia,tegra114-kbc";
  278. reg = <0x7000e200 0x100>;
  279. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  280. clocks = <&tegra_car TEGRA114_CLK_KBC>;
  281. status = "disabled";
  282. };
  283. pmc {
  284. compatible = "nvidia,tegra114-pmc";
  285. reg = <0x7000e400 0x400>;
  286. clocks = <&tegra_car TEGRA114_CLK_PCLK>, <&clk32k_in>;
  287. clock-names = "pclk", "clk32k_in";
  288. };
  289. iommu {
  290. compatible = "nvidia,tegra114-smmu", "nvidia,tegra30-smmu";
  291. reg = <0x7000f010 0x02c
  292. 0x7000f1f0 0x010
  293. 0x7000f228 0x074>;
  294. nvidia,#asids = <4>;
  295. dma-window = <0 0x40000000>;
  296. nvidia,swgroups = <0x18659fe>;
  297. nvidia,ahb = <&ahb>;
  298. };
  299. ahub {
  300. compatible = "nvidia,tegra114-ahub";
  301. reg = <0x70080000 0x200>,
  302. <0x70080200 0x100>,
  303. <0x70081000 0x200>;
  304. interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
  305. nvidia,dma-request-selector = <&apbdma 1>, <&apbdma 2>,
  306. <&apbdma 3>, <&apbdma 4>, <&apbdma 6>, <&apbdma 7>,
  307. <&apbdma 12>, <&apbdma 13>, <&apbdma 14>,
  308. <&apbdma 29>;
  309. clocks = <&tegra_car TEGRA114_CLK_D_AUDIO>,
  310. <&tegra_car TEGRA114_CLK_APBIF>,
  311. <&tegra_car TEGRA114_CLK_I2S0>,
  312. <&tegra_car TEGRA114_CLK_I2S1>,
  313. <&tegra_car TEGRA114_CLK_I2S2>,
  314. <&tegra_car TEGRA114_CLK_I2S3>,
  315. <&tegra_car TEGRA114_CLK_I2S4>,
  316. <&tegra_car TEGRA114_CLK_DAM0>,
  317. <&tegra_car TEGRA114_CLK_DAM1>,
  318. <&tegra_car TEGRA114_CLK_DAM2>,
  319. <&tegra_car TEGRA114_CLK_SPDIF_IN>,
  320. <&tegra_car TEGRA114_CLK_AMX>,
  321. <&tegra_car TEGRA114_CLK_ADX>;
  322. clock-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2",
  323. "i2s3", "i2s4", "dam0", "dam1", "dam2",
  324. "spdif_in", "amx", "adx";
  325. ranges;
  326. #address-cells = <1>;
  327. #size-cells = <1>;
  328. tegra_i2s0: i2s@70080300 {
  329. compatible = "nvidia,tegra114-i2s", "nvidia,tegra30-i2s";
  330. reg = <0x70080300 0x100>;
  331. nvidia,ahub-cif-ids = <4 4>;
  332. clocks = <&tegra_car TEGRA114_CLK_I2S0>;
  333. status = "disabled";
  334. };
  335. tegra_i2s1: i2s@70080400 {
  336. compatible = "nvidia,tegra114-i2s", "nvidia,tegra30-i2s";
  337. reg = <0x70080400 0x100>;
  338. nvidia,ahub-cif-ids = <5 5>;
  339. clocks = <&tegra_car TEGRA114_CLK_I2S1>;
  340. status = "disabled";
  341. };
  342. tegra_i2s2: i2s@70080500 {
  343. compatible = "nvidia,tegra114-i2s", "nvidia,tegra30-i2s";
  344. reg = <0x70080500 0x100>;
  345. nvidia,ahub-cif-ids = <6 6>;
  346. clocks = <&tegra_car TEGRA114_CLK_I2S2>;
  347. status = "disabled";
  348. };
  349. tegra_i2s3: i2s@70080600 {
  350. compatible = "nvidia,tegra114-i2s", "nvidia,tegra30-i2s";
  351. reg = <0x70080600 0x100>;
  352. nvidia,ahub-cif-ids = <7 7>;
  353. clocks = <&tegra_car TEGRA114_CLK_I2S3>;
  354. status = "disabled";
  355. };
  356. tegra_i2s4: i2s@70080700 {
  357. compatible = "nvidia,tegra114-i2s", "nvidia,tegra30-i2s";
  358. reg = <0x70080700 0x100>;
  359. nvidia,ahub-cif-ids = <8 8>;
  360. clocks = <&tegra_car TEGRA114_CLK_I2S4>;
  361. status = "disabled";
  362. };
  363. };
  364. sdhci@78000000 {
  365. compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci";
  366. reg = <0x78000000 0x200>;
  367. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  368. clocks = <&tegra_car TEGRA114_CLK_SDMMC1>;
  369. status = "disable";
  370. };
  371. sdhci@78000200 {
  372. compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci";
  373. reg = <0x78000200 0x200>;
  374. interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
  375. clocks = <&tegra_car TEGRA114_CLK_SDMMC2>;
  376. status = "disable";
  377. };
  378. sdhci@78000400 {
  379. compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci";
  380. reg = <0x78000400 0x200>;
  381. interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
  382. clocks = <&tegra_car TEGRA114_CLK_SDMMC3>;
  383. status = "disable";
  384. };
  385. sdhci@78000600 {
  386. compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci";
  387. reg = <0x78000600 0x200>;
  388. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
  389. clocks = <&tegra_car TEGRA114_CLK_SDMMC4>;
  390. status = "disable";
  391. };
  392. cpus {
  393. #address-cells = <1>;
  394. #size-cells = <0>;
  395. cpu@0 {
  396. device_type = "cpu";
  397. compatible = "arm,cortex-a15";
  398. reg = <0>;
  399. };
  400. cpu@1 {
  401. device_type = "cpu";
  402. compatible = "arm,cortex-a15";
  403. reg = <1>;
  404. };
  405. cpu@2 {
  406. device_type = "cpu";
  407. compatible = "arm,cortex-a15";
  408. reg = <2>;
  409. };
  410. cpu@3 {
  411. device_type = "cpu";
  412. compatible = "arm,cortex-a15";
  413. reg = <3>;
  414. };
  415. };
  416. timer {
  417. compatible = "arm,armv7-timer";
  418. interrupts =
  419. <GIC_PPI 13
  420. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  421. <GIC_PPI 14
  422. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  423. <GIC_PPI 11
  424. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  425. <GIC_PPI 10
  426. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  427. };
  428. };