mpc85xx.h 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. /*
  2. * include/asm-ppc/mpc85xx.h
  3. *
  4. * MPC85xx definitions
  5. *
  6. * Maintainer: Kumar Gala <galak@kernel.crashing.org>
  7. *
  8. * Copyright 2004 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. #ifdef __KERNEL__
  16. #ifndef __ASM_MPC85xx_H__
  17. #define __ASM_MPC85xx_H__
  18. #include <asm/mmu.h>
  19. #ifdef CONFIG_85xx
  20. #ifdef CONFIG_MPC8540_ADS
  21. #include <platforms/85xx/mpc8540_ads.h>
  22. #endif
  23. #if defined(CONFIG_MPC8555_CDS) || defined(CONFIG_MPC8548_CDS)
  24. #include <platforms/85xx/mpc8555_cds.h>
  25. #endif
  26. #ifdef CONFIG_MPC85xx_CDS
  27. #include <platforms/85xx/mpc85xx_cds.h>
  28. #endif
  29. #ifdef CONFIG_MPC8560_ADS
  30. #include <platforms/85xx/mpc8560_ads.h>
  31. #endif
  32. #ifdef CONFIG_SBC8560
  33. #include <platforms/85xx/sbc8560.h>
  34. #endif
  35. #ifdef CONFIG_STX_GP3
  36. #include <platforms/85xx/stx_gp3.h>
  37. #endif
  38. #if defined(CONFIG_TQM8540) || defined(CONFIG_TQM8541) || \
  39. defined(CONFIG_TQM8555) || defined(CONFIG_TQM8560)
  40. #include <platforms/85xx/tqm85xx.h>
  41. #endif
  42. #define _IO_BASE isa_io_base
  43. #define _ISA_MEM_BASE isa_mem_base
  44. #ifdef CONFIG_PCI
  45. #define PCI_DRAM_OFFSET pci_dram_offset
  46. #else
  47. #define PCI_DRAM_OFFSET 0
  48. #endif
  49. /*
  50. * The "residual" board information structure the boot loader passes
  51. * into the kernel.
  52. */
  53. extern unsigned char __res[];
  54. /* Offset from CCSRBAR */
  55. #define MPC85xx_CPM_OFFSET (0x80000)
  56. #define MPC85xx_CPM_SIZE (0x40000)
  57. #define MPC85xx_DMA_OFFSET (0x21000)
  58. #define MPC85xx_DMA_SIZE (0x01000)
  59. #define MPC85xx_DMA0_OFFSET (0x21100)
  60. #define MPC85xx_DMA0_SIZE (0x00080)
  61. #define MPC85xx_DMA1_OFFSET (0x21180)
  62. #define MPC85xx_DMA1_SIZE (0x00080)
  63. #define MPC85xx_DMA2_OFFSET (0x21200)
  64. #define MPC85xx_DMA2_SIZE (0x00080)
  65. #define MPC85xx_DMA3_OFFSET (0x21280)
  66. #define MPC85xx_DMA3_SIZE (0x00080)
  67. #define MPC85xx_ENET1_OFFSET (0x24000)
  68. #define MPC85xx_ENET1_SIZE (0x01000)
  69. #define MPC85xx_MIIM_OFFSET (0x24520)
  70. #define MPC85xx_MIIM_SIZE (0x00018)
  71. #define MPC85xx_ENET2_OFFSET (0x25000)
  72. #define MPC85xx_ENET2_SIZE (0x01000)
  73. #define MPC85xx_ENET3_OFFSET (0x26000)
  74. #define MPC85xx_ENET3_SIZE (0x01000)
  75. #define MPC85xx_GUTS_OFFSET (0xe0000)
  76. #define MPC85xx_GUTS_SIZE (0x01000)
  77. #define MPC85xx_IIC1_OFFSET (0x03000)
  78. #define MPC85xx_IIC1_SIZE (0x00100)
  79. #define MPC85xx_OPENPIC_OFFSET (0x40000)
  80. #define MPC85xx_OPENPIC_SIZE (0x40000)
  81. #define MPC85xx_PCI1_OFFSET (0x08000)
  82. #define MPC85xx_PCI1_SIZE (0x01000)
  83. #define MPC85xx_PCI2_OFFSET (0x09000)
  84. #define MPC85xx_PCI2_SIZE (0x01000)
  85. #define MPC85xx_PERFMON_OFFSET (0xe1000)
  86. #define MPC85xx_PERFMON_SIZE (0x01000)
  87. #define MPC85xx_SEC2_OFFSET (0x30000)
  88. #define MPC85xx_SEC2_SIZE (0x10000)
  89. #define MPC85xx_UART0_OFFSET (0x04500)
  90. #define MPC85xx_UART0_SIZE (0x00100)
  91. #define MPC85xx_UART1_OFFSET (0x04600)
  92. #define MPC85xx_UART1_SIZE (0x00100)
  93. #define MPC85xx_CCSRBAR_SIZE (1024*1024)
  94. /* Let modules/drivers get at CCSRBAR */
  95. extern phys_addr_t get_ccsrbar(void);
  96. #ifdef MODULE
  97. #define CCSRBAR get_ccsrbar()
  98. #else
  99. #define CCSRBAR BOARD_CCSRBAR
  100. #endif
  101. enum ppc_sys_devices {
  102. MPC85xx_TSEC1,
  103. MPC85xx_TSEC2,
  104. MPC85xx_FEC,
  105. MPC85xx_IIC1,
  106. MPC85xx_DMA0,
  107. MPC85xx_DMA1,
  108. MPC85xx_DMA2,
  109. MPC85xx_DMA3,
  110. MPC85xx_DUART,
  111. MPC85xx_PERFMON,
  112. MPC85xx_SEC2,
  113. MPC85xx_CPM_SPI,
  114. MPC85xx_CPM_I2C,
  115. MPC85xx_CPM_USB,
  116. MPC85xx_CPM_SCC1,
  117. MPC85xx_CPM_SCC2,
  118. MPC85xx_CPM_SCC3,
  119. MPC85xx_CPM_SCC4,
  120. MPC85xx_CPM_FCC1,
  121. MPC85xx_CPM_FCC2,
  122. MPC85xx_CPM_FCC3,
  123. MPC85xx_CPM_MCC1,
  124. MPC85xx_CPM_MCC2,
  125. MPC85xx_CPM_SMC1,
  126. MPC85xx_CPM_SMC2,
  127. MPC85xx_eTSEC1,
  128. MPC85xx_eTSEC2,
  129. MPC85xx_eTSEC3,
  130. MPC85xx_eTSEC4,
  131. MPC85xx_IIC2,
  132. MPC85xx_MDIO,
  133. NUM_PPC_SYS_DEVS,
  134. };
  135. /* Internal interrupts are all Level Sensitive, and Positive Polarity */
  136. #define MPC85XX_INTERNAL_IRQ_SENSES \
  137. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 0 */ \
  138. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 1 */ \
  139. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 2 */ \
  140. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 3 */ \
  141. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 4 */ \
  142. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 5 */ \
  143. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 6 */ \
  144. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 7 */ \
  145. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 8 */ \
  146. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 9 */ \
  147. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 10 */ \
  148. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 11 */ \
  149. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 12 */ \
  150. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 13 */ \
  151. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 14 */ \
  152. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 15 */ \
  153. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 16 */ \
  154. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 17 */ \
  155. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 18 */ \
  156. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 19 */ \
  157. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 20 */ \
  158. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 21 */ \
  159. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 22 */ \
  160. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 23 */ \
  161. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 24 */ \
  162. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 25 */ \
  163. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 26 */ \
  164. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 27 */ \
  165. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 28 */ \
  166. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 29 */ \
  167. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 30 */ \
  168. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 31 */ \
  169. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 32 */ \
  170. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 33 */ \
  171. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 34 */ \
  172. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 35 */ \
  173. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 36 */ \
  174. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 37 */ \
  175. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 38 */ \
  176. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 39 */ \
  177. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 40 */ \
  178. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 41 */ \
  179. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 42 */ \
  180. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 43 */ \
  181. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 44 */ \
  182. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 45 */ \
  183. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* Internal 46 */ \
  184. (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE) /* Internal 47 */
  185. #endif /* CONFIG_85xx */
  186. #endif /* __ASM_MPC85xx_H__ */
  187. #endif /* __KERNEL__ */