mpc85xx_sys.c 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. /*
  2. * arch/ppc/platforms/85xx/mpc85xx_sys.c
  3. *
  4. * MPC85xx System descriptions
  5. *
  6. * Maintainer: Kumar Gala <kumar.gala@freescale.com>
  7. *
  8. * Copyright 2005 Freescale Semiconductor Inc.
  9. *
  10. * This program is free software; you can redistribute it and/or modify it
  11. * under the terms of the GNU General Public License as published by the
  12. * Free Software Foundation; either version 2 of the License, or (at your
  13. * option) any later version.
  14. */
  15. #include <linux/init.h>
  16. #include <linux/module.h>
  17. #include <linux/device.h>
  18. #include <asm/ppc_sys.h>
  19. struct ppc_sys_spec *cur_ppc_sys_spec;
  20. struct ppc_sys_spec ppc_sys_specs[] = {
  21. {
  22. .ppc_sys_name = "8540",
  23. .mask = 0xFFFF0000,
  24. .value = 0x80300000,
  25. .num_devices = 10,
  26. .device_list = (enum ppc_sys_devices[])
  27. {
  28. MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_FEC, MPC85xx_IIC1,
  29. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  30. MPC85xx_PERFMON, MPC85xx_DUART,
  31. },
  32. },
  33. {
  34. .ppc_sys_name = "8560",
  35. .mask = 0xFFFF0000,
  36. .value = 0x80700000,
  37. .num_devices = 19,
  38. .device_list = (enum ppc_sys_devices[])
  39. {
  40. MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
  41. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  42. MPC85xx_PERFMON,
  43. MPC85xx_CPM_SPI, MPC85xx_CPM_I2C, MPC85xx_CPM_SCC1,
  44. MPC85xx_CPM_SCC2, MPC85xx_CPM_SCC3, MPC85xx_CPM_SCC4,
  45. MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2, MPC85xx_CPM_FCC3,
  46. MPC85xx_CPM_MCC1, MPC85xx_CPM_MCC2,
  47. },
  48. },
  49. {
  50. .ppc_sys_name = "8541",
  51. .mask = 0xFFFF0000,
  52. .value = 0x80720000,
  53. .num_devices = 13,
  54. .device_list = (enum ppc_sys_devices[])
  55. {
  56. MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
  57. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  58. MPC85xx_PERFMON, MPC85xx_DUART,
  59. MPC85xx_CPM_SPI, MPC85xx_CPM_I2C,
  60. MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2,
  61. },
  62. },
  63. {
  64. .ppc_sys_name = "8541E",
  65. .mask = 0xFFFF0000,
  66. .value = 0x807A0000,
  67. .num_devices = 14,
  68. .device_list = (enum ppc_sys_devices[])
  69. {
  70. MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
  71. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  72. MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
  73. MPC85xx_CPM_SPI, MPC85xx_CPM_I2C,
  74. MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2,
  75. },
  76. },
  77. {
  78. .ppc_sys_name = "8555",
  79. .mask = 0xFFFF0000,
  80. .value = 0x80710000,
  81. .num_devices = 19,
  82. .device_list = (enum ppc_sys_devices[])
  83. {
  84. MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
  85. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  86. MPC85xx_PERFMON, MPC85xx_DUART,
  87. MPC85xx_CPM_SPI, MPC85xx_CPM_I2C, MPC85xx_CPM_SCC1,
  88. MPC85xx_CPM_SCC2, MPC85xx_CPM_SCC3,
  89. MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2,
  90. MPC85xx_CPM_SMC1, MPC85xx_CPM_SMC2,
  91. MPC85xx_CPM_USB,
  92. },
  93. },
  94. {
  95. .ppc_sys_name = "8555E",
  96. .mask = 0xFFFF0000,
  97. .value = 0x80790000,
  98. .num_devices = 20,
  99. .device_list = (enum ppc_sys_devices[])
  100. {
  101. MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
  102. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  103. MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
  104. MPC85xx_CPM_SPI, MPC85xx_CPM_I2C, MPC85xx_CPM_SCC1,
  105. MPC85xx_CPM_SCC2, MPC85xx_CPM_SCC3,
  106. MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2,
  107. MPC85xx_CPM_SMC1, MPC85xx_CPM_SMC2,
  108. MPC85xx_CPM_USB,
  109. },
  110. },
  111. /* SVRs on 8548 rev1.0 matches for 8548/8547/8545 */
  112. {
  113. .ppc_sys_name = "8548E",
  114. .mask = 0xFFFF00F0,
  115. .value = 0x80390010,
  116. .num_devices = 13,
  117. .device_list = (enum ppc_sys_devices[])
  118. {
  119. MPC85xx_eTSEC1, MPC85xx_eTSEC2, MPC85xx_eTSEC3,
  120. MPC85xx_eTSEC4, MPC85xx_IIC1, MPC85xx_IIC2,
  121. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  122. MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
  123. },
  124. },
  125. {
  126. .ppc_sys_name = "8548",
  127. .mask = 0xFFFF00F0,
  128. .value = 0x80310010,
  129. .num_devices = 12,
  130. .device_list = (enum ppc_sys_devices[])
  131. {
  132. MPC85xx_eTSEC1, MPC85xx_eTSEC2, MPC85xx_eTSEC3,
  133. MPC85xx_eTSEC4, MPC85xx_IIC1, MPC85xx_IIC2,
  134. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  135. MPC85xx_PERFMON, MPC85xx_DUART,
  136. },
  137. },
  138. {
  139. .ppc_sys_name = "8547E",
  140. .mask = 0xFFFF00F0,
  141. .value = 0x80390010,
  142. .num_devices = 13,
  143. .device_list = (enum ppc_sys_devices[])
  144. {
  145. MPC85xx_eTSEC1, MPC85xx_eTSEC2, MPC85xx_eTSEC3,
  146. MPC85xx_eTSEC4, MPC85xx_IIC1, MPC85xx_IIC2,
  147. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  148. MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
  149. },
  150. },
  151. {
  152. .ppc_sys_name = "8547",
  153. .mask = 0xFFFF00F0,
  154. .value = 0x80310010,
  155. .num_devices = 12,
  156. .device_list = (enum ppc_sys_devices[])
  157. {
  158. MPC85xx_eTSEC1, MPC85xx_eTSEC2, MPC85xx_eTSEC3,
  159. MPC85xx_eTSEC4, MPC85xx_IIC1, MPC85xx_IIC2,
  160. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  161. MPC85xx_PERFMON, MPC85xx_DUART,
  162. },
  163. },
  164. {
  165. .ppc_sys_name = "8545E",
  166. .mask = 0xFFFF00F0,
  167. .value = 0x80390010,
  168. .num_devices = 11,
  169. .device_list = (enum ppc_sys_devices[])
  170. {
  171. MPC85xx_eTSEC1, MPC85xx_eTSEC2,
  172. MPC85xx_IIC1, MPC85xx_IIC2,
  173. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  174. MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
  175. },
  176. },
  177. {
  178. .ppc_sys_name = "8545",
  179. .mask = 0xFFFF00F0,
  180. .value = 0x80310010,
  181. .num_devices = 10,
  182. .device_list = (enum ppc_sys_devices[])
  183. {
  184. MPC85xx_eTSEC1, MPC85xx_eTSEC2,
  185. MPC85xx_IIC1, MPC85xx_IIC2,
  186. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  187. MPC85xx_PERFMON, MPC85xx_DUART,
  188. },
  189. },
  190. {
  191. .ppc_sys_name = "8543E",
  192. .mask = 0xFFFF00F0,
  193. .value = 0x803A0010,
  194. .num_devices = 11,
  195. .device_list = (enum ppc_sys_devices[])
  196. {
  197. MPC85xx_eTSEC1, MPC85xx_eTSEC2,
  198. MPC85xx_IIC1, MPC85xx_IIC2,
  199. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  200. MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
  201. },
  202. },
  203. {
  204. .ppc_sys_name = "8543",
  205. .mask = 0xFFFF00F0,
  206. .value = 0x80320010,
  207. .num_devices = 10,
  208. .device_list = (enum ppc_sys_devices[])
  209. {
  210. MPC85xx_eTSEC1, MPC85xx_eTSEC2,
  211. MPC85xx_IIC1, MPC85xx_IIC2,
  212. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  213. MPC85xx_PERFMON, MPC85xx_DUART,
  214. },
  215. },
  216. { /* default match */
  217. .ppc_sys_name = "",
  218. .mask = 0x00000000,
  219. .value = 0x00000000,
  220. },
  221. };