mpc85xx_sys.c 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. /*
  2. * MPC85xx System descriptions
  3. *
  4. * Maintainer: Kumar Gala <galak@kernel.crashing.org>
  5. *
  6. * Copyright 2005 Freescale Semiconductor Inc.
  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. #include <linux/init.h>
  14. #include <linux/module.h>
  15. #include <linux/device.h>
  16. #include <asm/ppc_sys.h>
  17. struct ppc_sys_spec *cur_ppc_sys_spec;
  18. struct ppc_sys_spec ppc_sys_specs[] = {
  19. {
  20. .ppc_sys_name = "8540",
  21. .mask = 0xFFFF0000,
  22. .value = 0x80300000,
  23. .num_devices = 11,
  24. .device_list = (enum ppc_sys_devices[])
  25. {
  26. MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_FEC, MPC85xx_IIC1,
  27. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  28. MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_MDIO,
  29. },
  30. },
  31. {
  32. .ppc_sys_name = "8560",
  33. .mask = 0xFFFF0000,
  34. .value = 0x80700000,
  35. .num_devices = 20,
  36. .device_list = (enum ppc_sys_devices[])
  37. {
  38. MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
  39. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  40. MPC85xx_PERFMON,
  41. MPC85xx_CPM_SPI, MPC85xx_CPM_I2C, MPC85xx_CPM_SCC1,
  42. MPC85xx_CPM_SCC2, MPC85xx_CPM_SCC3, MPC85xx_CPM_SCC4,
  43. MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2, MPC85xx_CPM_FCC3,
  44. MPC85xx_CPM_MCC1, MPC85xx_CPM_MCC2, MPC85xx_MDIO,
  45. },
  46. },
  47. {
  48. .ppc_sys_name = "8541",
  49. .mask = 0xFFFF0000,
  50. .value = 0x80720000,
  51. .num_devices = 14,
  52. .device_list = (enum ppc_sys_devices[])
  53. {
  54. MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
  55. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  56. MPC85xx_PERFMON, MPC85xx_DUART,
  57. MPC85xx_CPM_SPI, MPC85xx_CPM_I2C,
  58. MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2,
  59. MPC85xx_MDIO,
  60. },
  61. },
  62. {
  63. .ppc_sys_name = "8541E",
  64. .mask = 0xFFFF0000,
  65. .value = 0x807A0000,
  66. .num_devices = 15,
  67. .device_list = (enum ppc_sys_devices[])
  68. {
  69. MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
  70. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  71. MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
  72. MPC85xx_CPM_SPI, MPC85xx_CPM_I2C,
  73. MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2,
  74. MPC85xx_MDIO,
  75. },
  76. },
  77. {
  78. .ppc_sys_name = "8555",
  79. .mask = 0xFFFF0000,
  80. .value = 0x80710000,
  81. .num_devices = 20,
  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. MPC85xx_MDIO,
  93. },
  94. },
  95. {
  96. .ppc_sys_name = "8555E",
  97. .mask = 0xFFFF0000,
  98. .value = 0x80790000,
  99. .num_devices = 21,
  100. .device_list = (enum ppc_sys_devices[])
  101. {
  102. MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
  103. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  104. MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
  105. MPC85xx_CPM_SPI, MPC85xx_CPM_I2C, MPC85xx_CPM_SCC1,
  106. MPC85xx_CPM_SCC2, MPC85xx_CPM_SCC3,
  107. MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2,
  108. MPC85xx_CPM_SMC1, MPC85xx_CPM_SMC2,
  109. MPC85xx_CPM_USB,
  110. MPC85xx_MDIO,
  111. },
  112. },
  113. /* SVRs on 8548 rev1.0 matches for 8548/8547/8545 */
  114. {
  115. .ppc_sys_name = "8548E",
  116. .mask = 0xFFFF00F0,
  117. .value = 0x80390010,
  118. .num_devices = 14,
  119. .device_list = (enum ppc_sys_devices[])
  120. {
  121. MPC85xx_eTSEC1, MPC85xx_eTSEC2, MPC85xx_eTSEC3,
  122. MPC85xx_eTSEC4, MPC85xx_IIC1, MPC85xx_IIC2,
  123. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  124. MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
  125. MPC85xx_MDIO,
  126. },
  127. },
  128. {
  129. .ppc_sys_name = "8548",
  130. .mask = 0xFFFF00F0,
  131. .value = 0x80310010,
  132. .num_devices = 13,
  133. .device_list = (enum ppc_sys_devices[])
  134. {
  135. MPC85xx_eTSEC1, MPC85xx_eTSEC2, MPC85xx_eTSEC3,
  136. MPC85xx_eTSEC4, MPC85xx_IIC1, MPC85xx_IIC2,
  137. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  138. MPC85xx_PERFMON, MPC85xx_DUART,
  139. MPC85xx_MDIO,
  140. },
  141. },
  142. {
  143. .ppc_sys_name = "8547E",
  144. .mask = 0xFFFF00F0,
  145. .value = 0x80390010,
  146. .num_devices = 14,
  147. .device_list = (enum ppc_sys_devices[])
  148. {
  149. MPC85xx_eTSEC1, MPC85xx_eTSEC2, MPC85xx_eTSEC3,
  150. MPC85xx_eTSEC4, MPC85xx_IIC1, MPC85xx_IIC2,
  151. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  152. MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
  153. MPC85xx_MDIO,
  154. },
  155. },
  156. {
  157. .ppc_sys_name = "8547",
  158. .mask = 0xFFFF00F0,
  159. .value = 0x80310010,
  160. .num_devices = 13,
  161. .device_list = (enum ppc_sys_devices[])
  162. {
  163. MPC85xx_eTSEC1, MPC85xx_eTSEC2, MPC85xx_eTSEC3,
  164. MPC85xx_eTSEC4, MPC85xx_IIC1, MPC85xx_IIC2,
  165. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  166. MPC85xx_PERFMON, MPC85xx_DUART,
  167. MPC85xx_MDIO,
  168. },
  169. },
  170. {
  171. .ppc_sys_name = "8545E",
  172. .mask = 0xFFFF00F0,
  173. .value = 0x80390010,
  174. .num_devices = 12,
  175. .device_list = (enum ppc_sys_devices[])
  176. {
  177. MPC85xx_eTSEC1, MPC85xx_eTSEC2,
  178. MPC85xx_IIC1, MPC85xx_IIC2,
  179. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  180. MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
  181. MPC85xx_MDIO,
  182. },
  183. },
  184. {
  185. .ppc_sys_name = "8545",
  186. .mask = 0xFFFF00F0,
  187. .value = 0x80310010,
  188. .num_devices = 11,
  189. .device_list = (enum ppc_sys_devices[])
  190. {
  191. MPC85xx_eTSEC1, MPC85xx_eTSEC2,
  192. MPC85xx_IIC1, MPC85xx_IIC2,
  193. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  194. MPC85xx_PERFMON, MPC85xx_DUART,
  195. MPC85xx_MDIO,
  196. },
  197. },
  198. {
  199. .ppc_sys_name = "8543E",
  200. .mask = 0xFFFF00F0,
  201. .value = 0x803A0010,
  202. .num_devices = 12,
  203. .device_list = (enum ppc_sys_devices[])
  204. {
  205. MPC85xx_eTSEC1, MPC85xx_eTSEC2,
  206. MPC85xx_IIC1, MPC85xx_IIC2,
  207. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  208. MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
  209. MPC85xx_MDIO,
  210. },
  211. },
  212. {
  213. .ppc_sys_name = "8543",
  214. .mask = 0xFFFF00F0,
  215. .value = 0x80320010,
  216. .num_devices = 11,
  217. .device_list = (enum ppc_sys_devices[])
  218. {
  219. MPC85xx_eTSEC1, MPC85xx_eTSEC2,
  220. MPC85xx_IIC1, MPC85xx_IIC2,
  221. MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
  222. MPC85xx_PERFMON, MPC85xx_DUART,
  223. MPC85xx_MDIO,
  224. },
  225. },
  226. { /* default match */
  227. .ppc_sys_name = "",
  228. .mask = 0x00000000,
  229. .value = 0x00000000,
  230. },
  231. };