db78460.dts 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. /*
  2. * Copyright (c) 2010 The FreeBSD Foundation
  3. * Copyright (c) 2010-2011 Semihalf
  4. * All rights reserved.
  5. *
  6. * Redistribution and use in source and binary forms, with or without
  7. * modification, are permitted provided that the following conditions
  8. * are met:
  9. * 1. Redistributions of source code must retain the above copyright
  10. * notice, this list of conditions and the following disclaimer.
  11. * 2. Redistributions in binary form must reproduce the above copyright
  12. * notice, this list of conditions and the following disclaimer in the
  13. * documentation and/or other materials provided with the distribution.
  14. *
  15. * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  16. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  17. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  18. * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  19. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  20. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  21. * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  22. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  23. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  24. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  25. * SUCH DAMAGE.
  26. *
  27. * Marvell DB-78460 Device Tree Source.
  28. *
  29. * $FreeBSD$
  30. */
  31. /dts-v1/;
  32. / {
  33. model = "mrvl,DB-78460";
  34. #address-cells = <1>;
  35. #size-cells = <1>;
  36. aliases {
  37. serial0 = &serial0;
  38. };
  39. cpus {
  40. #address-cells = <1>;
  41. #size-cells = <0>;
  42. cpu@0 {
  43. device_type = "cpu";
  44. compatible = "ARM,88VS584";
  45. reg = <0x0>;
  46. d-cache-line-size = <32>; // 32 bytes
  47. i-cache-line-size = <32>; // 32 bytes
  48. d-cache-size = <0x8000>; // L1, 32K
  49. i-cache-size = <0x8000>; // L1, 32K
  50. timebase-frequency = <0>;
  51. bus-frequency = <200000000>;
  52. clock-frequency = <0>;
  53. };
  54. };
  55. memory {
  56. device_type = "memory";
  57. reg = <0x0 0x80000000>; // 2G at 0x0
  58. };
  59. soc78460@d0000000 {
  60. #address-cells = <1>;
  61. #size-cells = <1>;
  62. compatible = "simple-bus";
  63. ranges = <0x0 0xd0000000 0x00100000>;
  64. bus-frequency = <0>;
  65. MPIC: mpic@20a00 {
  66. interrupt-controller;
  67. #address-cells = <0>;
  68. #interrupt-cells = <1>;
  69. reg = <0x20a00 0x500 0x21870 0x58 0x20400 0x100>;
  70. compatible = "mrvl,mpic";
  71. };
  72. rtc@10300 {
  73. compatible = "mrvl,rtc";
  74. reg = <0x10300 0x08>;
  75. };
  76. timer@21840 {
  77. compatible = "marvell,armada-xp-timer";
  78. reg = <0x21840 0x30>;
  79. interrupts = <5>;
  80. interrupt-parent = <&MPIC>;
  81. mrvl,has-wdt;
  82. };
  83. twsi@11000 {
  84. #address-cells = <1>;
  85. #size-cells = <0>;
  86. compatible = "mrvl,twsi";
  87. reg = <0x11000 0x20>;
  88. interrupts = <31>;
  89. interrupt-parent = <&MPIC>;
  90. };
  91. twsi@11100 {
  92. #address-cells = <1>;
  93. #size-cells = <0>;
  94. compatible = "mrvl,twsi";
  95. reg = <0x11100 0x20>;
  96. interrupts = <32>;
  97. interrupt-parent = <&MPIC>;
  98. };
  99. serial0: serial@12000 {
  100. compatible = "snps,dw-apb-uart";
  101. reg = <0x12000 0x20>;
  102. reg-shift = <2>;
  103. current-speed = <115200>;
  104. clock-frequency = <0>;
  105. interrupts = <41>;
  106. interrupt-parent = <&MPIC>;
  107. };
  108. serial1: serial@12100 {
  109. compatible = "snps,dw-apb-uart";
  110. reg = <0x12100 0x20>;
  111. reg-shift = <2>;
  112. current-speed = <115200>;
  113. clock-frequency = <0>;
  114. interrupts = <42>;
  115. interrupt-parent = <&MPIC>;
  116. };
  117. serial2: serial@12200 {
  118. compatible = "snps,dw-apb-uart";
  119. reg = <0x12200 0x20>;
  120. reg-shift = <2>;
  121. current-speed = <115200>;
  122. clock-frequency = <0>;
  123. interrupts = <43>;
  124. interrupt-parent = <&MPIC>;
  125. };
  126. serial3: serial@12300 {
  127. compatible = "snps,dw-apb-uart";
  128. reg = <0x12300 0x20>;
  129. reg-shift = <2>;
  130. current-speed = <115200>;
  131. clock-frequency = <0>;
  132. interrupts = <44>;
  133. interrupt-parent = <&MPIC>;
  134. };
  135. MPP: mpp@10000 {
  136. #pin-cells = <2>;
  137. compatible = "mrvl,mpp";
  138. reg = <0x18000 0x34>;
  139. pin-count = <68>;
  140. pin-map = <
  141. 0 1 /* MPP[0]: GE1_TXCLK */
  142. 1 1 /* MPP[1]: GE1_TXCTL */
  143. 2 1 /* MPP[2]: GE1_RXCTL */
  144. 3 1 /* MPP[3]: GE1_RXCLK */
  145. 4 1 /* MPP[4]: GE1_TXD[0] */
  146. 5 1 /* MPP[5]: GE1_TXD[1] */
  147. 6 1 /* MPP[6]: GE1_TXD[2] */
  148. 7 1 /* MPP[7]: GE1_TXD[3] */
  149. 8 1 /* MPP[8]: GE1_RXD[0] */
  150. 9 1 /* MPP[9]: GE1_RXD[1] */
  151. 10 1 /* MPP[10]: GE1_RXD[2] */
  152. 11 1 /* MPP[11]: GE1_RXD[3] */
  153. 12 2 /* MPP[13]: SYSRST_OUTn */
  154. 13 2 /* MPP[13]: SYSRST_OUTn */
  155. 14 2 /* MPP[14]: SATA1_ACTn */
  156. 15 2 /* MPP[15]: SATA0_ACTn */
  157. 16 2 /* MPP[16]: UA2_TXD */
  158. 17 2 /* MPP[17]: UA2_RXD */
  159. 18 2 /* MPP[18]: <UNKNOWN> */
  160. 19 2 /* MPP[19]: <UNKNOWN> */
  161. 20 2 /* MPP[20]: <UNKNOWN> */
  162. 21 2 /* MPP[21]: <UNKNOWN> */
  163. 22 2 /* MPP[22]: UA3_TXD */
  164. 23 2
  165. 24 0
  166. 25 0
  167. 26 0
  168. 27 0
  169. 28 4
  170. 29 0
  171. 30 1
  172. 31 1
  173. 32 1
  174. 33 1
  175. 34 1
  176. 35 1
  177. 36 1
  178. 37 1
  179. 38 1
  180. 39 1
  181. 40 0
  182. 41 3
  183. 42 1
  184. 43 1
  185. 44 2
  186. 45 2
  187. 46 4
  188. 47 3
  189. 48 0
  190. 49 1
  191. 50 1
  192. 51 1
  193. 52 1
  194. 53 1
  195. 54 1
  196. 55 1
  197. 56 1
  198. 57 0
  199. 58 1
  200. 59 1
  201. 60 1
  202. 61 1
  203. 62 1
  204. 63 1
  205. 64 1
  206. 65 1
  207. 66 1
  208. 67 2 >;
  209. };
  210. usb@50000 {
  211. compatible = "mrvl,usb-ehci", "usb-ehci";
  212. reg = <0x50000 0x1000>;
  213. interrupts = <124 45>;
  214. interrupt-parent = <&MPIC>;
  215. };
  216. usb@51000 {
  217. compatible = "mrvl,usb-ehci", "usb-ehci";
  218. reg = <0x51000 0x1000>;
  219. interrupts = <124 46>;
  220. interrupt-parent = <&MPIC>;
  221. };
  222. usb@52000 {
  223. compatible = "mrvl,usb-ehci", "usb-ehci";
  224. reg = <0x52000 0x1000>;
  225. interrupts = <124 47>;
  226. interrupt-parent = <&MPIC>;
  227. };
  228. enet0: ethernet@72000 {
  229. #address-cells = <1>;
  230. #size-cells = <1>;
  231. model = "V2";
  232. compatible = "mrvl,ge";
  233. reg = <0x72000 0x2000>;
  234. ranges = <0x0 0x72000 0x2000>;
  235. local-mac-address = [ 00 04 01 07 84 60 ];
  236. interrupts = <67 68 122 >;
  237. interrupt-parent = <&MPIC>;
  238. phy-handle = <&phy0>;
  239. has-neta;
  240. mdio@0 {
  241. #address-cells = <1>;
  242. #size-cells = <0>;
  243. compatible = "mrvl,mdio";
  244. phy0: ethernet-phy@0 {
  245. reg = <0x0>;
  246. };
  247. phy1: ethernet-phy@1 {
  248. reg = <0x1>;
  249. };
  250. phy2: ethernet-phy@2 {
  251. reg = <0x19>;
  252. };
  253. phy3: ethernet-phy@3 {
  254. reg = <0x1b>;
  255. };
  256. };
  257. };
  258. sata@A0000 {
  259. compatible = "mrvl,sata";
  260. reg = <0xA0000 0x6000>;
  261. interrupts = <55>;
  262. interrupt-parent = <&MPIC>;
  263. };
  264. };
  265. pci0: pcie@d0040000 {
  266. compatible = "mrvl,pcie";
  267. device_type = "pci";
  268. #interrupt-cells = <1>;
  269. #size-cells = <2>;
  270. #address-cells = <3>;
  271. reg = <0xd0040000 0x2000>;
  272. bus-range = <0 255>;
  273. ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x20000000
  274. 0x01000000 0x0 0x00000000 0xa0000000 0x0 0x08000000>;
  275. clock-frequency = <33333333>;
  276. interrupt-parent = <&MPIC>;
  277. interrupts = <120>;
  278. interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
  279. interrupt-map = <
  280. 0x0800 0x0 0x0 0x1 &MPIC 0x3A
  281. 0x0800 0x0 0x0 0x2 &MPIC 0x3A
  282. 0x0800 0x0 0x0 0x3 &MPIC 0x3A
  283. 0x0800 0x0 0x0 0x4 &MPIC 0x3A
  284. >;
  285. };
  286. sram@ffff0000 {
  287. compatible = "mrvl,cesa-sram";
  288. reg = <0xffff0000 0x00010000>;
  289. };
  290. chosen {
  291. stdin = "serial0";
  292. stdout = "serial0";
  293. stddbg = "serial0";
  294. };
  295. };