armada-xp-mv78260.dtsi 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. /*
  2. * Device Tree Include file for Marvell Armada XP family SoC
  3. *
  4. * Copyright (C) 2012 Marvell
  5. *
  6. * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  7. *
  8. * This file is dual-licensed: you can use it either under the terms
  9. * of the GPL or the X11 license, at your option. Note that this dual
  10. * licensing only applies to this file, and not this project as a
  11. * whole.
  12. *
  13. * a) This file is free software; you can redistribute it and/or
  14. * modify it under the terms of the GNU General Public License as
  15. * published by the Free Software Foundation; either version 2 of the
  16. * License, or (at your option) any later version.
  17. *
  18. * This file is distributed in the hope that it will be useful
  19. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  20. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  21. * GNU General Public License for more details.
  22. *
  23. * Or, alternatively
  24. *
  25. * b) Permission is hereby granted, free of charge, to any person
  26. * obtaining a copy of this software and associated documentation
  27. * files (the "Software"), to deal in the Software without
  28. * restriction, including without limitation the rights to use
  29. * copy, modify, merge, publish, distribute, sublicense, and/or
  30. * sell copies of the Software, and to permit persons to whom the
  31. * Software is furnished to do so, subject to the following
  32. * conditions:
  33. *
  34. * The above copyright notice and this permission notice shall be
  35. * included in all copies or substantial portions of the Software.
  36. *
  37. * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
  38. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  39. * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  40. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  41. * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
  42. * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  43. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  44. * OTHER DEALINGS IN THE SOFTWARE.
  45. *
  46. * Contains definitions specific to the Armada XP MV78260 SoC that are not
  47. * common to all Armada XP SoCs.
  48. */
  49. #include "armada-xp.dtsi"
  50. / {
  51. model = "Marvell Armada XP MV78260 SoC";
  52. compatible = "marvell,armadaxp-mv78260", "marvell,armadaxp", "marvell,armada-370-xp";
  53. aliases {
  54. gpio0 = &gpio0;
  55. gpio1 = &gpio1;
  56. gpio2 = &gpio2;
  57. };
  58. cpus {
  59. #address-cells = <1>;
  60. #size-cells = <0>;
  61. enable-method = "marvell,armada-xp-smp";
  62. cpu@0 {
  63. device_type = "cpu";
  64. compatible = "marvell,sheeva-v7";
  65. reg = <0>;
  66. clocks = <&cpuclk 0>;
  67. clock-latency = <1000000>;
  68. };
  69. cpu@1 {
  70. device_type = "cpu";
  71. compatible = "marvell,sheeva-v7";
  72. reg = <1>;
  73. clocks = <&cpuclk 1>;
  74. clock-latency = <1000000>;
  75. };
  76. };
  77. soc {
  78. /*
  79. * MV78260 has 3 PCIe units Gen2.0: Two units can be
  80. * configured as x4 or quad x1 lanes. One unit is
  81. * x4 only.
  82. */
  83. pcie-controller {
  84. compatible = "marvell,armada-xp-pcie";
  85. status = "disabled";
  86. device_type = "pci";
  87. #address-cells = <3>;
  88. #size-cells = <2>;
  89. msi-parent = <&mpic>;
  90. bus-range = <0x00 0xff>;
  91. ranges =
  92. <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 /* Port 0.0 registers */
  93. 0x82000000 0 0x42000 MBUS_ID(0xf0, 0x01) 0x42000 0 0x00002000 /* Port 2.0 registers */
  94. 0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000 /* Port 0.1 registers */
  95. 0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000 /* Port 0.2 registers */
  96. 0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000 /* Port 0.3 registers */
  97. 0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000 /* Port 1.0 registers */
  98. 0x82000000 0 0x84000 MBUS_ID(0xf0, 0x01) 0x84000 0 0x00002000 /* Port 1.1 registers */
  99. 0x82000000 0 0x88000 MBUS_ID(0xf0, 0x01) 0x88000 0 0x00002000 /* Port 1.2 registers */
  100. 0x82000000 0 0x8c000 MBUS_ID(0xf0, 0x01) 0x8c000 0 0x00002000 /* Port 1.3 registers */
  101. 0x82000000 0x1 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */
  102. 0x81000000 0x1 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO */
  103. 0x82000000 0x2 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */
  104. 0x81000000 0x2 0 MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 0.1 IO */
  105. 0x82000000 0x3 0 MBUS_ID(0x04, 0xb8) 0 1 0 /* Port 0.2 MEM */
  106. 0x81000000 0x3 0 MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 0.2 IO */
  107. 0x82000000 0x4 0 MBUS_ID(0x04, 0x78) 0 1 0 /* Port 0.3 MEM */
  108. 0x81000000 0x4 0 MBUS_ID(0x04, 0x70) 0 1 0 /* Port 0.3 IO */
  109. 0x82000000 0x5 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */
  110. 0x81000000 0x5 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO */
  111. 0x82000000 0x6 0 MBUS_ID(0x08, 0xd8) 0 1 0 /* Port 1.1 MEM */
  112. 0x81000000 0x6 0 MBUS_ID(0x08, 0xd0) 0 1 0 /* Port 1.1 IO */
  113. 0x82000000 0x7 0 MBUS_ID(0x08, 0xb8) 0 1 0 /* Port 1.2 MEM */
  114. 0x81000000 0x7 0 MBUS_ID(0x08, 0xb0) 0 1 0 /* Port 1.2 IO */
  115. 0x82000000 0x8 0 MBUS_ID(0x08, 0x78) 0 1 0 /* Port 1.3 MEM */
  116. 0x81000000 0x8 0 MBUS_ID(0x08, 0x70) 0 1 0 /* Port 1.3 IO */
  117. 0x82000000 0x9 0 MBUS_ID(0x04, 0xf8) 0 1 0 /* Port 2.0 MEM */
  118. 0x81000000 0x9 0 MBUS_ID(0x04, 0xf0) 0 1 0 /* Port 2.0 IO */>;
  119. pcie@1,0 {
  120. device_type = "pci";
  121. assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
  122. reg = <0x0800 0 0 0 0>;
  123. #address-cells = <3>;
  124. #size-cells = <2>;
  125. #interrupt-cells = <1>;
  126. ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
  127. 0x81000000 0 0 0x81000000 0x1 0 1 0>;
  128. interrupt-map-mask = <0 0 0 0>;
  129. interrupt-map = <0 0 0 0 &mpic 58>;
  130. marvell,pcie-port = <0>;
  131. marvell,pcie-lane = <0>;
  132. clocks = <&gateclk 5>;
  133. status = "disabled";
  134. };
  135. pcie@2,0 {
  136. device_type = "pci";
  137. assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
  138. reg = <0x1000 0 0 0 0>;
  139. #address-cells = <3>;
  140. #size-cells = <2>;
  141. #interrupt-cells = <1>;
  142. ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
  143. 0x81000000 0 0 0x81000000 0x2 0 1 0>;
  144. interrupt-map-mask = <0 0 0 0>;
  145. interrupt-map = <0 0 0 0 &mpic 59>;
  146. marvell,pcie-port = <0>;
  147. marvell,pcie-lane = <1>;
  148. clocks = <&gateclk 6>;
  149. status = "disabled";
  150. };
  151. pcie@3,0 {
  152. device_type = "pci";
  153. assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
  154. reg = <0x1800 0 0 0 0>;
  155. #address-cells = <3>;
  156. #size-cells = <2>;
  157. #interrupt-cells = <1>;
  158. ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
  159. 0x81000000 0 0 0x81000000 0x3 0 1 0>;
  160. interrupt-map-mask = <0 0 0 0>;
  161. interrupt-map = <0 0 0 0 &mpic 60>;
  162. marvell,pcie-port = <0>;
  163. marvell,pcie-lane = <2>;
  164. clocks = <&gateclk 7>;
  165. status = "disabled";
  166. };
  167. pcie@4,0 {
  168. device_type = "pci";
  169. assigned-addresses = <0x82000800 0 0x4c000 0 0x2000>;
  170. reg = <0x2000 0 0 0 0>;
  171. #address-cells = <3>;
  172. #size-cells = <2>;
  173. #interrupt-cells = <1>;
  174. ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
  175. 0x81000000 0 0 0x81000000 0x4 0 1 0>;
  176. interrupt-map-mask = <0 0 0 0>;
  177. interrupt-map = <0 0 0 0 &mpic 61>;
  178. marvell,pcie-port = <0>;
  179. marvell,pcie-lane = <3>;
  180. clocks = <&gateclk 8>;
  181. status = "disabled";
  182. };
  183. pcie@5,0 {
  184. device_type = "pci";
  185. assigned-addresses = <0x82000800 0 0x80000 0 0x2000>;
  186. reg = <0x2800 0 0 0 0>;
  187. #address-cells = <3>;
  188. #size-cells = <2>;
  189. #interrupt-cells = <1>;
  190. ranges = <0x82000000 0 0 0x82000000 0x5 0 1 0
  191. 0x81000000 0 0 0x81000000 0x5 0 1 0>;
  192. interrupt-map-mask = <0 0 0 0>;
  193. interrupt-map = <0 0 0 0 &mpic 62>;
  194. marvell,pcie-port = <1>;
  195. marvell,pcie-lane = <0>;
  196. clocks = <&gateclk 9>;
  197. status = "disabled";
  198. };
  199. pcie@6,0 {
  200. device_type = "pci";
  201. assigned-addresses = <0x82000800 0 0x84000 0 0x2000>;
  202. reg = <0x3000 0 0 0 0>;
  203. #address-cells = <3>;
  204. #size-cells = <2>;
  205. #interrupt-cells = <1>;
  206. ranges = <0x82000000 0 0 0x82000000 0x6 0 1 0
  207. 0x81000000 0 0 0x81000000 0x6 0 1 0>;
  208. interrupt-map-mask = <0 0 0 0>;
  209. interrupt-map = <0 0 0 0 &mpic 63>;
  210. marvell,pcie-port = <1>;
  211. marvell,pcie-lane = <1>;
  212. clocks = <&gateclk 10>;
  213. status = "disabled";
  214. };
  215. pcie@7,0 {
  216. device_type = "pci";
  217. assigned-addresses = <0x82000800 0 0x88000 0 0x2000>;
  218. reg = <0x3800 0 0 0 0>;
  219. #address-cells = <3>;
  220. #size-cells = <2>;
  221. #interrupt-cells = <1>;
  222. ranges = <0x82000000 0 0 0x82000000 0x7 0 1 0
  223. 0x81000000 0 0 0x81000000 0x7 0 1 0>;
  224. interrupt-map-mask = <0 0 0 0>;
  225. interrupt-map = <0 0 0 0 &mpic 64>;
  226. marvell,pcie-port = <1>;
  227. marvell,pcie-lane = <2>;
  228. clocks = <&gateclk 11>;
  229. status = "disabled";
  230. };
  231. pcie@8,0 {
  232. device_type = "pci";
  233. assigned-addresses = <0x82000800 0 0x8c000 0 0x2000>;
  234. reg = <0x4000 0 0 0 0>;
  235. #address-cells = <3>;
  236. #size-cells = <2>;
  237. #interrupt-cells = <1>;
  238. ranges = <0x82000000 0 0 0x82000000 0x8 0 1 0
  239. 0x81000000 0 0 0x81000000 0x8 0 1 0>;
  240. interrupt-map-mask = <0 0 0 0>;
  241. interrupt-map = <0 0 0 0 &mpic 65>;
  242. marvell,pcie-port = <1>;
  243. marvell,pcie-lane = <3>;
  244. clocks = <&gateclk 12>;
  245. status = "disabled";
  246. };
  247. pcie@9,0 {
  248. device_type = "pci";
  249. assigned-addresses = <0x82000800 0 0x42000 0 0x2000>;
  250. reg = <0x4800 0 0 0 0>;
  251. #address-cells = <3>;
  252. #size-cells = <2>;
  253. #interrupt-cells = <1>;
  254. ranges = <0x82000000 0 0 0x82000000 0x9 0 1 0
  255. 0x81000000 0 0 0x81000000 0x9 0 1 0>;
  256. interrupt-map-mask = <0 0 0 0>;
  257. interrupt-map = <0 0 0 0 &mpic 99>;
  258. marvell,pcie-port = <2>;
  259. marvell,pcie-lane = <0>;
  260. clocks = <&gateclk 26>;
  261. status = "disabled";
  262. };
  263. };
  264. internal-regs {
  265. gpio0: gpio@18100 {
  266. compatible = "marvell,orion-gpio";
  267. reg = <0x18100 0x40>;
  268. ngpios = <32>;
  269. gpio-controller;
  270. #gpio-cells = <2>;
  271. interrupt-controller;
  272. #interrupt-cells = <2>;
  273. interrupts = <82>, <83>, <84>, <85>;
  274. };
  275. gpio1: gpio@18140 {
  276. compatible = "marvell,orion-gpio";
  277. reg = <0x18140 0x40>;
  278. ngpios = <32>;
  279. gpio-controller;
  280. #gpio-cells = <2>;
  281. interrupt-controller;
  282. #interrupt-cells = <2>;
  283. interrupts = <87>, <88>, <89>, <90>;
  284. };
  285. gpio2: gpio@18180 {
  286. compatible = "marvell,orion-gpio";
  287. reg = <0x18180 0x40>;
  288. ngpios = <3>;
  289. gpio-controller;
  290. #gpio-cells = <2>;
  291. interrupt-controller;
  292. #interrupt-cells = <2>;
  293. interrupts = <91>;
  294. };
  295. eth3: ethernet@34000 {
  296. compatible = "marvell,armada-xp-neta";
  297. reg = <0x34000 0x4000>;
  298. interrupts = <14>;
  299. clocks = <&gateclk 1>;
  300. status = "disabled";
  301. };
  302. };
  303. };
  304. };
  305. &pinctrl {
  306. compatible = "marvell,mv78260-pinctrl";
  307. };