tegra210.dtsi 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  1. #include <dt-bindings/clock/tegra210-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,tegra210";
  9. interrupt-parent = <&gic>;
  10. #address-cells = <2>;
  11. #size-cells = <2>;
  12. pcie-controller@0,01003000 {
  13. compatible = "nvidia,tegra210-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 TEGRA210_CLK_PCIE>,
  34. <&tegra_car TEGRA210_CLK_AFI>,
  35. <&tegra_car TEGRA210_CLK_PLL_E>,
  36. <&tegra_car TEGRA210_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 = <4>;
  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. gic: interrupt-controller@0,50041000 {
  67. compatible = "arm,gic-400";
  68. #interrupt-cells = <3>;
  69. interrupt-controller;
  70. reg = <0x0 0x50041000 0x0 0x1000>,
  71. <0x0 0x50042000 0x0 0x2000>,
  72. <0x0 0x50044000 0x0 0x2000>,
  73. <0x0 0x50046000 0x0 0x2000>;
  74. interrupts = <GIC_PPI 9
  75. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  76. interrupt-parent = <&gic>;
  77. };
  78. tegra_car: clock@0,60006000 {
  79. compatible = "nvidia,tegra210-car";
  80. reg = <0x0 0x60006000 0x0 0x1000>;
  81. #clock-cells = <1>;
  82. #reset-cells = <1>;
  83. };
  84. gpio: gpio@0,6000d000 {
  85. compatible = "nvidia,tegra210-gpio", "nvidia,tegra30-gpio";
  86. reg = <0x0 0x6000d000 0x0 0x1000>;
  87. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
  88. <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
  89. <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
  90. <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
  91. <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
  92. <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
  93. <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
  94. <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
  95. #gpio-cells = <2>;
  96. gpio-controller;
  97. #interrupt-cells = <2>;
  98. interrupt-controller;
  99. };
  100. i2c@0,7000c000 {
  101. compatible = "nvidia,tegra210-i2c", "nvidia,tegra114-i2c";
  102. reg = <0x0 0x7000c000 0x0 0x100>;
  103. interrupts = <0 38 0x04>;
  104. #address-cells = <1>;
  105. #size-cells = <0>;
  106. clocks = <&tegra_car 12>;
  107. status = "disabled";
  108. };
  109. i2c@0,7000c400 {
  110. compatible = "nvidia,tegra210-i2c", "nvidia,tegra114-i2c";
  111. reg = <0x0 0x7000c400 0x0 0x100>;
  112. interrupts = <0 84 0x04>;
  113. #address-cells = <1>;
  114. #size-cells = <0>;
  115. clocks = <&tegra_car 54>;
  116. status = "disabled";
  117. };
  118. i2c@0,7000c500 {
  119. compatible = "nvidia,tegra210-i2c", "nvidia,tegra114-i2c";
  120. reg = <0x0 0x7000c500 0x0 0x100>;
  121. interrupts = <0 92 0x04>;
  122. #address-cells = <1>;
  123. #size-cells = <0>;
  124. clocks = <&tegra_car 67>;
  125. status = "disabled";
  126. };
  127. i2c@0,7000c700 {
  128. compatible = "nvidia,tegra210-i2c", "nvidia,tegra114-i2c";
  129. reg = <0x0 0x7000c700 0x0 0x100>;
  130. interrupts = <0 120 0x04>;
  131. #address-cells = <1>;
  132. #size-cells = <0>;
  133. clocks = <&tegra_car 103>;
  134. status = "disabled";
  135. };
  136. i2c@0,7000d000 {
  137. compatible = "nvidia,tegra210-i2c", "nvidia,tegra114-i2c";
  138. reg = <0x0 0x7000d000 0x0 0x100>;
  139. interrupts = <0 53 0x04>;
  140. #address-cells = <1>;
  141. #size-cells = <0>;
  142. clocks = <&tegra_car 47>;
  143. status = "disabled";
  144. };
  145. i2c@0,7000d100 {
  146. compatible = "nvidia,tegra210-i2c", "nvidia,tegra114-i2c";
  147. reg = <0x0 0x7000d100 0x0 0x100>;
  148. interrupts = <0 53 0x04>;
  149. #address-cells = <1>;
  150. #size-cells = <0>;
  151. clocks = <&tegra_car 47>;
  152. status = "disabled";
  153. };
  154. uarta: serial@0,70006000 {
  155. compatible = "nvidia,tegra210-uart", "nvidia,tegra20-uart";
  156. reg = <0x0 0x70006000 0x0 0x40>;
  157. reg-shift = <2>;
  158. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  159. clocks = <&tegra_car TEGRA210_CLK_UARTA>;
  160. resets = <&tegra_car 6>;
  161. reset-names = "serial";
  162. status = "disabled";
  163. };
  164. uartb: serial@0,70006040 {
  165. compatible = "nvidia,tegra210-uart", "nvidia,tegra20-uart";
  166. reg = <0x0 0x70006040 0x0 0x40>;
  167. reg-shift = <2>;
  168. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  169. clocks = <&tegra_car TEGRA210_CLK_UARTB>;
  170. resets = <&tegra_car 7>;
  171. reset-names = "serial";
  172. status = "disabled";
  173. };
  174. uartc: serial@0,70006200 {
  175. compatible = "nvidia,tegra210-uart", "nvidia,tegra20-uart";
  176. reg = <0x0 0x70006200 0x0 0x40>;
  177. reg-shift = <2>;
  178. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
  179. clocks = <&tegra_car TEGRA210_CLK_UARTC>;
  180. resets = <&tegra_car 55>;
  181. reset-names = "serial";
  182. status = "disabled";
  183. };
  184. uartd: serial@0,70006300 {
  185. compatible = "nvidia,tegra210-uart", "nvidia,tegra20-uart";
  186. reg = <0x0 0x70006300 0x0 0x40>;
  187. reg-shift = <2>;
  188. interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
  189. clocks = <&tegra_car TEGRA210_CLK_UARTD>;
  190. resets = <&tegra_car 65>;
  191. reset-names = "serial";
  192. status = "disabled";
  193. };
  194. spi@0,7000d400 {
  195. compatible = "nvidia,tegra210-spi", "nvidia,tegra114-spi";
  196. reg = <0x0 0x7000d400 0x0 0x200>;
  197. interrupts = <0 59 0x04>;
  198. #address-cells = <1>;
  199. #size-cells = <0>;
  200. clocks = <&tegra_car TEGRA210_CLK_SBC1>;
  201. resets = <&tegra_car 41>;
  202. reset-names = "spi";
  203. status = "disabled";
  204. };
  205. spi@0,7000d600 {
  206. compatible = "nvidia,tegra210-spi", "nvidia,tegra114-spi";
  207. reg = <0x0 0x7000d600 0x0 0x200>;
  208. interrupts = <0 82 0x04>;
  209. #address-cells = <1>;
  210. #size-cells = <0>;
  211. clocks = <&tegra_car TEGRA210_CLK_SBC2>;
  212. resets = <&tegra_car 44>;
  213. reset-names = "spi";
  214. status = "disabled";
  215. };
  216. spi@0,7000d800 {
  217. compatible = "nvidia,tegra210-spi", "nvidia,tegra114-spi";
  218. reg = <0x0 0x7000d800 0x0 0x200>;
  219. interrupts = <0 83 0x04>;
  220. #address-cells = <1>;
  221. #size-cells = <0>;
  222. clocks = <&tegra_car TEGRA210_CLK_SBC3>;
  223. resets = <&tegra_car 46>;
  224. reset-names = "spi";
  225. status = "disabled";
  226. };
  227. spi@0,7000da00 {
  228. compatible = "nvidia,tegra210-spi", "nvidia,tegra114-spi";
  229. reg = <0x0 0x7000da00 0x0 0x200>;
  230. interrupts = <0 93 0x04>;
  231. #address-cells = <1>;
  232. #size-cells = <0>;
  233. clocks = <&tegra_car TEGRA210_CLK_SBC4>;
  234. resets = <&tegra_car 68>;
  235. reset-names = "spi";
  236. status = "disabled";
  237. };
  238. spi@0,70410000 {
  239. compatible = "nvidia,tegra210-qspi";
  240. reg = <0x0 0x70410000 0x0 0x1000>;
  241. interrupts = <0 10 0x04>;
  242. #address-cells = <1>;
  243. #size-cells = <0>;
  244. clocks = <&tegra_car 211>;
  245. status = "disabled";
  246. };
  247. padctl: padctl@0,7009f000 {
  248. compatible = "nvidia,tegra210-xusb-padctl";
  249. reg = <0x0 0x7009f000 0x0 0x1000>;
  250. resets = <&tegra_car 142>;
  251. reset-names = "padctl";
  252. #phy-cells = <1>;
  253. };
  254. sdhci@0,700b0000 {
  255. compatible = "nvidia,tegra210-sdhci";
  256. reg = <0x0 0x700b0000 0x0 0x200>;
  257. interrupts = <0 14 0x04>;
  258. clocks = <&tegra_car TEGRA210_CLK_SDMMC1>;
  259. resets = <&tegra_car 14>;
  260. reset-names = "sdhci";
  261. status = "disabled";
  262. };
  263. sdhci@0,700b0200 {
  264. compatible = "nvidia,tegra210-sdhci";
  265. reg = <0x0 0x700b0200 0x0 0x200>;
  266. interrupts = <0 15 0x04>;
  267. clocks = <&tegra_car TEGRA210_CLK_SDMMC2>;
  268. resets = <&tegra_car 9>;
  269. reset-names = "sdhci";
  270. status = "disabled";
  271. };
  272. sdhci@0,700b0400 {
  273. compatible = "nvidia,tegra210-sdhci";
  274. reg = <0x0 0x700b0400 0x0 0x200>;
  275. interrupts = <0 19 0x04>;
  276. clocks = <&tegra_car TEGRA210_CLK_SDMMC3>;
  277. resets = <&tegra_car 69>;
  278. reset-names = "sdhci";
  279. status = "disabled";
  280. };
  281. sdhci@0,700b0600 {
  282. compatible = "nvidia,tegra210-sdhci";
  283. reg = <0x0 0x700b0600 0x0 0x200>;
  284. interrupts = <0 31 0x04>;
  285. clocks = <&tegra_car TEGRA210_CLK_SDMMC4>;
  286. resets = <&tegra_car 15>;
  287. reset-names = "sdhci";
  288. status = "disabled";
  289. };
  290. usb@0,7d000000 {
  291. compatible = "nvidia,tegra210-ehci";
  292. reg = <0x0 0x7d000000 0x0 0x4000>;
  293. interrupts = <0 20 0x04>;
  294. phy_type = "utmi";
  295. clocks = <&tegra_car TEGRA210_CLK_USBD>;
  296. resets = <&tegra_car 22>;
  297. reset-names = "usb";
  298. status = "disabled";
  299. };
  300. usb@0,7d004000 {
  301. compatible = "nvidia,tegra210-ehci";
  302. reg = <0x0 0x7d004000 0x0 0x4000>;
  303. interrupts = < 53 >;
  304. phy_type = "utmi";
  305. clocks = <&tegra_car TEGRA210_CLK_USB2>;
  306. resets = <&tegra_car 58>;
  307. reset-names = "usb";
  308. status = "disabled";
  309. };
  310. };