armada-xp-mv78260.dtsi 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Device Tree Include file for Marvell Armada XP family SoC
  4. *
  5. * Copyright (C) 2012 Marvell
  6. *
  7. * Thomas Petazzoni <[email protected]>
  8. *
  9. * Contains definitions specific to the Armada XP MV78260 SoC that are not
  10. * common to all Armada XP SoCs.
  11. */
  12. #include "armada-xp.dtsi"
  13. / {
  14. model = "Marvell Armada XP MV78260 SoC";
  15. compatible = "marvell,armadaxp-mv78260", "marvell,armadaxp", "marvell,armada-370-xp";
  16. aliases {
  17. gpio0 = &gpio0;
  18. gpio1 = &gpio1;
  19. gpio2 = &gpio2;
  20. };
  21. cpus {
  22. #address-cells = <1>;
  23. #size-cells = <0>;
  24. enable-method = "marvell,armada-xp-smp";
  25. cpu@0 {
  26. device_type = "cpu";
  27. compatible = "marvell,sheeva-v7";
  28. reg = <0>;
  29. clocks = <&cpuclk 0>;
  30. clock-latency = <1000000>;
  31. };
  32. cpu@1 {
  33. device_type = "cpu";
  34. compatible = "marvell,sheeva-v7";
  35. reg = <1>;
  36. clocks = <&cpuclk 1>;
  37. clock-latency = <1000000>;
  38. };
  39. };
  40. soc {
  41. /*
  42. * MV78260 has 3 PCIe units Gen2.0: Two units can be
  43. * configured as x4 or quad x1 lanes. One unit is
  44. * x4 only.
  45. */
  46. pciec: pcie@82000000 {
  47. compatible = "marvell,armada-xp-pcie";
  48. status = "disabled";
  49. device_type = "pci";
  50. #address-cells = <3>;
  51. #size-cells = <2>;
  52. msi-parent = <&mpic>;
  53. bus-range = <0x00 0xff>;
  54. ranges =
  55. <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 /* Port 0.0 registers */
  56. 0x82000000 0 0x42000 MBUS_ID(0xf0, 0x01) 0x42000 0 0x00002000 /* Port 2.0 registers */
  57. 0x82000000 0 0x44000 MBUS_ID(0xf0, 0x01) 0x44000 0 0x00002000 /* Port 0.1 registers */
  58. 0x82000000 0 0x48000 MBUS_ID(0xf0, 0x01) 0x48000 0 0x00002000 /* Port 0.2 registers */
  59. 0x82000000 0 0x4c000 MBUS_ID(0xf0, 0x01) 0x4c000 0 0x00002000 /* Port 0.3 registers */
  60. 0x82000000 0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x00002000 /* Port 1.0 registers */
  61. 0x82000000 0 0x84000 MBUS_ID(0xf0, 0x01) 0x84000 0 0x00002000 /* Port 1.1 registers */
  62. 0x82000000 0 0x88000 MBUS_ID(0xf0, 0x01) 0x88000 0 0x00002000 /* Port 1.2 registers */
  63. 0x82000000 0 0x8c000 MBUS_ID(0xf0, 0x01) 0x8c000 0 0x00002000 /* Port 1.3 registers */
  64. 0x82000000 0x1 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */
  65. 0x81000000 0x1 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO */
  66. 0x82000000 0x2 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */
  67. 0x81000000 0x2 0 MBUS_ID(0x04, 0xd0) 0 1 0 /* Port 0.1 IO */
  68. 0x82000000 0x3 0 MBUS_ID(0x04, 0xb8) 0 1 0 /* Port 0.2 MEM */
  69. 0x81000000 0x3 0 MBUS_ID(0x04, 0xb0) 0 1 0 /* Port 0.2 IO */
  70. 0x82000000 0x4 0 MBUS_ID(0x04, 0x78) 0 1 0 /* Port 0.3 MEM */
  71. 0x81000000 0x4 0 MBUS_ID(0x04, 0x70) 0 1 0 /* Port 0.3 IO */
  72. 0x82000000 0x5 0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 MEM */
  73. 0x81000000 0x5 0 MBUS_ID(0x08, 0xe0) 0 1 0 /* Port 1.0 IO */
  74. 0x82000000 0x6 0 MBUS_ID(0x08, 0xd8) 0 1 0 /* Port 1.1 MEM */
  75. 0x81000000 0x6 0 MBUS_ID(0x08, 0xd0) 0 1 0 /* Port 1.1 IO */
  76. 0x82000000 0x7 0 MBUS_ID(0x08, 0xb8) 0 1 0 /* Port 1.2 MEM */
  77. 0x81000000 0x7 0 MBUS_ID(0x08, 0xb0) 0 1 0 /* Port 1.2 IO */
  78. 0x82000000 0x8 0 MBUS_ID(0x08, 0x78) 0 1 0 /* Port 1.3 MEM */
  79. 0x81000000 0x8 0 MBUS_ID(0x08, 0x70) 0 1 0 /* Port 1.3 IO */
  80. 0x82000000 0x9 0 MBUS_ID(0x04, 0xf8) 0 1 0 /* Port 2.0 MEM */
  81. 0x81000000 0x9 0 MBUS_ID(0x04, 0xf0) 0 1 0 /* Port 2.0 IO */>;
  82. pcie1: pcie@1,0 {
  83. device_type = "pci";
  84. assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
  85. reg = <0x0800 0 0 0 0>;
  86. #address-cells = <3>;
  87. #size-cells = <2>;
  88. interrupt-names = "intx";
  89. interrupts-extended = <&mpic 58>;
  90. #interrupt-cells = <1>;
  91. ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
  92. 0x81000000 0 0 0x81000000 0x1 0 1 0>;
  93. bus-range = <0x00 0xff>;
  94. interrupt-map-mask = <0 0 0 7>;
  95. interrupt-map = <0 0 0 1 &pcie1_intc 0>,
  96. <0 0 0 2 &pcie1_intc 1>,
  97. <0 0 0 3 &pcie1_intc 2>,
  98. <0 0 0 4 &pcie1_intc 3>;
  99. marvell,pcie-port = <0>;
  100. marvell,pcie-lane = <0>;
  101. clocks = <&gateclk 5>;
  102. status = "disabled";
  103. pcie1_intc: interrupt-controller {
  104. interrupt-controller;
  105. #interrupt-cells = <1>;
  106. };
  107. };
  108. pcie2: pcie@2,0 {
  109. device_type = "pci";
  110. assigned-addresses = <0x82001000 0 0x44000 0 0x2000>;
  111. reg = <0x1000 0 0 0 0>;
  112. #address-cells = <3>;
  113. #size-cells = <2>;
  114. interrupt-names = "intx";
  115. interrupts-extended = <&mpic 59>;
  116. #interrupt-cells = <1>;
  117. ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
  118. 0x81000000 0 0 0x81000000 0x2 0 1 0>;
  119. bus-range = <0x00 0xff>;
  120. interrupt-map-mask = <0 0 0 7>;
  121. interrupt-map = <0 0 0 1 &pcie2_intc 0>,
  122. <0 0 0 2 &pcie2_intc 1>,
  123. <0 0 0 3 &pcie2_intc 2>,
  124. <0 0 0 4 &pcie2_intc 3>;
  125. marvell,pcie-port = <0>;
  126. marvell,pcie-lane = <1>;
  127. clocks = <&gateclk 6>;
  128. status = "disabled";
  129. pcie2_intc: interrupt-controller {
  130. interrupt-controller;
  131. #interrupt-cells = <1>;
  132. };
  133. };
  134. pcie3: pcie@3,0 {
  135. device_type = "pci";
  136. assigned-addresses = <0x82001800 0 0x48000 0 0x2000>;
  137. reg = <0x1800 0 0 0 0>;
  138. #address-cells = <3>;
  139. #size-cells = <2>;
  140. interrupt-names = "intx";
  141. interrupts-extended = <&mpic 60>;
  142. #interrupt-cells = <1>;
  143. ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
  144. 0x81000000 0 0 0x81000000 0x3 0 1 0>;
  145. bus-range = <0x00 0xff>;
  146. interrupt-map-mask = <0 0 0 7>;
  147. interrupt-map = <0 0 0 1 &pcie3_intc 0>,
  148. <0 0 0 2 &pcie3_intc 1>,
  149. <0 0 0 3 &pcie3_intc 2>,
  150. <0 0 0 4 &pcie3_intc 3>;
  151. marvell,pcie-port = <0>;
  152. marvell,pcie-lane = <2>;
  153. clocks = <&gateclk 7>;
  154. status = "disabled";
  155. pcie3_intc: interrupt-controller {
  156. interrupt-controller;
  157. #interrupt-cells = <1>;
  158. };
  159. };
  160. pcie4: pcie@4,0 {
  161. device_type = "pci";
  162. assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>;
  163. reg = <0x2000 0 0 0 0>;
  164. #address-cells = <3>;
  165. #size-cells = <2>;
  166. interrupt-names = "intx";
  167. interrupts-extended = <&mpic 61>;
  168. #interrupt-cells = <1>;
  169. ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
  170. 0x81000000 0 0 0x81000000 0x4 0 1 0>;
  171. bus-range = <0x00 0xff>;
  172. interrupt-map-mask = <0 0 0 7>;
  173. interrupt-map = <0 0 0 1 &pcie4_intc 0>,
  174. <0 0 0 2 &pcie4_intc 1>,
  175. <0 0 0 3 &pcie4_intc 2>,
  176. <0 0 0 4 &pcie4_intc 3>;
  177. marvell,pcie-port = <0>;
  178. marvell,pcie-lane = <3>;
  179. clocks = <&gateclk 8>;
  180. status = "disabled";
  181. pcie4_intc: interrupt-controller {
  182. interrupt-controller;
  183. #interrupt-cells = <1>;
  184. };
  185. };
  186. pcie5: pcie@5,0 {
  187. device_type = "pci";
  188. assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
  189. reg = <0x2800 0 0 0 0>;
  190. #address-cells = <3>;
  191. #size-cells = <2>;
  192. interrupt-names = "intx";
  193. interrupts-extended = <&mpic 62>;
  194. #interrupt-cells = <1>;
  195. ranges = <0x82000000 0 0 0x82000000 0x5 0 1 0
  196. 0x81000000 0 0 0x81000000 0x5 0 1 0>;
  197. bus-range = <0x00 0xff>;
  198. interrupt-map-mask = <0 0 0 7>;
  199. interrupt-map = <0 0 0 1 &pcie5_intc 0>,
  200. <0 0 0 2 &pcie5_intc 1>,
  201. <0 0 0 3 &pcie5_intc 2>,
  202. <0 0 0 4 &pcie5_intc 3>;
  203. marvell,pcie-port = <1>;
  204. marvell,pcie-lane = <0>;
  205. clocks = <&gateclk 9>;
  206. status = "disabled";
  207. pcie5_intc: interrupt-controller {
  208. interrupt-controller;
  209. #interrupt-cells = <1>;
  210. };
  211. };
  212. pcie6: pcie@6,0 {
  213. device_type = "pci";
  214. assigned-addresses = <0x82003000 0 0x84000 0 0x2000>;
  215. reg = <0x3000 0 0 0 0>;
  216. #address-cells = <3>;
  217. #size-cells = <2>;
  218. interrupt-names = "intx";
  219. interrupts-extended = <&mpic 63>;
  220. #interrupt-cells = <1>;
  221. ranges = <0x82000000 0 0 0x82000000 0x6 0 1 0
  222. 0x81000000 0 0 0x81000000 0x6 0 1 0>;
  223. bus-range = <0x00 0xff>;
  224. interrupt-map-mask = <0 0 0 7>;
  225. interrupt-map = <0 0 0 1 &pcie6_intc 0>,
  226. <0 0 0 2 &pcie6_intc 1>,
  227. <0 0 0 3 &pcie6_intc 2>,
  228. <0 0 0 4 &pcie6_intc 3>;
  229. marvell,pcie-port = <1>;
  230. marvell,pcie-lane = <1>;
  231. clocks = <&gateclk 10>;
  232. status = "disabled";
  233. pcie6_intc: interrupt-controller {
  234. interrupt-controller;
  235. #interrupt-cells = <1>;
  236. };
  237. };
  238. pcie7: pcie@7,0 {
  239. device_type = "pci";
  240. assigned-addresses = <0x82003800 0 0x88000 0 0x2000>;
  241. reg = <0x3800 0 0 0 0>;
  242. #address-cells = <3>;
  243. #size-cells = <2>;
  244. interrupt-names = "intx";
  245. interrupts-extended = <&mpic 64>;
  246. #interrupt-cells = <1>;
  247. ranges = <0x82000000 0 0 0x82000000 0x7 0 1 0
  248. 0x81000000 0 0 0x81000000 0x7 0 1 0>;
  249. bus-range = <0x00 0xff>;
  250. interrupt-map-mask = <0 0 0 7>;
  251. interrupt-map = <0 0 0 1 &pcie7_intc 0>,
  252. <0 0 0 2 &pcie7_intc 1>,
  253. <0 0 0 3 &pcie7_intc 2>,
  254. <0 0 0 4 &pcie7_intc 3>;
  255. marvell,pcie-port = <1>;
  256. marvell,pcie-lane = <2>;
  257. clocks = <&gateclk 11>;
  258. status = "disabled";
  259. pcie7_intc: interrupt-controller {
  260. interrupt-controller;
  261. #interrupt-cells = <1>;
  262. };
  263. };
  264. pcie8: pcie@8,0 {
  265. device_type = "pci";
  266. assigned-addresses = <0x82004000 0 0x8c000 0 0x2000>;
  267. reg = <0x4000 0 0 0 0>;
  268. #address-cells = <3>;
  269. #size-cells = <2>;
  270. interrupt-names = "intx";
  271. interrupts-extended = <&mpic 65>;
  272. #interrupt-cells = <1>;
  273. ranges = <0x82000000 0 0 0x82000000 0x8 0 1 0
  274. 0x81000000 0 0 0x81000000 0x8 0 1 0>;
  275. bus-range = <0x00 0xff>;
  276. interrupt-map-mask = <0 0 0 7>;
  277. interrupt-map = <0 0 0 1 &pcie8_intc 0>,
  278. <0 0 0 2 &pcie8_intc 1>,
  279. <0 0 0 3 &pcie8_intc 2>,
  280. <0 0 0 4 &pcie8_intc 3>;
  281. marvell,pcie-port = <1>;
  282. marvell,pcie-lane = <3>;
  283. clocks = <&gateclk 12>;
  284. status = "disabled";
  285. pcie8_intc: interrupt-controller {
  286. interrupt-controller;
  287. #interrupt-cells = <1>;
  288. };
  289. };
  290. pcie9: pcie@9,0 {
  291. device_type = "pci";
  292. assigned-addresses = <0x82004800 0 0x42000 0 0x2000>;
  293. reg = <0x4800 0 0 0 0>;
  294. #address-cells = <3>;
  295. #size-cells = <2>;
  296. interrupt-names = "intx";
  297. interrupts-extended = <&mpic 99>;
  298. #interrupt-cells = <1>;
  299. ranges = <0x82000000 0 0 0x82000000 0x9 0 1 0
  300. 0x81000000 0 0 0x81000000 0x9 0 1 0>;
  301. bus-range = <0x00 0xff>;
  302. interrupt-map-mask = <0 0 0 7>;
  303. interrupt-map = <0 0 0 1 &pcie9_intc 0>,
  304. <0 0 0 2 &pcie9_intc 1>,
  305. <0 0 0 3 &pcie9_intc 2>,
  306. <0 0 0 4 &pcie9_intc 3>;
  307. marvell,pcie-port = <2>;
  308. marvell,pcie-lane = <0>;
  309. clocks = <&gateclk 26>;
  310. status = "disabled";
  311. pcie9_intc: interrupt-controller {
  312. interrupt-controller;
  313. #interrupt-cells = <1>;
  314. };
  315. };
  316. };
  317. internal-regs {
  318. gpio0: gpio@18100 {
  319. compatible = "marvell,armada-370-gpio",
  320. "marvell,orion-gpio";
  321. reg = <0x18100 0x40>, <0x181c0 0x08>;
  322. reg-names = "gpio", "pwm";
  323. ngpios = <32>;
  324. gpio-controller;
  325. #gpio-cells = <2>;
  326. #pwm-cells = <2>;
  327. interrupt-controller;
  328. #interrupt-cells = <2>;
  329. interrupts = <82>, <83>, <84>, <85>;
  330. clocks = <&coreclk 0>;
  331. };
  332. gpio1: gpio@18140 {
  333. compatible = "marvell,armada-370-gpio",
  334. "marvell,orion-gpio";
  335. reg = <0x18140 0x40>, <0x181c8 0x08>;
  336. reg-names = "gpio", "pwm";
  337. ngpios = <32>;
  338. gpio-controller;
  339. #gpio-cells = <2>;
  340. #pwm-cells = <2>;
  341. interrupt-controller;
  342. #interrupt-cells = <2>;
  343. interrupts = <87>, <88>, <89>, <90>;
  344. clocks = <&coreclk 0>;
  345. };
  346. gpio2: gpio@18180 {
  347. compatible = "marvell,armada-370-gpio",
  348. "marvell,orion-gpio";
  349. reg = <0x18180 0x40>;
  350. ngpios = <3>;
  351. gpio-controller;
  352. #gpio-cells = <2>;
  353. interrupt-controller;
  354. #interrupt-cells = <2>;
  355. interrupts = <91>;
  356. };
  357. eth3: ethernet@34000 {
  358. compatible = "marvell,armada-xp-neta";
  359. reg = <0x34000 0x4000>;
  360. interrupts = <14>;
  361. clocks = <&gateclk 1>;
  362. status = "disabled";
  363. };
  364. };
  365. };
  366. };
  367. &pinctrl {
  368. compatible = "marvell,mv78260-pinctrl";
  369. };