flexbus.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * FlexBus Internal Memory Map
  4. *
  5. * Copyright (C) 2004-2007 Freescale Semiconductor, Inc.
  6. * TsiChung Liew (Tsi-Chung.Liew@freescale.com)
  7. */
  8. #ifndef __FLEXBUS_H
  9. #define __FLEXBUS_H
  10. /*********************************************************************
  11. * FlexBus Chip Selects (FBCS)
  12. *********************************************************************/
  13. #ifdef CONFIG_M5235
  14. typedef struct fbcs {
  15. u16 csar0; /* Chip-select Address */
  16. u16 res1;
  17. u32 csmr0; /* Chip-select Mask */
  18. u16 res2;
  19. u16 cscr0; /* Chip-select Control */
  20. u16 csar1;
  21. u16 res3;
  22. u32 csmr1;
  23. u16 res4;
  24. u16 cscr1;
  25. u16 csar2;
  26. u16 res5;
  27. u32 csmr2;
  28. u16 res6;
  29. u16 cscr2;
  30. u16 csar3;
  31. u16 res7;
  32. u32 csmr3;
  33. u16 res8;
  34. u16 cscr3;
  35. u16 csar4;
  36. u16 res9;
  37. u32 csmr4;
  38. u16 res10;
  39. u16 cscr4;
  40. u16 csar5;
  41. u16 res11;
  42. u32 csmr5;
  43. u16 res12;
  44. u16 cscr5;
  45. u16 csar6;
  46. u16 res13;
  47. u32 csmr6;
  48. u16 res14;
  49. u16 cscr6;
  50. u16 csar7;
  51. u16 res15;
  52. u32 csmr7;
  53. u16 res16;
  54. u16 cscr7;
  55. } fbcs_t;
  56. #else
  57. typedef struct fbcs {
  58. u32 csar0; /* Chip-select Address */
  59. u32 csmr0; /* Chip-select Mask */
  60. u32 cscr0; /* Chip-select Control */
  61. u32 csar1;
  62. u32 csmr1;
  63. u32 cscr1;
  64. u32 csar2;
  65. u32 csmr2;
  66. u32 cscr2;
  67. u32 csar3;
  68. u32 csmr3;
  69. u32 cscr3;
  70. u32 csar4;
  71. u32 csmr4;
  72. u32 cscr4;
  73. u32 csar5;
  74. u32 csmr5;
  75. u32 cscr5;
  76. u32 csar6;
  77. u32 csmr6;
  78. u32 cscr6;
  79. u32 csar7;
  80. u32 csmr7;
  81. u32 cscr7;
  82. } fbcs_t;
  83. #endif
  84. #define FBCS_CSAR_BA(x) ((x) & 0xFFFF0000)
  85. #define FBCS_CSMR_BAM(x) (((x) & 0xFFFF) << 16)
  86. #define FBCS_CSMR_BAM_MASK (0x0000FFFF)
  87. #define FBCS_CSMR_BAM_4G (0xFFFF0000)
  88. #define FBCS_CSMR_BAM_2G (0x7FFF0000)
  89. #define FBCS_CSMR_BAM_1G (0x3FFF0000)
  90. #define FBCS_CSMR_BAM_1024M (0x3FFF0000)
  91. #define FBCS_CSMR_BAM_512M (0x1FFF0000)
  92. #define FBCS_CSMR_BAM_256M (0x0FFF0000)
  93. #define FBCS_CSMR_BAM_128M (0x07FF0000)
  94. #define FBCS_CSMR_BAM_64M (0x03FF0000)
  95. #define FBCS_CSMR_BAM_32M (0x01FF0000)
  96. #define FBCS_CSMR_BAM_16M (0x00FF0000)
  97. #define FBCS_CSMR_BAM_8M (0x007F0000)
  98. #define FBCS_CSMR_BAM_4M (0x003F0000)
  99. #define FBCS_CSMR_BAM_2M (0x001F0000)
  100. #define FBCS_CSMR_BAM_1M (0x000F0000)
  101. #define FBCS_CSMR_BAM_1024K (0x000F0000)
  102. #define FBCS_CSMR_BAM_512K (0x00070000)
  103. #define FBCS_CSMR_BAM_256K (0x00030000)
  104. #define FBCS_CSMR_BAM_128K (0x00010000)
  105. #define FBCS_CSMR_BAM_64K (0x00000000)
  106. #ifdef CONFIG_M5249
  107. #define FBCS_CSMR_WP (0x00000080)
  108. #define FBCS_CSMR_AM (0x00000040)
  109. #define FBCS_CSMR_CI (0x00000020)
  110. #define FBCS_CSMR_SC (0x00000010)
  111. #define FBCS_CSMR_SD (0x00000008)
  112. #define FBCS_CSMR_UC (0x00000004)
  113. #define FBCS_CSMR_UD (0x00000002)
  114. #else
  115. #define FBCS_CSMR_WP (0x00000100)
  116. #endif
  117. #define FBCS_CSMR_V (0x00000001) /* Valid bit */
  118. #ifdef CONFIG_M5235
  119. #define FBCS_CSCR_SRWS(x) (((x) & 0x3) << 14)
  120. #define FBCS_CSCR_IWS(x) (((x) & 0xF) << 10)
  121. #define FBCS_CSCR_AA_ON (1 << 8)
  122. #define FBCS_CSCR_AA_OFF (0 << 8)
  123. #define FBCS_CSCR_PS_32 (0 << 6)
  124. #define FBCS_CSCR_PS_16 (2 << 6)
  125. #define FBCS_CSCR_PS_8 (1 << 6)
  126. #define FBCS_CSCR_BEM_ON (1 << 5)
  127. #define FBCS_CSCR_BEM_OFF (0 << 5)
  128. #define FBCS_CSCR_BSTR_ON (1 << 4)
  129. #define FBCS_CSCR_BSTR_OFF (0 << 4)
  130. #define FBCS_CSCR_BSTW_ON (1 << 3)
  131. #define FBCS_CSCR_BSTW_OFF (0 << 3)
  132. #define FBCS_CSCR_SWWS(x) (((x) & 0x7) << 0)
  133. #else
  134. #define FBCS_CSCR_SWS(x) (((x) & 0x3F) << 26)
  135. #define FBCS_CSCR_SWS_MASK (0x03FFFFFF)
  136. #define FBCS_CSCR_SWSEN (0x00800000)
  137. #define FBCS_CSCR_ASET(x) (((x) & 0x03) << 20)
  138. #define FBCS_CSCR_ASET_MASK (0xFFCFFFFF)
  139. #define FBCS_CSCR_RDAH(x) (((x) & 0x03) << 18)
  140. #define FBCS_CSCR_RDAH_MASK (0xFFF3FFFF)
  141. #define FBCS_CSCR_WRAH(x) (((x) & 0x03) << 16)
  142. #define FBCS_CSCR_WRAH_MASK (0xFFFCFFFF)
  143. #define FBCS_CSCR_WS(x) (((x) & 0x3F) << 10)
  144. #define FBCS_CSCR_WS_MASK (0xFFFF03FF)
  145. #define FBCS_CSCR_SBM (0x00000200)
  146. #define FBCS_CSCR_AA (0x00000100)
  147. #define FBCS_CSCR_PS(x) (((x) & 0x03) << 6)
  148. #define FBCS_CSCR_PS_MASK (0xFFFFFF3F)
  149. #define FBCS_CSCR_BEM (0x00000020)
  150. #define FBCS_CSCR_BSTR (0x00000010)
  151. #define FBCS_CSCR_BSTW (0x00000008)
  152. #define FBCS_CSCR_PS_16 (0x00000080)
  153. #define FBCS_CSCR_PS_8 (0x00000040)
  154. #define FBCS_CSCR_PS_32 (0x00000000)
  155. #endif
  156. #endif /* __FLEXBUS_H */