prpmc2800.dts 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  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. /dts-v1/;
  14. / {
  15. #address-cells = <1>;
  16. #size-cells = <1>;
  17. model = "PrPMC280/PrPMC2800"; /* Default */
  18. compatible = "motorola,PrPMC2800";
  19. coherency-off;
  20. cpus {
  21. #address-cells = <1>;
  22. #size-cells = <0>;
  23. PowerPC,7447 {
  24. device_type = "cpu";
  25. reg = <0>;
  26. clock-frequency = <733333333>; /* Default */
  27. bus-frequency = <133333333>;
  28. timebase-frequency = <33333333>;
  29. i-cache-line-size = <32>;
  30. d-cache-line-size = <32>;
  31. i-cache-size = <32768>;
  32. d-cache-size = <32768>;
  33. };
  34. };
  35. memory {
  36. device_type = "memory";
  37. reg = <0x0 0x20000000>; /* Default (512MB) */
  38. };
  39. mv64x60@f1000000 { /* Marvell Discovery */
  40. #address-cells = <1>;
  41. #size-cells = <1>;
  42. model = "mv64360"; /* Default */
  43. compatible = "marvell,mv64360";
  44. clock-frequency = <133333333>;
  45. reg = <0xf1000000 0x10000>;
  46. virtual-reg = <0xf1000000>;
  47. ranges = <0x88000000 0x88000000 0x1000000 /* PCI 0 I/O Space */
  48. 0x80000000 0x80000000 0x8000000 /* PCI 0 MEM Space */
  49. 0xa0000000 0xa0000000 0x4000000 /* User FLASH */
  50. 0x00000000 0xf1000000 0x0010000 /* Bridge's regs */
  51. 0xf2000000 0xf2000000 0x0040000>;/* Integrated SRAM */
  52. flash@a0000000 {
  53. device_type = "rom";
  54. compatible = "direct-mapped";
  55. reg = <0xa0000000 0x4000000>; /* Default (64MB) */
  56. probe-type = "CFI";
  57. bank-width = <4>;
  58. partitions = <0x00000000 0x00100000 /* RO */
  59. 0x00100000 0x00040001 /* RW */
  60. 0x00140000 0x00400000 /* RO */
  61. 0x00540000 0x039c0000 /* RO */
  62. 0x03f00000 0x00100000>; /* RO */
  63. partition-names = "FW Image A", "FW Config Data", "Kernel Image", "Filesystem", "FW Image B";
  64. };
  65. mdio {
  66. #address-cells = <1>;
  67. #size-cells = <0>;
  68. device_type = "mdio";
  69. compatible = "marvell,mv64360-mdio";
  70. PHY0: ethernet-phy@1 {
  71. device_type = "ethernet-phy";
  72. compatible = "broadcom,bcm5421";
  73. interrupts = <76>; /* GPP 12 */
  74. interrupt-parent = <&PIC>;
  75. reg = <1>;
  76. };
  77. PHY1: ethernet-phy@3 {
  78. device_type = "ethernet-phy";
  79. compatible = "broadcom,bcm5421";
  80. interrupts = <76>; /* GPP 12 */
  81. interrupt-parent = <&PIC>;
  82. reg = <3>;
  83. };
  84. };
  85. ethernet@2000 {
  86. reg = <0x2000 0x2000>;
  87. eth0 {
  88. device_type = "network";
  89. compatible = "marvell,mv64360-eth";
  90. block-index = <0>;
  91. interrupts = <32>;
  92. interrupt-parent = <&PIC>;
  93. phy = <&PHY0>;
  94. local-mac-address = [ 00 00 00 00 00 00 ];
  95. };
  96. eth1 {
  97. device_type = "network";
  98. compatible = "marvell,mv64360-eth";
  99. block-index = <1>;
  100. interrupts = <33>;
  101. interrupt-parent = <&PIC>;
  102. phy = <&PHY1>;
  103. local-mac-address = [ 00 00 00 00 00 00 ];
  104. };
  105. };
  106. SDMA0: sdma@4000 {
  107. device_type = "dma";
  108. compatible = "marvell,mv64360-sdma";
  109. reg = <0x4000 0xc18>;
  110. virtual-reg = <0xf1004000>;
  111. interrupt-base = <0>;
  112. interrupts = <36>;
  113. interrupt-parent = <&PIC>;
  114. };
  115. SDMA1: sdma@6000 {
  116. device_type = "dma";
  117. compatible = "marvell,mv64360-sdma";
  118. reg = <0x6000 0xc18>;
  119. virtual-reg = <0xf1006000>;
  120. interrupt-base = <0>;
  121. interrupts = <38>;
  122. interrupt-parent = <&PIC>;
  123. };
  124. BRG0: brg@b200 {
  125. compatible = "marvell,mv64360-brg";
  126. reg = <0xb200 0x8>;
  127. clock-src = <8>;
  128. clock-frequency = <133333333>;
  129. current-speed = <9600>;
  130. bcr = <0>;
  131. };
  132. BRG1: brg@b208 {
  133. compatible = "marvell,mv64360-brg";
  134. reg = <0xb208 0x8>;
  135. clock-src = <8>;
  136. clock-frequency = <133333333>;
  137. current-speed = <9600>;
  138. bcr = <0>;
  139. };
  140. CUNIT: cunit@f200 {
  141. reg = <0xf200 0x200>;
  142. };
  143. MPSCROUTING: mpscrouting@b400 {
  144. reg = <0xb400 0xc>;
  145. };
  146. MPSCINTR: mpscintr@b800 {
  147. reg = <0xb800 0x100>;
  148. virtual-reg = <0xf100b800>;
  149. };
  150. MPSC0: mpsc@8000 {
  151. device_type = "serial";
  152. compatible = "marvell,mv64360-mpsc";
  153. reg = <0x8000 0x38>;
  154. virtual-reg = <0xf1008000>;
  155. sdma = <&SDMA0>;
  156. brg = <&BRG0>;
  157. cunit = <&CUNIT>;
  158. mpscrouting = <&MPSCROUTING>;
  159. mpscintr = <&MPSCINTR>;
  160. block-index = <0>;
  161. max_idle = <40>;
  162. chr_1 = <0>;
  163. chr_2 = <0>;
  164. chr_10 = <3>;
  165. mpcr = <0>;
  166. interrupts = <40>;
  167. interrupt-parent = <&PIC>;
  168. };
  169. MPSC1: mpsc@9000 {
  170. device_type = "serial";
  171. compatible = "marvell,mv64360-mpsc";
  172. reg = <0x9000 0x38>;
  173. virtual-reg = <0xf1009000>;
  174. sdma = <&SDMA1>;
  175. brg = <&BRG1>;
  176. cunit = <&CUNIT>;
  177. mpscrouting = <&MPSCROUTING>;
  178. mpscintr = <&MPSCINTR>;
  179. block-index = <1>;
  180. max_idle = <40>;
  181. chr_1 = <0>;
  182. chr_2 = <0>;
  183. chr_10 = <3>;
  184. mpcr = <0>;
  185. interrupts = <42>;
  186. interrupt-parent = <&PIC>;
  187. };
  188. wdt@b410 { /* watchdog timer */
  189. compatible = "marvell,mv64360-wdt";
  190. reg = <0xb410 0x8>;
  191. timeout = <10>; /* wdt timeout in seconds */
  192. };
  193. i2c@c000 {
  194. device_type = "i2c";
  195. compatible = "marvell,mv64360-i2c";
  196. reg = <0xc000 0x20>;
  197. virtual-reg = <0xf100c000>;
  198. freq_m = <8>;
  199. freq_n = <3>;
  200. timeout = <1000>; /* 1000 = 1 second */
  201. retries = <1>;
  202. interrupts = <37>;
  203. interrupt-parent = <&PIC>;
  204. };
  205. PIC: pic {
  206. #interrupt-cells = <1>;
  207. #address-cells = <0>;
  208. compatible = "marvell,mv64360-pic";
  209. reg = <0x0 0x88>;
  210. interrupt-controller;
  211. };
  212. mpp@f000 {
  213. compatible = "marvell,mv64360-mpp";
  214. reg = <0xf000 0x10>;
  215. };
  216. gpp@f100 {
  217. compatible = "marvell,mv64360-gpp";
  218. reg = <0xf100 0x20>;
  219. };
  220. pci@80000000 {
  221. #address-cells = <3>;
  222. #size-cells = <2>;
  223. #interrupt-cells = <1>;
  224. device_type = "pci";
  225. compatible = "marvell,mv64360-pci";
  226. reg = <0xcf8 0x8>;
  227. ranges = <0x01000000 0x0 0x0
  228. 0x88000000 0x0 0x01000000
  229. 0x02000000 0x0 0x80000000
  230. 0x80000000 0x0 0x08000000>;
  231. bus-range = <0 255>;
  232. clock-frequency = <66000000>;
  233. interrupt-pci-iack = <0xc34>;
  234. interrupt-parent = <&PIC>;
  235. interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
  236. interrupt-map = <
  237. /* IDSEL 0x0a */
  238. 0x5000 0 0 1 &PIC 80
  239. 0x5000 0 0 2 &PIC 81
  240. 0x5000 0 0 3 &PIC 91
  241. 0x5000 0 0 4 &PIC 93
  242. /* IDSEL 0x0b */
  243. 0x5800 0 0 1 &PIC 91
  244. 0x5800 0 0 2 &PIC 93
  245. 0x5800 0 0 3 &PIC 80
  246. 0x5800 0 0 4 &PIC 81
  247. /* IDSEL 0x0c */
  248. 0x6000 0 0 1 &PIC 91
  249. 0x6000 0 0 2 &PIC 93
  250. 0x6000 0 0 3 &PIC 80
  251. 0x6000 0 0 4 &PIC 81
  252. /* IDSEL 0x0d */
  253. 0x6800 0 0 1 &PIC 93
  254. 0x6800 0 0 2 &PIC 80
  255. 0x6800 0 0 3 &PIC 81
  256. 0x6800 0 0 4 &PIC 91
  257. >;
  258. };
  259. cpu-error@0070 {
  260. compatible = "marvell,mv64360-cpu-error";
  261. reg = <0x70 0x10 0x128 0x28>;
  262. interrupts = <3>;
  263. interrupt-parent = <&PIC>;
  264. };
  265. sram-ctrl@0380 {
  266. compatible = "marvell,mv64360-sram-ctrl";
  267. reg = <0x380 0x80>;
  268. interrupts = <13>;
  269. interrupt-parent = <&PIC>;
  270. };
  271. pci-error@1d40 {
  272. compatible = "marvell,mv64360-pci-error";
  273. reg = <0x1d40 0x40 0xc28 0x4>;
  274. interrupts = <12>;
  275. interrupt-parent = <&PIC>;
  276. };
  277. mem-ctrl@1400 {
  278. compatible = "marvell,mv64360-mem-ctrl";
  279. reg = <0x1400 0x60>;
  280. interrupts = <17>;
  281. interrupt-parent = <&PIC>;
  282. };
  283. };
  284. chosen {
  285. bootargs = "ip=on";
  286. linux,stdout-path = &MPSC0;
  287. };
  288. };