keystone.dtsi 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. /*
  2. * Copyright 2013 Texas Instruments, Inc.
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. */
  8. #include <dt-bindings/interrupt-controller/arm-gic.h>
  9. #include <dt-bindings/gpio/gpio.h>
  10. #include "skeleton.dtsi"
  11. / {
  12. model = "Texas Instruments Keystone 2 SoC";
  13. #address-cells = <1>;
  14. #size-cells = <1>;
  15. interrupt-parent = <&gic>;
  16. aliases {
  17. serial0 = &uart0;
  18. spi0 = &spi0;
  19. spi1 = &spi1;
  20. spi2 = &spi2;
  21. };
  22. chosen {
  23. stdout-path = &uart0;
  24. };
  25. memory {
  26. reg = <0x80000000 0x40000000>;
  27. };
  28. gic: interrupt-controller {
  29. compatible = "arm,cortex-a15-gic";
  30. #interrupt-cells = <3>;
  31. interrupt-controller;
  32. reg = <0x02561000 0x1000>,
  33. <0x02562000 0x2000>,
  34. <0x02564000 0x1000>,
  35. <0x02566000 0x2000>;
  36. interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
  37. IRQ_TYPE_LEVEL_HIGH)>;
  38. };
  39. timer {
  40. compatible = "arm,armv7-timer";
  41. interrupts =
  42. <GIC_PPI 13
  43. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  44. <GIC_PPI 14
  45. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  46. <GIC_PPI 11
  47. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  48. <GIC_PPI 10
  49. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  50. };
  51. pmu {
  52. compatible = "arm,cortex-a15-pmu";
  53. interrupts = <GIC_SPI 20 IRQ_TYPE_EDGE_RISING>,
  54. <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
  55. <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>,
  56. <GIC_SPI 23 IRQ_TYPE_EDGE_RISING>;
  57. };
  58. soc {
  59. #address-cells = <1>;
  60. #size-cells = <1>;
  61. compatible = "ti,keystone","simple-bus";
  62. interrupt-parent = <&gic>;
  63. ranges;
  64. pllctrl: pll-controller@02310000 {
  65. compatible = "ti,keystone-pllctrl", "syscon";
  66. reg = <0x02310000 0x200>;
  67. };
  68. devctrl: device-state-control@02620000 {
  69. compatible = "ti,keystone-devctrl", "syscon";
  70. reg = <0x02620000 0x1000>;
  71. };
  72. rstctrl: reset-controller {
  73. compatible = "ti,keystone-reset";
  74. ti,syscon-pll = <&pllctrl 0xe4>;
  75. ti,syscon-dev = <&devctrl 0x328>;
  76. ti,wdt-list = <0>;
  77. };
  78. /include/ "keystone-clocks.dtsi"
  79. uart0: serial@02530c00 {
  80. compatible = "ns16550a";
  81. current-speed = <115200>;
  82. reg-shift = <2>;
  83. reg-io-width = <4>;
  84. reg = <0x02530c00 0x100>;
  85. clocks = <&clkuart0>;
  86. interrupts = <GIC_SPI 277 IRQ_TYPE_EDGE_RISING>;
  87. };
  88. uart1: serial@02531000 {
  89. compatible = "ns16550a";
  90. current-speed = <115200>;
  91. reg-shift = <2>;
  92. reg-io-width = <4>;
  93. reg = <0x02531000 0x100>;
  94. clocks = <&clkuart1>;
  95. interrupts = <GIC_SPI 280 IRQ_TYPE_EDGE_RISING>;
  96. };
  97. i2c0: i2c@2530000 {
  98. compatible = "ti,davinci-i2c";
  99. reg = <0x02530000 0x400>;
  100. clock-frequency = <100000>;
  101. clocks = <&clki2c>;
  102. interrupts = <GIC_SPI 283 IRQ_TYPE_EDGE_RISING>;
  103. #address-cells = <1>;
  104. #size-cells = <0>;
  105. };
  106. i2c1: i2c@2530400 {
  107. compatible = "ti,davinci-i2c";
  108. reg = <0x02530400 0x400>;
  109. clock-frequency = <100000>;
  110. clocks = <&clki2c>;
  111. interrupts = <GIC_SPI 286 IRQ_TYPE_EDGE_RISING>;
  112. #address-cells = <1>;
  113. #size-cells = <0>;
  114. };
  115. i2c2: i2c@2530800 {
  116. compatible = "ti,davinci-i2c";
  117. reg = <0x02530800 0x400>;
  118. clock-frequency = <100000>;
  119. clocks = <&clki2c>;
  120. interrupts = <GIC_SPI 289 IRQ_TYPE_EDGE_RISING>;
  121. #address-cells = <1>;
  122. #size-cells = <0>;
  123. };
  124. spi0: spi@21000400 {
  125. compatible = "ti,dm6441-spi";
  126. reg = <0x21000400 0x200>;
  127. num-cs = <4>;
  128. ti,davinci-spi-intr-line = <0>;
  129. interrupts = <GIC_SPI 292 IRQ_TYPE_EDGE_RISING>;
  130. clocks = <&clkspi>;
  131. #address-cells = <1>;
  132. #size-cells = <0>;
  133. };
  134. spi1: spi@21000600 {
  135. compatible = "ti,dm6441-spi";
  136. reg = <0x21000600 0x200>;
  137. num-cs = <4>;
  138. ti,davinci-spi-intr-line = <0>;
  139. interrupts = <GIC_SPI 296 IRQ_TYPE_EDGE_RISING>;
  140. clocks = <&clkspi>;
  141. #address-cells = <1>;
  142. #size-cells = <0>;
  143. };
  144. spi2: spi@21000800 {
  145. compatible = "ti,dm6441-spi";
  146. reg = <0x21000800 0x200>;
  147. num-cs = <4>;
  148. ti,davinci-spi-intr-line = <0>;
  149. interrupts = <GIC_SPI 300 IRQ_TYPE_EDGE_RISING>;
  150. clocks = <&clkspi>;
  151. #address-cells = <1>;
  152. #size-cells = <0>;
  153. };
  154. usb_phy: usb_phy@2620738 {
  155. compatible = "ti,keystone-usbphy";
  156. #address-cells = <1>;
  157. #size-cells = <1>;
  158. reg = <0x2620738 24>;
  159. status = "disabled";
  160. };
  161. usb: usb@2680000 {
  162. compatible = "ti,keystone-dwc3";
  163. #address-cells = <1>;
  164. #size-cells = <1>;
  165. reg = <0x2680000 0x10000>;
  166. clocks = <&clkusb>;
  167. clock-names = "usb";
  168. interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>;
  169. ranges;
  170. dma-coherent;
  171. dma-ranges;
  172. status = "disabled";
  173. dwc3@2690000 {
  174. compatible = "synopsys,dwc3";
  175. reg = <0x2690000 0x70000>;
  176. interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>;
  177. usb-phy = <&usb_phy>, <&usb_phy>;
  178. };
  179. };
  180. wdt: wdt@022f0080 {
  181. compatible = "ti,keystone-wdt","ti,davinci-wdt";
  182. reg = <0x022f0080 0x80>;
  183. clocks = <&clkwdtimer0>;
  184. };
  185. clock_event: timer@22f0000 {
  186. compatible = "ti,keystone-timer";
  187. reg = <0x022f0000 0x80>;
  188. interrupts = <GIC_SPI 110 IRQ_TYPE_EDGE_RISING>;
  189. clocks = <&clktimer15>;
  190. };
  191. gpio0: gpio@260bf00 {
  192. compatible = "ti,keystone-gpio";
  193. reg = <0x0260bf00 0x100>;
  194. gpio-controller;
  195. #gpio-cells = <2>;
  196. /* HW Interrupts mapped to GPIO pins */
  197. interrupts = <GIC_SPI 120 IRQ_TYPE_EDGE_RISING>,
  198. <GIC_SPI 121 IRQ_TYPE_EDGE_RISING>,
  199. <GIC_SPI 122 IRQ_TYPE_EDGE_RISING>,
  200. <GIC_SPI 123 IRQ_TYPE_EDGE_RISING>,
  201. <GIC_SPI 124 IRQ_TYPE_EDGE_RISING>,
  202. <GIC_SPI 125 IRQ_TYPE_EDGE_RISING>,
  203. <GIC_SPI 126 IRQ_TYPE_EDGE_RISING>,
  204. <GIC_SPI 127 IRQ_TYPE_EDGE_RISING>,
  205. <GIC_SPI 128 IRQ_TYPE_EDGE_RISING>,
  206. <GIC_SPI 129 IRQ_TYPE_EDGE_RISING>,
  207. <GIC_SPI 130 IRQ_TYPE_EDGE_RISING>,
  208. <GIC_SPI 131 IRQ_TYPE_EDGE_RISING>,
  209. <GIC_SPI 132 IRQ_TYPE_EDGE_RISING>,
  210. <GIC_SPI 133 IRQ_TYPE_EDGE_RISING>,
  211. <GIC_SPI 134 IRQ_TYPE_EDGE_RISING>,
  212. <GIC_SPI 135 IRQ_TYPE_EDGE_RISING>,
  213. <GIC_SPI 136 IRQ_TYPE_EDGE_RISING>,
  214. <GIC_SPI 137 IRQ_TYPE_EDGE_RISING>,
  215. <GIC_SPI 138 IRQ_TYPE_EDGE_RISING>,
  216. <GIC_SPI 139 IRQ_TYPE_EDGE_RISING>,
  217. <GIC_SPI 140 IRQ_TYPE_EDGE_RISING>,
  218. <GIC_SPI 141 IRQ_TYPE_EDGE_RISING>,
  219. <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>,
  220. <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>,
  221. <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>,
  222. <GIC_SPI 145 IRQ_TYPE_EDGE_RISING>,
  223. <GIC_SPI 146 IRQ_TYPE_EDGE_RISING>,
  224. <GIC_SPI 147 IRQ_TYPE_EDGE_RISING>,
  225. <GIC_SPI 148 IRQ_TYPE_EDGE_RISING>,
  226. <GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
  227. <GIC_SPI 150 IRQ_TYPE_EDGE_RISING>,
  228. <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
  229. clocks = <&clkgpio>;
  230. clock-names = "gpio";
  231. ti,ngpio = <32>;
  232. ti,davinci-gpio-unbanked = <32>;
  233. };
  234. aemif: aemif@21000A00 {
  235. compatible = "ti,keystone-aemif", "ti,davinci-aemif";
  236. #address-cells = <2>;
  237. #size-cells = <1>;
  238. clocks = <&clkaemif>;
  239. clock-names = "aemif";
  240. clock-ranges;
  241. reg = <0x21000A00 0x00000100>;
  242. ranges = <0 0 0x30000000 0x10000000
  243. 1 0 0x21000A00 0x00000100>;
  244. };
  245. kirq0: keystone_irq@26202a0 {
  246. compatible = "ti,keystone-irq";
  247. interrupts = <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>;
  248. interrupt-controller;
  249. #interrupt-cells = <1>;
  250. ti,syscon-dev = <&devctrl 0x2a0>;
  251. };
  252. pcie0: pcie@21800000 {
  253. compatible = "ti,keystone-pcie", "snps,dw-pcie";
  254. clocks = <&clkpcie>;
  255. clock-names = "pcie";
  256. #address-cells = <3>;
  257. #size-cells = <2>;
  258. reg = <0x21801000 0x2000>, <0x21800000 0x1000>, <0x02620128 4>;
  259. ranges = <0x81000000 0 0 0x23250000 0 0x4000
  260. 0x82000000 0 0x50000000 0x50000000 0 0x10000000>;
  261. status = "disabled";
  262. device_type = "pci";
  263. num-lanes = <2>;
  264. #interrupt-cells = <1>;
  265. interrupt-map-mask = <0 0 0 7>;
  266. interrupt-map = <0 0 0 1 &pcie_intc0 0>, /* INT A */
  267. <0 0 0 2 &pcie_intc0 1>, /* INT B */
  268. <0 0 0 3 &pcie_intc0 2>, /* INT C */
  269. <0 0 0 4 &pcie_intc0 3>; /* INT D */
  270. pcie_msi_intc0: msi-interrupt-controller {
  271. interrupt-controller;
  272. #interrupt-cells = <1>;
  273. interrupt-parent = <&gic>;
  274. interrupts = <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
  275. <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>,
  276. <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>,
  277. <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>,
  278. <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>,
  279. <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>,
  280. <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>,
  281. <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>;
  282. };
  283. pcie_intc0: legacy-interrupt-controller {
  284. interrupt-controller;
  285. #interrupt-cells = <1>;
  286. interrupt-parent = <&gic>;
  287. interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>,
  288. <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>,
  289. <GIC_SPI 28 IRQ_TYPE_EDGE_RISING>,
  290. <GIC_SPI 29 IRQ_TYPE_EDGE_RISING>;
  291. };
  292. };
  293. };
  294. };