mpc5121ads.dts 9.5 KB

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