mpc5121ads.dts 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411
  1. /*
  2. * MPC5121E ADS Device Tree Source
  3. *
  4. * Copyright 2007,2008 Freescale Semiconductor Inc.
  5. *
  6. * This program is free software; you can redistribute it and/or modify it
  7. * under the terms of the GNU General Public License as published by the
  8. * Free Software Foundation; either version 2 of the License, or (at your
  9. * option) any later version.
  10. */
  11. /dts-v1/;
  12. / {
  13. model = "mpc5121ads";
  14. compatible = "fsl,mpc5121ads";
  15. #address-cells = <1>;
  16. #size-cells = <1>;
  17. aliases {
  18. pci = &pci;
  19. };
  20. cpus {
  21. #address-cells = <1>;
  22. #size-cells = <0>;
  23. PowerPC,5121@0 {
  24. device_type = "cpu";
  25. reg = <0>;
  26. d-cache-line-size = <0x20>; // 32 bytes
  27. i-cache-line-size = <0x20>; // 32 bytes
  28. d-cache-size = <0x8000>; // L1, 32K
  29. i-cache-size = <0x8000>; // L1, 32K
  30. timebase-frequency = <49500000>;// 49.5 MHz (csb/4)
  31. bus-frequency = <198000000>; // 198 MHz csb bus
  32. clock-frequency = <396000000>; // 396 MHz ppc core
  33. };
  34. };
  35. memory {
  36. device_type = "memory";
  37. reg = <0x00000000 0x10000000>; // 256MB at 0
  38. };
  39. mbx@20000000 {
  40. compatible = "fsl,mpc5121-mbx";
  41. reg = <0x20000000 0x4000>;
  42. interrupts = <66 0x8>;
  43. interrupt-parent = < &ipic >;
  44. };
  45. sram@30000000 {
  46. compatible = "fsl,mpc5121-sram";
  47. reg = <0x30000000 0x20000>; // 128K at 0x30000000
  48. };
  49. nfc@40000000 {
  50. compatible = "fsl,mpc5121-nfc";
  51. reg = <0x40000000 0x100000>; // 1M at 0x40000000
  52. interrupts = <6 8>;
  53. interrupt-parent = < &ipic >;
  54. #address-cells = <1>;
  55. #size-cells = <1>;
  56. bank-width = <1>;
  57. // ADS has two Hynix 512MB Nand flash chips in a single
  58. // stacked package .
  59. chips = <2>;
  60. nand0@0 {
  61. label = "nand0";
  62. reg = <0x00000000 0x02000000>; // first 32 MB of chip 0
  63. };
  64. nand1@20000000 {
  65. label = "nand1";
  66. reg = <0x20000000 0x02000000>; // first 32 MB of chip 1
  67. };
  68. };
  69. localbus@80000020 {
  70. compatible = "fsl,mpc5121-localbus";
  71. #address-cells = <2>;
  72. #size-cells = <1>;
  73. reg = <0x80000020 0x40>;
  74. ranges = <0x0 0x0 0xfc000000 0x04000000
  75. 0x2 0x0 0x82000000 0x00008000>;
  76. flash@0,0 {
  77. compatible = "cfi-flash";
  78. reg = <0 0x0 0x4000000>;
  79. #address-cells = <1>;
  80. #size-cells = <1>;
  81. bank-width = <4>;
  82. device-width = <2>;
  83. protected@0 {
  84. label = "protected";
  85. reg = <0x00000000 0x00040000>; // first sector is protected
  86. read-only;
  87. };
  88. filesystem@40000 {
  89. label = "filesystem";
  90. reg = <0x00040000 0x03c00000>; // 60M for filesystem
  91. };
  92. kernel@3c40000 {
  93. label = "kernel";
  94. reg = <0x03c40000 0x00280000>; // 2.5M for kernel
  95. };
  96. device-tree@3ec0000 {
  97. label = "device-tree";
  98. reg = <0x03ec0000 0x00040000>; // one sector for device tree
  99. };
  100. u-boot@3f00000 {
  101. label = "u-boot";
  102. reg = <0x03f00000 0x00100000>; // 1M for u-boot
  103. read-only;
  104. };
  105. };
  106. board-control@2,0 {
  107. compatible = "fsl,mpc5121ads-cpld";
  108. reg = <0x2 0x0 0x8000>;
  109. };
  110. cpld_pic: pic@2,a {
  111. compatible = "fsl,mpc5121ads-cpld-pic";
  112. interrupt-controller;
  113. #interrupt-cells = <2>;
  114. reg = <0x2 0xa 0x5>;
  115. interrupt-parent = < &ipic >;
  116. // irq routing
  117. // all irqs but touch screen are routed to irq0 (ipic 48)
  118. // touch screen is statically routed to irq1 (ipic 17)
  119. // so don't use it here
  120. interrupts = <48 0x8>;
  121. };
  122. };
  123. soc@80000000 {
  124. compatible = "fsl,mpc5121-immr";
  125. #address-cells = <1>;
  126. #size-cells = <1>;
  127. #interrupt-cells = <2>;
  128. ranges = <0x0 0x80000000 0x400000>;
  129. reg = <0x80000000 0x400000>;
  130. bus-frequency = <66000000>; // 66 MHz ips bus
  131. // IPIC
  132. // interrupts cell = <intr #, sense>
  133. // sense values match linux IORESOURCE_IRQ_* defines:
  134. // sense == 8: Level, low assertion
  135. // sense == 2: Edge, high-to-low change
  136. //
  137. ipic: interrupt-controller@c00 {
  138. compatible = "fsl,mpc5121-ipic", "fsl,ipic";
  139. interrupt-controller;
  140. #address-cells = <0>;
  141. #interrupt-cells = <2>;
  142. reg = <0xc00 0x100>;
  143. };
  144. rtc@a00 { // Real time clock
  145. compatible = "fsl,mpc5121-rtc";
  146. reg = <0xa00 0x100>;
  147. interrupts = <79 0x8 80 0x8>;
  148. interrupt-parent = < &ipic >;
  149. };
  150. clock@f00 { // Clock control
  151. compatible = "fsl,mpc5121-clock";
  152. reg = <0xf00 0x100>;
  153. };
  154. pmc@1000{ //Power Management Controller
  155. compatible = "fsl,mpc5121-pmc";
  156. reg = <0x1000 0x100>;
  157. interrupts = <83 0x2>;
  158. interrupt-parent = < &ipic >;
  159. };
  160. gpio@1100 {
  161. compatible = "fsl,mpc5121-gpio";
  162. reg = <0x1100 0x100>;
  163. interrupts = <78 0x8>;
  164. interrupt-parent = < &ipic >;
  165. };
  166. mscan@1300 {
  167. compatible = "fsl,mpc5121-mscan";
  168. cell-index = <0>;
  169. interrupts = <12 0x8>;
  170. interrupt-parent = < &ipic >;
  171. reg = <0x1300 0x80>;
  172. };
  173. mscan@1380 {
  174. compatible = "fsl,mpc5121-mscan";
  175. cell-index = <1>;
  176. interrupts = <13 0x8>;
  177. interrupt-parent = < &ipic >;
  178. reg = <0x1380 0x80>;
  179. };
  180. i2c@1700 {
  181. #address-cells = <1>;
  182. #size-cells = <0>;
  183. compatible = "fsl,mpc5121-i2c", "fsl-i2c";
  184. cell-index = <0>;
  185. reg = <0x1700 0x20>;
  186. interrupts = <9 0x8>;
  187. interrupt-parent = < &ipic >;
  188. fsl5200-clocking;
  189. };
  190. i2c@1720 {
  191. #address-cells = <1>;
  192. #size-cells = <0>;
  193. compatible = "fsl,mpc5121-i2c", "fsl-i2c";
  194. cell-index = <1>;
  195. reg = <0x1720 0x20>;
  196. interrupts = <10 0x8>;
  197. interrupt-parent = < &ipic >;
  198. fsl5200-clocking;
  199. };
  200. i2c@1740 {
  201. #address-cells = <1>;
  202. #size-cells = <0>;
  203. compatible = "fsl,mpc5121-i2c", "fsl-i2c";
  204. cell-index = <2>;
  205. reg = <0x1740 0x20>;
  206. interrupts = <11 0x8>;
  207. interrupt-parent = < &ipic >;
  208. fsl5200-clocking;
  209. };
  210. i2ccontrol@1760 {
  211. compatible = "fsl,mpc5121-i2c-ctrl";
  212. reg = <0x1760 0x8>;
  213. };
  214. axe@2000 {
  215. compatible = "fsl,mpc5121-axe";
  216. reg = <0x2000 0x100>;
  217. interrupts = <42 0x8>;
  218. interrupt-parent = < &ipic >;
  219. };
  220. display@2100 {
  221. compatible = "fsl,mpc5121-diu", "fsl-diu";
  222. reg = <0x2100 0x100>;
  223. interrupts = <64 0x8>;
  224. interrupt-parent = < &ipic >;
  225. };
  226. mdio@2800 {
  227. compatible = "fsl,mpc5121-fec-mdio";
  228. reg = <0x2800 0x800>;
  229. #address-cells = <1>;
  230. #size-cells = <0>;
  231. phy: ethernet-phy@0 {
  232. reg = <1>;
  233. device_type = "ethernet-phy";
  234. };
  235. };
  236. ethernet@2800 {
  237. device_type = "network";
  238. compatible = "fsl,mpc5121-fec";
  239. reg = <0x2800 0x800>;
  240. local-mac-address = [ 00 00 00 00 00 00 ];
  241. interrupts = <4 0x8>;
  242. interrupt-parent = < &ipic >;
  243. phy-handle = < &phy >;
  244. fsl,align-tx-packets = <4>;
  245. };
  246. // 5121e has two dr usb modules
  247. // mpc5121_ads only uses USB0
  248. // USB1 using external ULPI PHY
  249. //usb@3000 {
  250. // compatible = "fsl,mpc5121-usb2-dr", "fsl-usb2-dr";
  251. // reg = <0x3000 0x1000>;
  252. // #address-cells = <1>;
  253. // #size-cells = <0>;
  254. // interrupt-parent = < &ipic >;
  255. // interrupts = <43 0x8>;
  256. // dr_mode = "otg";
  257. // phy_type = "ulpi";
  258. // port1;
  259. //};
  260. // USB0 using internal UTMI PHY
  261. usb@4000 {
  262. compatible = "fsl,mpc5121-usb2-dr", "fsl-usb2-dr";
  263. reg = <0x4000 0x1000>;
  264. #address-cells = <1>;
  265. #size-cells = <0>;
  266. interrupt-parent = < &ipic >;
  267. interrupts = <44 0x8>;
  268. dr_mode = "otg";
  269. phy_type = "utmi_wide";
  270. port0;
  271. };
  272. // IO control
  273. ioctl@a000 {
  274. compatible = "fsl,mpc5121-ioctl";
  275. reg = <0xA000 0x1000>;
  276. };
  277. pata@10200 {
  278. compatible = "fsl,mpc5121-pata";
  279. reg = <0x10200 0x100>;
  280. interrupts = <5 0x8>;
  281. interrupt-parent = < &ipic >;
  282. };
  283. // 512x PSCs are not 52xx PSC compatible
  284. // PSC3 serial port A aka ttyPSC0
  285. serial@11300 {
  286. device_type = "serial";
  287. compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";
  288. // Logical port assignment needed until driver
  289. // learns to use aliases
  290. port-number = <0>;
  291. cell-index = <3>;
  292. reg = <0x11300 0x100>;
  293. interrupts = <40 0x8>;
  294. interrupt-parent = < &ipic >;
  295. rx-fifo-size = <16>;
  296. tx-fifo-size = <16>;
  297. };
  298. // PSC4 serial port B aka ttyPSC1
  299. serial@11400 {
  300. device_type = "serial";
  301. compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";
  302. // Logical port assignment needed until driver
  303. // learns to use aliases
  304. port-number = <1>;
  305. cell-index = <4>;
  306. reg = <0x11400 0x100>;
  307. interrupts = <40 0x8>;
  308. interrupt-parent = < &ipic >;
  309. rx-fifo-size = <16>;
  310. tx-fifo-size = <16>;
  311. };
  312. // PSC5 in ac97 mode
  313. ac97@11500 {
  314. compatible = "fsl,mpc5121-psc-ac97", "fsl,mpc5121-psc";
  315. cell-index = <5>;
  316. reg = <0x11500 0x100>;
  317. interrupts = <40 0x8>;
  318. interrupt-parent = < &ipic >;
  319. fsl,mode = "ac97-slave";
  320. rx-fifo-size = <384>;
  321. tx-fifo-size = <384>;
  322. };
  323. pscfifo@11f00 {
  324. compatible = "fsl,mpc5121-psc-fifo";
  325. reg = <0x11f00 0x100>;
  326. interrupts = <40 0x8>;
  327. interrupt-parent = < &ipic >;
  328. };
  329. dma@14000 {
  330. compatible = "fsl,mpc5121-dma2";
  331. reg = <0x14000 0x1800>;
  332. interrupts = <65 0x8>;
  333. interrupt-parent = < &ipic >;
  334. };
  335. };
  336. pci: pci@80008500 {
  337. interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
  338. interrupt-map = <
  339. // IDSEL 0x15 - Slot 1 PCI
  340. 0xa800 0x0 0x0 0x1 &cpld_pic 0x0 0x8
  341. 0xa800 0x0 0x0 0x2 &cpld_pic 0x1 0x8
  342. 0xa800 0x0 0x0 0x3 &cpld_pic 0x2 0x8
  343. 0xa800 0x0 0x0 0x4 &cpld_pic 0x3 0x8
  344. // IDSEL 0x16 - Slot 2 MiniPCI
  345. 0xb000 0x0 0x0 0x1 &cpld_pic 0x4 0x8
  346. 0xb000 0x0 0x0 0x2 &cpld_pic 0x5 0x8
  347. // IDSEL 0x17 - Slot 3 MiniPCI
  348. 0xb800 0x0 0x0 0x1 &cpld_pic 0x6 0x8
  349. 0xb800 0x0 0x0 0x2 &cpld_pic 0x7 0x8
  350. >;
  351. interrupt-parent = < &ipic >;
  352. interrupts = <1 0x8>;
  353. bus-range = <0 0>;
  354. ranges = <0x42000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000
  355. 0x02000000 0x0 0xb0000000 0xb0000000 0x0 0x10000000
  356. 0x01000000 0x0 0x00000000 0x84000000 0x0 0x01000000>;
  357. clock-frequency = <0>;
  358. #interrupt-cells = <1>;
  359. #size-cells = <2>;
  360. #address-cells = <3>;
  361. reg = <0x80008500 0x100 /* internal registers */
  362. 0x80008300 0x8>; /* config space access registers */
  363. compatible = "fsl,mpc5121-pci";
  364. device_type = "pci";
  365. };
  366. };