m54xxsim.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * m54xxsim.h -- ColdFire 547x/548x System Integration Unit support.
  4. */
  5. #ifndef m54xxsim_h
  6. #define m54xxsim_h
  7. #define CPU_NAME "COLDFIRE(m54xx)"
  8. #define CPU_INSTR_PER_JIFFY 2
  9. #define MCF_BUSCLK (MCF_CLK / 2)
  10. #define MACHINE MACH_M54XX
  11. #define FPUTYPE FPU_COLDFIRE
  12. #define IOMEMBASE MCF_MBAR
  13. #define IOMEMSIZE 0x01000000
  14. #include <asm/m54xxacr.h>
  15. #define MCFINT_VECBASE 64
  16. /*
  17. * Interrupt Controller Registers
  18. */
  19. #define MCFICM_INTC0 (MCF_MBAR + 0x700) /* Base for Interrupt Ctrl 0 */
  20. #define MCFINTC_IPRH 0x00 /* Interrupt pending 32-63 */
  21. #define MCFINTC_IPRL 0x04 /* Interrupt pending 1-31 */
  22. #define MCFINTC_IMRH 0x08 /* Interrupt mask 32-63 */
  23. #define MCFINTC_IMRL 0x0c /* Interrupt mask 1-31 */
  24. #define MCFINTC_INTFRCH 0x10 /* Interrupt force 32-63 */
  25. #define MCFINTC_INTFRCL 0x14 /* Interrupt force 1-31 */
  26. #define MCFINTC_IRLR 0x18 /* */
  27. #define MCFINTC_IACKL 0x19 /* */
  28. #define MCFINTC_ICR0 0x40 /* Base ICR register */
  29. /*
  30. * UART module.
  31. */
  32. #define MCFUART_BASE0 (MCF_MBAR + 0x8600) /* Base address UART0 */
  33. #define MCFUART_BASE1 (MCF_MBAR + 0x8700) /* Base address UART1 */
  34. #define MCFUART_BASE2 (MCF_MBAR + 0x8800) /* Base address UART2 */
  35. #define MCFUART_BASE3 (MCF_MBAR + 0x8900) /* Base address UART3 */
  36. /*
  37. * Define system peripheral IRQ usage.
  38. */
  39. #define MCF_IRQ_TIMER (MCFINT_VECBASE + 54) /* Slice Timer 0 */
  40. #define MCF_IRQ_PROFILER (MCFINT_VECBASE + 53) /* Slice Timer 1 */
  41. #define MCF_IRQ_I2C0 (MCFINT_VECBASE + 40)
  42. #define MCF_IRQ_UART0 (MCFINT_VECBASE + 35)
  43. #define MCF_IRQ_UART1 (MCFINT_VECBASE + 34)
  44. #define MCF_IRQ_UART2 (MCFINT_VECBASE + 33)
  45. #define MCF_IRQ_UART3 (MCFINT_VECBASE + 32)
  46. /*
  47. * Slice Timer support.
  48. */
  49. #define MCFSLT_TIMER0 (MCF_MBAR + 0x900) /* Base addr TIMER0 */
  50. #define MCFSLT_TIMER1 (MCF_MBAR + 0x910) /* Base addr TIMER1 */
  51. /*
  52. * Generic GPIO support
  53. */
  54. #define MCFGPIO_PODR (MCF_MBAR + 0xA00)
  55. #define MCFGPIO_PDDR (MCF_MBAR + 0xA10)
  56. #define MCFGPIO_PPDR (MCF_MBAR + 0xA20)
  57. #define MCFGPIO_SETR (MCF_MBAR + 0xA20)
  58. #define MCFGPIO_CLRR (MCF_MBAR + 0xA30)
  59. #define MCFGPIO_PIN_MAX 136 /* 128 gpio + 8 eport */
  60. #define MCFGPIO_IRQ_MAX 8
  61. #define MCFGPIO_IRQ_VECBASE MCFINT_VECBASE
  62. /*
  63. * EDGE Port support.
  64. */
  65. #define MCFEPORT_EPPAR (MCF_MBAR + 0xf00) /* Pin assignment */
  66. #define MCFEPORT_EPDDR (MCF_MBAR + 0xf04) /* Data direction */
  67. #define MCFEPORT_EPIER (MCF_MBAR + 0xf05) /* Interrupt enable */
  68. #define MCFEPORT_EPDR (MCF_MBAR + 0xf08) /* Port data (w) */
  69. #define MCFEPORT_EPPDR (MCF_MBAR + 0xf09) /* Port data (r) */
  70. #define MCFEPORT_EPFR (MCF_MBAR + 0xf0c) /* Flags */
  71. /*
  72. * Pin Assignment register definitions
  73. */
  74. #define MCFGPIO_PAR_FBCTL (MCF_MBAR + 0xA40)
  75. #define MCFGPIO_PAR_FBCS (MCF_MBAR + 0xA42)
  76. #define MCFGPIO_PAR_DMA (MCF_MBAR + 0xA43)
  77. #define MCFGPIO_PAR_FECI2CIRQ (MCF_MBAR + 0xA44)
  78. #define MCFGPIO_PAR_PCIBG (MCF_MBAR + 0xA48) /* PCI bus grant */
  79. #define MCFGPIO_PAR_PCIBR (MCF_MBAR + 0xA4A) /* PCI */
  80. #define MCFGPIO_PAR_PSC0 (MCF_MBAR + 0xA4F)
  81. #define MCFGPIO_PAR_PSC1 (MCF_MBAR + 0xA4E)
  82. #define MCFGPIO_PAR_PSC2 (MCF_MBAR + 0xA4D)
  83. #define MCFGPIO_PAR_PSC3 (MCF_MBAR + 0xA4C)
  84. #define MCFGPIO_PAR_DSPI (MCF_MBAR + 0xA50)
  85. #define MCFGPIO_PAR_TIMER (MCF_MBAR + 0xA52)
  86. #define MCF_PAR_SDA (0x0008)
  87. #define MCF_PAR_SCL (0x0004)
  88. #define MCF_PAR_PSC_TXD (0x04)
  89. #define MCF_PAR_PSC_RXD (0x08)
  90. #define MCF_PAR_PSC_CTS_GPIO (0x00)
  91. #define MCF_PAR_PSC_CTS_BCLK (0x80)
  92. #define MCF_PAR_PSC_CTS_CTS (0xC0)
  93. #define MCF_PAR_PSC_RTS_GPIO (0x00)
  94. #define MCF_PAR_PSC_RTS_FSYNC (0x20)
  95. #define MCF_PAR_PSC_RTS_RTS (0x30)
  96. #define MCF_PAR_PSC_CANRX (0x40)
  97. #define MCF_PAR_FECI2CIRQ (MCF_MBAR + 0x00000a44) /* FEC/I2C/IRQ */
  98. #define MCF_PAR_FECI2CIRQ_SDA (1 << 3)
  99. #define MCF_PAR_FECI2CIRQ_SCL (1 << 2)
  100. /*
  101. * I2C module.
  102. */
  103. #define MCFI2C_BASE0 (MCF_MBAR + 0x8f00)
  104. #define MCFI2C_SIZE0 0x40
  105. #endif /* m54xxsim_h */