media5200.dts 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. /*
  2. * Freescale Media5200 board Device Tree Source
  3. *
  4. * Copyright 2009 Secret Lab Technologies Ltd.
  5. * Grant Likely <grant.likely@secretlab.ca>
  6. * Steven Cavanagh <scavanagh@secretlab.ca>
  7. *
  8. * This program is free software; you can redistribute it and/or modify it
  9. * under the terms of the GNU General Public License as published by the
  10. * Free Software Foundation; either version 2 of the License, or (at your
  11. * option) any later version.
  12. */
  13. /dts-v1/;
  14. / {
  15. model = "fsl,media5200";
  16. compatible = "fsl,media5200";
  17. #address-cells = <1>;
  18. #size-cells = <1>;
  19. interrupt-parent = <&mpc5200_pic>;
  20. aliases {
  21. console = &console;
  22. ethernet0 = &eth0;
  23. };
  24. chosen {
  25. linux,stdout-path = &console;
  26. };
  27. cpus {
  28. #address-cells = <1>;
  29. #size-cells = <0>;
  30. PowerPC,5200@0 {
  31. device_type = "cpu";
  32. reg = <0>;
  33. d-cache-line-size = <32>;
  34. i-cache-line-size = <32>;
  35. d-cache-size = <0x4000>; // L1, 16K
  36. i-cache-size = <0x4000>; // L1, 16K
  37. timebase-frequency = <33000000>; // 33 MHz, these were configured by U-Boot
  38. bus-frequency = <132000000>; // 132 MHz
  39. clock-frequency = <396000000>; // 396 MHz
  40. };
  41. };
  42. memory {
  43. device_type = "memory";
  44. reg = <0x00000000 0x08000000>; // 128MB RAM
  45. };
  46. soc@f0000000 {
  47. #address-cells = <1>;
  48. #size-cells = <1>;
  49. compatible = "fsl,mpc5200b-immr";
  50. ranges = <0 0xf0000000 0x0000c000>;
  51. reg = <0xf0000000 0x00000100>;
  52. bus-frequency = <132000000>;// 132 MHz
  53. system-frequency = <0>; // from bootloader
  54. cdm@200 {
  55. compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm";
  56. reg = <0x200 0x38>;
  57. };
  58. mpc5200_pic: interrupt-controller@500 {
  59. // 5200 interrupts are encoded into two levels;
  60. interrupt-controller;
  61. #interrupt-cells = <3>;
  62. compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic";
  63. reg = <0x500 0x80>;
  64. };
  65. timer@600 { // General Purpose Timer
  66. compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
  67. reg = <0x600 0x10>;
  68. interrupts = <1 9 0>;
  69. fsl,has-wdt;
  70. };
  71. timer@610 { // General Purpose Timer
  72. compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
  73. reg = <0x610 0x10>;
  74. interrupts = <1 10 0>;
  75. };
  76. timer@620 { // General Purpose Timer
  77. compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
  78. reg = <0x620 0x10>;
  79. interrupts = <1 11 0>;
  80. };
  81. timer@630 { // General Purpose Timer
  82. compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
  83. reg = <0x630 0x10>;
  84. interrupts = <1 12 0>;
  85. };
  86. timer@640 { // General Purpose Timer
  87. compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
  88. reg = <0x640 0x10>;
  89. interrupts = <1 13 0>;
  90. };
  91. timer@650 { // General Purpose Timer
  92. compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
  93. reg = <0x650 0x10>;
  94. interrupts = <1 14 0>;
  95. };
  96. timer@660 { // General Purpose Timer
  97. compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
  98. reg = <0x660 0x10>;
  99. interrupts = <1 15 0>;
  100. };
  101. timer@670 { // General Purpose Timer
  102. compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
  103. reg = <0x670 0x10>;
  104. interrupts = <1 16 0>;
  105. };
  106. rtc@800 { // Real time clock
  107. compatible = "fsl,mpc5200b-rtc","fsl,mpc5200-rtc";
  108. reg = <0x800 0x100>;
  109. interrupts = <1 5 0 1 6 0>;
  110. };
  111. can@900 {
  112. compatible = "fsl,mpc5200b-mscan","fsl,mpc5200-mscan";
  113. interrupts = <2 17 0>;
  114. reg = <0x900 0x80>;
  115. };
  116. can@980 {
  117. compatible = "fsl,mpc5200b-mscan","fsl,mpc5200-mscan";
  118. interrupts = <2 18 0>;
  119. reg = <0x980 0x80>;
  120. };
  121. gpio_simple: gpio@b00 {
  122. compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio";
  123. reg = <0xb00 0x40>;
  124. interrupts = <1 7 0>;
  125. gpio-controller;
  126. #gpio-cells = <2>;
  127. };
  128. gpio_wkup: gpio@c00 {
  129. compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup";
  130. reg = <0xc00 0x40>;
  131. interrupts = <1 8 0 0 3 0>;
  132. gpio-controller;
  133. #gpio-cells = <2>;
  134. };
  135. spi@f00 {
  136. compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi";
  137. reg = <0xf00 0x20>;
  138. interrupts = <2 13 0 2 14 0>;
  139. };
  140. usb@1000 {
  141. compatible = "fsl,mpc5200b-ohci","fsl,mpc5200-ohci","ohci-be";
  142. reg = <0x1000 0x100>;
  143. interrupts = <2 6 0>;
  144. };
  145. dma-controller@1200 {
  146. compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm";
  147. reg = <0x1200 0x80>;
  148. interrupts = <3 0 0 3 1 0 3 2 0 3 3 0
  149. 3 4 0 3 5 0 3 6 0 3 7 0
  150. 3 8 0 3 9 0 3 10 0 3 11 0
  151. 3 12 0 3 13 0 3 14 0 3 15 0>;
  152. };
  153. xlb@1f00 {
  154. compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb";
  155. reg = <0x1f00 0x100>;
  156. };
  157. // PSC6 in uart mode
  158. console: serial@2c00 { // PSC6
  159. compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";
  160. cell-index = <5>;
  161. port-number = <0>; // Logical port assignment
  162. reg = <0x2c00 0x100>;
  163. interrupts = <2 4 0>;
  164. };
  165. eth0: ethernet@3000 {
  166. compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec";
  167. reg = <0x3000 0x400>;
  168. local-mac-address = [ 00 00 00 00 00 00 ];
  169. interrupts = <2 5 0>;
  170. phy-handle = <&phy0>;
  171. };
  172. mdio@3000 {
  173. #address-cells = <1>;
  174. #size-cells = <0>;
  175. compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio";
  176. reg = <0x3000 0x400>; // fec range, since we need to setup fec interrupts
  177. interrupts = <2 5 0>; // these are for "mii command finished", not link changes & co.
  178. phy0: ethernet-phy@0 {
  179. reg = <0>;
  180. };
  181. };
  182. ata@3a00 {
  183. compatible = "fsl,mpc5200b-ata","fsl,mpc5200-ata";
  184. reg = <0x3a00 0x100>;
  185. interrupts = <2 7 0>;
  186. };
  187. i2c@3d00 {
  188. #address-cells = <1>;
  189. #size-cells = <0>;
  190. compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
  191. reg = <0x3d00 0x40>;
  192. interrupts = <2 15 0>;
  193. fsl5200-clocking;
  194. };
  195. i2c@3d40 {
  196. #address-cells = <1>;
  197. #size-cells = <0>;
  198. compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
  199. reg = <0x3d40 0x40>;
  200. interrupts = <2 16 0>;
  201. fsl5200-clocking;
  202. };
  203. sram@8000 {
  204. compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram";
  205. reg = <0x8000 0x4000>;
  206. };
  207. };
  208. pci@f0000d00 {
  209. #interrupt-cells = <1>;
  210. #size-cells = <2>;
  211. #address-cells = <3>;
  212. device_type = "pci";
  213. compatible = "fsl,mpc5200b-pci","fsl,mpc5200-pci";
  214. reg = <0xf0000d00 0x100>;
  215. interrupt-map-mask = <0xf800 0 0 7>;
  216. interrupt-map = <0xc000 0 0 1 &media5200_fpga 0 2 // 1st slot
  217. 0xc000 0 0 2 &media5200_fpga 0 3
  218. 0xc000 0 0 3 &media5200_fpga 0 4
  219. 0xc000 0 0 4 &media5200_fpga 0 5
  220. 0xc800 0 0 1 &media5200_fpga 0 3 // 2nd slot
  221. 0xc800 0 0 2 &media5200_fpga 0 4
  222. 0xc800 0 0 3 &media5200_fpga 0 5
  223. 0xc800 0 0 4 &media5200_fpga 0 2
  224. 0xd000 0 0 1 &media5200_fpga 0 4 // miniPCI
  225. 0xd000 0 0 2 &media5200_fpga 0 5
  226. 0xe000 0 0 1 &media5200_fpga 0 5 // CoralIP
  227. >;
  228. clock-frequency = <0>; // From boot loader
  229. interrupts = <2 8 0 2 9 0 2 10 0>;
  230. interrupt-parent = <&mpc5200_pic>;
  231. bus-range = <0 0>;
  232. ranges = <0x42000000 0 0x80000000 0x80000000 0 0x20000000
  233. 0x02000000 0 0xa0000000 0xa0000000 0 0x10000000
  234. 0x01000000 0 0x00000000 0xb0000000 0 0x01000000>;
  235. };
  236. localbus {
  237. compatible = "fsl,mpc5200b-lpb","simple-bus";
  238. #address-cells = <2>;
  239. #size-cells = <1>;
  240. ranges = < 0 0 0xfc000000 0x02000000
  241. 1 0 0xfe000000 0x02000000
  242. 2 0 0xf0010000 0x00010000
  243. 3 0 0xf0020000 0x00010000 >;
  244. flash@0,0 {
  245. compatible = "amd,am29lv28ml", "cfi-flash";
  246. reg = <0 0x0 0x2000000>; // 32 MB
  247. bank-width = <4>; // Width in bytes of the flash bank
  248. device-width = <2>; // Two devices on each bank
  249. };
  250. flash@1,0 {
  251. compatible = "amd,am29lv28ml", "cfi-flash";
  252. reg = <1 0 0x2000000>; // 32 MB
  253. bank-width = <4>; // Width in bytes of the flash bank
  254. device-width = <2>; // Two devices on each bank
  255. };
  256. media5200_fpga: fpga@2,0 {
  257. compatible = "fsl,media5200-fpga";
  258. interrupt-controller;
  259. #interrupt-cells = <2>; // 0:bank 1:id; no type field
  260. reg = <2 0 0x10000>;
  261. interrupt-parent = <&mpc5200_pic>;
  262. interrupts = <0 0 3 // IRQ bank 0
  263. 1 1 3>; // IRQ bank 1
  264. };
  265. uart@3,0 {
  266. compatible = "ti,tl16c752bpt";
  267. reg = <3 0 0x10000>;
  268. interrupt-parent = <&media5200_fpga>;
  269. interrupts = <0 0 0 1>; // 2 irqs
  270. };
  271. };
  272. };