armada-370-xp.dtsi 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334
  1. /*
  2. * Device Tree Include file for Marvell Armada 370 and Armada XP SoC
  3. *
  4. * Copyright (C) 2012 Marvell
  5. *
  6. * Lior Amsalem <alior@marvell.com>
  7. * Gregory CLEMENT <gregory.clement@free-electrons.com>
  8. * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  9. * Ben Dooks <ben.dooks@codethink.co.uk>
  10. *
  11. * This file is dual-licensed: you can use it either under the terms
  12. * of the GPL or the X11 license, at your option. Note that this dual
  13. * licensing only applies to this file, and not this project as a
  14. * whole.
  15. *
  16. * a) This file is free software; you can redistribute it and/or
  17. * modify it under the terms of the GNU General Public License as
  18. * published by the Free Software Foundation; either version 2 of the
  19. * License, or (at your option) any later version.
  20. *
  21. * This file is distributed in the hope that it will be useful
  22. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  23. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  24. * GNU General Public License for more details.
  25. *
  26. * Or, alternatively
  27. *
  28. * b) Permission is hereby granted, free of charge, to any person
  29. * obtaining a copy of this software and associated documentation
  30. * files (the "Software"), to deal in the Software without
  31. * restriction, including without limitation the rights to use
  32. * copy, modify, merge, publish, distribute, sublicense, and/or
  33. * sell copies of the Software, and to permit persons to whom the
  34. * Software is furnished to do so, subject to the following
  35. * conditions:
  36. *
  37. * The above copyright notice and this permission notice shall be
  38. * included in all copies or substantial portions of the Software.
  39. *
  40. * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
  41. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  42. * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  43. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  44. * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
  45. * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  46. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  47. * OTHER DEALINGS IN THE SOFTWARE.
  48. *
  49. * This file contains the definitions that are common to the Armada
  50. * 370 and Armada XP SoC.
  51. */
  52. /include/ "skeleton64.dtsi"
  53. #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
  54. / {
  55. model = "Marvell Armada 370 and XP SoC";
  56. compatible = "marvell,armada-370-xp";
  57. aliases {
  58. serial0 = &uart0;
  59. serial1 = &uart1;
  60. };
  61. cpus {
  62. #address-cells = <1>;
  63. #size-cells = <0>;
  64. cpu@0 {
  65. compatible = "marvell,sheeva-v7";
  66. device_type = "cpu";
  67. reg = <0>;
  68. };
  69. };
  70. pmu {
  71. compatible = "arm,cortex-a9-pmu";
  72. interrupts-extended = <&mpic 3>;
  73. };
  74. soc {
  75. #address-cells = <2>;
  76. #size-cells = <1>;
  77. controller = <&mbusc>;
  78. interrupt-parent = <&mpic>;
  79. pcie-mem-aperture = <0xf8000000 0x7e00000>;
  80. pcie-io-aperture = <0xffe00000 0x100000>;
  81. devbus-bootcs {
  82. compatible = "marvell,mvebu-devbus";
  83. reg = <MBUS_ID(0xf0, 0x01) 0x10400 0x8>;
  84. ranges = <0 MBUS_ID(0x01, 0x2f) 0 0xffffffff>;
  85. #address-cells = <1>;
  86. #size-cells = <1>;
  87. clocks = <&coreclk 0>;
  88. status = "disabled";
  89. };
  90. devbus-cs0 {
  91. compatible = "marvell,mvebu-devbus";
  92. reg = <MBUS_ID(0xf0, 0x01) 0x10408 0x8>;
  93. ranges = <0 MBUS_ID(0x01, 0x3e) 0 0xffffffff>;
  94. #address-cells = <1>;
  95. #size-cells = <1>;
  96. clocks = <&coreclk 0>;
  97. status = "disabled";
  98. };
  99. devbus-cs1 {
  100. compatible = "marvell,mvebu-devbus";
  101. reg = <MBUS_ID(0xf0, 0x01) 0x10410 0x8>;
  102. ranges = <0 MBUS_ID(0x01, 0x3d) 0 0xffffffff>;
  103. #address-cells = <1>;
  104. #size-cells = <1>;
  105. clocks = <&coreclk 0>;
  106. status = "disabled";
  107. };
  108. devbus-cs2 {
  109. compatible = "marvell,mvebu-devbus";
  110. reg = <MBUS_ID(0xf0, 0x01) 0x10418 0x8>;
  111. ranges = <0 MBUS_ID(0x01, 0x3b) 0 0xffffffff>;
  112. #address-cells = <1>;
  113. #size-cells = <1>;
  114. clocks = <&coreclk 0>;
  115. status = "disabled";
  116. };
  117. devbus-cs3 {
  118. compatible = "marvell,mvebu-devbus";
  119. reg = <MBUS_ID(0xf0, 0x01) 0x10420 0x8>;
  120. ranges = <0 MBUS_ID(0x01, 0x37) 0 0xffffffff>;
  121. #address-cells = <1>;
  122. #size-cells = <1>;
  123. clocks = <&coreclk 0>;
  124. status = "disabled";
  125. };
  126. internal-regs {
  127. compatible = "simple-bus";
  128. #address-cells = <1>;
  129. #size-cells = <1>;
  130. ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
  131. u-boot,dm-pre-reloc;
  132. rtc@10300 {
  133. compatible = "marvell,orion-rtc";
  134. reg = <0x10300 0x20>;
  135. interrupts = <50>;
  136. };
  137. spi0: spi@10600 {
  138. reg = <0x10600 0x28>;
  139. #address-cells = <1>;
  140. #size-cells = <0>;
  141. cell-index = <0>;
  142. interrupts = <30>;
  143. clocks = <&coreclk 0>;
  144. status = "disabled";
  145. };
  146. spi1: spi@10680 {
  147. reg = <0x10680 0x28>;
  148. #address-cells = <1>;
  149. #size-cells = <0>;
  150. cell-index = <1>;
  151. interrupts = <92>;
  152. clocks = <&coreclk 0>;
  153. status = "disabled";
  154. };
  155. i2c0: i2c@11000 {
  156. compatible = "marvell,mv64xxx-i2c";
  157. #address-cells = <1>;
  158. #size-cells = <0>;
  159. interrupts = <31>;
  160. timeout-ms = <1000>;
  161. clocks = <&coreclk 0>;
  162. status = "disabled";
  163. };
  164. i2c1: i2c@11100 {
  165. compatible = "marvell,mv64xxx-i2c";
  166. #address-cells = <1>;
  167. #size-cells = <0>;
  168. interrupts = <32>;
  169. timeout-ms = <1000>;
  170. clocks = <&coreclk 0>;
  171. status = "disabled";
  172. };
  173. uart0: serial@12000 {
  174. compatible = "snps,dw-apb-uart";
  175. reg = <0x12000 0x100>;
  176. reg-shift = <2>;
  177. interrupts = <41>;
  178. reg-io-width = <1>;
  179. clocks = <&coreclk 0>;
  180. status = "disabled";
  181. };
  182. uart1: serial@12100 {
  183. compatible = "snps,dw-apb-uart";
  184. reg = <0x12100 0x100>;
  185. reg-shift = <2>;
  186. interrupts = <42>;
  187. reg-io-width = <1>;
  188. clocks = <&coreclk 0>;
  189. status = "disabled";
  190. };
  191. pinctrl: pin-ctrl@18000 {
  192. reg = <0x18000 0x38>;
  193. };
  194. coredivclk: corediv-clock@18740 {
  195. compatible = "marvell,armada-370-corediv-clock";
  196. reg = <0x18740 0xc>;
  197. #clock-cells = <1>;
  198. clocks = <&mainpll>;
  199. clock-output-names = "nand";
  200. };
  201. mbusc: mbus-controller@20000 {
  202. compatible = "marvell,mbus-controller";
  203. reg = <0x20000 0x100>, <0x20180 0x20>,
  204. <0x20250 0x8>;
  205. };
  206. mpic: interrupt-controller@20a00 {
  207. compatible = "marvell,mpic";
  208. #interrupt-cells = <1>;
  209. #size-cells = <1>;
  210. interrupt-controller;
  211. msi-controller;
  212. };
  213. coherency-fabric@20200 {
  214. compatible = "marvell,coherency-fabric";
  215. reg = <0x20200 0xb0>, <0x21010 0x1c>;
  216. };
  217. timer@20300 {
  218. reg = <0x20300 0x30>, <0x21040 0x30>;
  219. interrupts = <37>, <38>, <39>, <40>, <5>, <6>;
  220. };
  221. watchdog@20300 {
  222. reg = <0x20300 0x34>, <0x20704 0x4>;
  223. };
  224. pmsu@22000 {
  225. compatible = "marvell,armada-370-pmsu";
  226. reg = <0x22000 0x1000>;
  227. };
  228. usb@50000 {
  229. compatible = "marvell,orion-ehci";
  230. reg = <0x50000 0x500>;
  231. interrupts = <45>;
  232. status = "disabled";
  233. };
  234. usb@51000 {
  235. compatible = "marvell,orion-ehci";
  236. reg = <0x51000 0x500>;
  237. interrupts = <46>;
  238. status = "disabled";
  239. };
  240. eth0: ethernet@70000 {
  241. reg = <0x70000 0x4000>;
  242. interrupts = <8>;
  243. clocks = <&gateclk 4>;
  244. status = "disabled";
  245. };
  246. mdio: mdio {
  247. #address-cells = <1>;
  248. #size-cells = <0>;
  249. compatible = "marvell,orion-mdio";
  250. reg = <0x72004 0x4>;
  251. clocks = <&gateclk 4>;
  252. };
  253. eth1: ethernet@74000 {
  254. reg = <0x74000 0x4000>;
  255. interrupts = <10>;
  256. clocks = <&gateclk 3>;
  257. status = "disabled";
  258. };
  259. sata@a0000 {
  260. compatible = "marvell,armada-370-sata";
  261. reg = <0xa0000 0x5000>;
  262. interrupts = <55>;
  263. clocks = <&gateclk 15>, <&gateclk 30>;
  264. clock-names = "0", "1";
  265. status = "disabled";
  266. };
  267. nand@d0000 {
  268. compatible = "marvell,armada370-nand";
  269. reg = <0xd0000 0x54>;
  270. #address-cells = <1>;
  271. #size-cells = <1>;
  272. interrupts = <113>;
  273. clocks = <&coredivclk 0>;
  274. status = "disabled";
  275. };
  276. mvsdio@d4000 {
  277. compatible = "marvell,orion-sdio";
  278. reg = <0xd4000 0x200>;
  279. interrupts = <54>;
  280. clocks = <&gateclk 17>;
  281. bus-width = <4>;
  282. cap-sdio-irq;
  283. cap-sd-highspeed;
  284. cap-mmc-highspeed;
  285. status = "disabled";
  286. };
  287. };
  288. };
  289. clocks {
  290. /* 2 GHz fixed main PLL */
  291. mainpll: mainpll {
  292. compatible = "fixed-clock";
  293. #clock-cells = <0>;
  294. clock-frequency = <2000000000>;
  295. };
  296. };
  297. };