prpmc2800.dts 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. /* Device Tree Source for Motorola PrPMC2800
  2. *
  3. * Author: Mark A. Greer <mgreer@mvista.com>
  4. *
  5. * 2007 (c) MontaVista, Software, Inc. This file is licensed under
  6. * the terms of the GNU General Public License version 2. This program
  7. * is licensed "as is" without any warranty of any kind, whether express
  8. * or implied.
  9. *
  10. * Property values that are labeled as "Default" will be updated by bootwrapper
  11. * if it can determine the exact PrPMC type.
  12. */
  13. / {
  14. #address-cells = <1>;
  15. #size-cells = <1>;
  16. model = "PrPMC280/PrPMC2800"; /* Default */
  17. compatible = "motorola,PrPMC2800";
  18. coherency-off;
  19. cpus {
  20. #address-cells = <1>;
  21. #size-cells = <0>;
  22. PowerPC,7447 {
  23. device_type = "cpu";
  24. reg = <0>;
  25. clock-frequency = <2bb0b140>; /* Default (733 MHz) */
  26. bus-frequency = <7f28155>; /* 133.333333 MHz */
  27. timebase-frequency = <1fca055>; /* 33.333333 MHz */
  28. i-cache-line-size = <20>;
  29. d-cache-line-size = <20>;
  30. i-cache-size = <8000>;
  31. d-cache-size = <8000>;
  32. };
  33. };
  34. memory {
  35. device_type = "memory";
  36. reg = <00000000 20000000>; /* Default (512MB) */
  37. };
  38. mv64x60@f1000000 { /* Marvell Discovery */
  39. #address-cells = <1>;
  40. #size-cells = <1>;
  41. model = "mv64360"; /* Default */
  42. compatible = "marvell,mv64x60";
  43. clock-frequency = <7f28155>; /* 133.333333 MHz */
  44. reg = <f1000000 00010000>;
  45. virtual-reg = <f1000000>;
  46. ranges = <88000000 88000000 01000000 /* PCI 0 I/O Space */
  47. 80000000 80000000 08000000 /* PCI 0 MEM Space */
  48. a0000000 a0000000 04000000 /* User FLASH */
  49. 00000000 f1000000 00010000 /* Bridge's regs */
  50. f2000000 f2000000 00040000>; /* Integrated SRAM */
  51. flash@a0000000 {
  52. device_type = "rom";
  53. compatible = "direct-mapped";
  54. reg = <a0000000 4000000>; /* Default (64MB) */
  55. probe-type = "CFI";
  56. bank-width = <4>;
  57. partitions = <00000000 00100000 /* RO */
  58. 00100000 00040001 /* RW */
  59. 00140000 00400000 /* RO */
  60. 00540000 039c0000 /* RO */
  61. 03f00000 00100000>; /* RO */
  62. partition-names = "FW Image A", "FW Config Data", "Kernel Image", "Filesystem", "FW Image B";
  63. };
  64. mdio {
  65. #address-cells = <1>;
  66. #size-cells = <0>;
  67. device_type = "mdio";
  68. compatible = "marvell,mv64x60-mdio";
  69. ethernet-phy@1 {
  70. device_type = "ethernet-phy";
  71. compatible = "broadcom,bcm5421";
  72. interrupts = <4c>; /* GPP 12 */
  73. interrupt-parent = <&/mv64x60/pic>;
  74. reg = <1>;
  75. };
  76. ethernet-phy@3 {
  77. device_type = "ethernet-phy";
  78. compatible = "broadcom,bcm5421";
  79. interrupts = <4c>; /* GPP 12 */
  80. interrupt-parent = <&/mv64x60/pic>;
  81. reg = <3>;
  82. };
  83. };
  84. ethernet@2000 {
  85. reg = <2000 2000>;
  86. eth0 {
  87. device_type = "network";
  88. compatible = "marvell,mv64x60-eth";
  89. block-index = <0>;
  90. interrupts = <20>;
  91. interrupt-parent = <&/mv64x60/pic>;
  92. phy = <&/mv64x60/mdio/ethernet-phy@1>;
  93. local-mac-address = [ 00 00 00 00 00 00 ];
  94. };
  95. eth1 {
  96. device_type = "network";
  97. compatible = "marvell,mv64x60-eth";
  98. block-index = <1>;
  99. interrupts = <21>;
  100. interrupt-parent = <&/mv64x60/pic>;
  101. phy = <&/mv64x60/mdio/ethernet-phy@3>;
  102. local-mac-address = [ 00 00 00 00 00 00 ];
  103. };
  104. };
  105. sdma@4000 {
  106. device_type = "dma";
  107. compatible = "marvell,mv64x60-sdma";
  108. reg = <4000 c18>;
  109. virtual-reg = <f1004000>;
  110. interrupt-base = <0>;
  111. interrupts = <24>;
  112. interrupt-parent = <&/mv64x60/pic>;
  113. };
  114. sdma@6000 {
  115. device_type = "dma";
  116. compatible = "marvell,mv64x60-sdma";
  117. reg = <6000 c18>;
  118. virtual-reg = <f1006000>;
  119. interrupt-base = <0>;
  120. interrupts = <26>;
  121. interrupt-parent = <&/mv64x60/pic>;
  122. };
  123. brg@b200 {
  124. compatible = "marvell,mv64x60-brg";
  125. reg = <b200 8>;
  126. clock-src = <8>;
  127. clock-frequency = <7ed6b40>;
  128. current-speed = <2580>;
  129. bcr = <0>;
  130. };
  131. brg@b208 {
  132. compatible = "marvell,mv64x60-brg";
  133. reg = <b208 8>;
  134. clock-src = <8>;
  135. clock-frequency = <7ed6b40>;
  136. current-speed = <2580>;
  137. bcr = <0>;
  138. };
  139. cunit@f200 {
  140. reg = <f200 200>;
  141. };
  142. mpscrouting@b400 {
  143. reg = <b400 c>;
  144. };
  145. mpscintr@b800 {
  146. reg = <b800 100>;
  147. virtual-reg = <f100b800>;
  148. };
  149. mpsc@8000 {
  150. device_type = "serial";
  151. compatible = "marvell,mpsc";
  152. reg = <8000 38>;
  153. virtual-reg = <f1008000>;
  154. sdma = <&/mv64x60/sdma@4000>;
  155. brg = <&/mv64x60/brg@b200>;
  156. cunit = <&/mv64x60/cunit@f200>;
  157. mpscrouting = <&/mv64x60/mpscrouting@b400>;
  158. mpscintr = <&/mv64x60/mpscintr@b800>;
  159. block-index = <0>;
  160. max_idle = <28>;
  161. chr_1 = <0>;
  162. chr_2 = <0>;
  163. chr_10 = <3>;
  164. mpcr = <0>;
  165. interrupts = <28>;
  166. interrupt-parent = <&/mv64x60/pic>;
  167. };
  168. mpsc@9000 {
  169. device_type = "serial";
  170. compatible = "marvell,mpsc";
  171. reg = <9000 38>;
  172. virtual-reg = <f1009000>;
  173. sdma = <&/mv64x60/sdma@6000>;
  174. brg = <&/mv64x60/brg@b208>;
  175. cunit = <&/mv64x60/cunit@f200>;
  176. mpscrouting = <&/mv64x60/mpscrouting@b400>;
  177. mpscintr = <&/mv64x60/mpscintr@b800>;
  178. block-index = <1>;
  179. max_idle = <28>;
  180. chr_1 = <0>;
  181. chr_2 = <0>;
  182. chr_10 = <3>;
  183. mpcr = <0>;
  184. interrupts = <2a>;
  185. interrupt-parent = <&/mv64x60/pic>;
  186. };
  187. wdt@b410 { /* watchdog timer */
  188. compatible = "marvell,mv64x60-wdt";
  189. reg = <b410 8>;
  190. timeout = <a>; /* wdt timeout in seconds */
  191. };
  192. i2c@c000 {
  193. device_type = "i2c";
  194. compatible = "marvell,mv64x60-i2c";
  195. reg = <c000 20>;
  196. virtual-reg = <f100c000>;
  197. freq_m = <8>;
  198. freq_n = <3>;
  199. timeout = <3e8>; /* 1000 = 1 second */
  200. retries = <1>;
  201. interrupts = <25>;
  202. interrupt-parent = <&/mv64x60/pic>;
  203. };
  204. pic {
  205. #interrupt-cells = <1>;
  206. #address-cells = <0>;
  207. compatible = "marvell,mv64x60-pic";
  208. reg = <0000 88>;
  209. interrupt-controller;
  210. };
  211. mpp@f000 {
  212. compatible = "marvell,mv64x60-mpp";
  213. reg = <f000 10>;
  214. };
  215. gpp@f100 {
  216. compatible = "marvell,mv64x60-gpp";
  217. reg = <f100 20>;
  218. };
  219. pci@80000000 {
  220. #address-cells = <3>;
  221. #size-cells = <2>;
  222. #interrupt-cells = <1>;
  223. device_type = "pci";
  224. compatible = "marvell,mv64x60-pci";
  225. reg = <0cf8 8>;
  226. ranges = <01000000 0 0 88000000 0 01000000
  227. 02000000 0 80000000 80000000 0 08000000>;
  228. bus-range = <0 ff>;
  229. clock-frequency = <3EF1480>;
  230. interrupt-pci-iack = <0c34>;
  231. interrupt-parent = <&/mv64x60/pic>;
  232. interrupt-map-mask = <f800 0 0 7>;
  233. interrupt-map = <
  234. /* IDSEL 0x0a */
  235. 5000 0 0 1 &/mv64x60/pic 50
  236. 5000 0 0 2 &/mv64x60/pic 51
  237. 5000 0 0 3 &/mv64x60/pic 5b
  238. 5000 0 0 4 &/mv64x60/pic 5d
  239. /* IDSEL 0x0b */
  240. 5800 0 0 1 &/mv64x60/pic 5b
  241. 5800 0 0 2 &/mv64x60/pic 5d
  242. 5800 0 0 3 &/mv64x60/pic 50
  243. 5800 0 0 4 &/mv64x60/pic 51
  244. /* IDSEL 0x0c */
  245. 6000 0 0 1 &/mv64x60/pic 5b
  246. 6000 0 0 2 &/mv64x60/pic 5d
  247. 6000 0 0 3 &/mv64x60/pic 50
  248. 6000 0 0 4 &/mv64x60/pic 51
  249. /* IDSEL 0x0d */
  250. 6800 0 0 1 &/mv64x60/pic 5d
  251. 6800 0 0 2 &/mv64x60/pic 50
  252. 6800 0 0 3 &/mv64x60/pic 51
  253. 6800 0 0 4 &/mv64x60/pic 5b
  254. >;
  255. };
  256. cpu-error@0070 {
  257. compatible = "marvell,mv64x60-cpu-error";
  258. reg = <0070 10 0128 28>;
  259. interrupts = <03>;
  260. interrupt-parent = <&/mv64x60/pic>;
  261. };
  262. sram-ctrl@0380 {
  263. compatible = "marvell,mv64x60-sram-ctrl";
  264. reg = <0380 80>;
  265. interrupts = <0d>;
  266. interrupt-parent = <&/mv64x60/pic>;
  267. };
  268. pci-error@1d40 {
  269. compatible = "marvell,mv64x60-pci-error";
  270. reg = <1d40 40 0c28 4>;
  271. interrupts = <0c>;
  272. interrupt-parent = <&/mv64x60/pic>;
  273. };
  274. mem-ctrl@1400 {
  275. compatible = "marvell,mv64x60-mem-ctrl";
  276. reg = <1400 60>;
  277. interrupts = <11>;
  278. interrupt-parent = <&/mv64x60/pic>;
  279. };
  280. };
  281. chosen {
  282. bootargs = "ip=on";
  283. linux,stdout-path = "/mv64x60@f1000000/mpsc@8000";
  284. };
  285. };