ast_dram_tables.h 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef AST_DRAM_TABLES_H
  3. #define AST_DRAM_TABLES_H
  4. /* DRAM timing tables */
  5. struct ast_dramstruct {
  6. u16 index;
  7. u32 data;
  8. };
  9. static const struct ast_dramstruct ast2000_dram_table_data[] = {
  10. { 0x0108, 0x00000000 },
  11. { 0x0120, 0x00004a21 },
  12. { 0xFF00, 0x00000043 },
  13. { 0x0000, 0xFFFFFFFF },
  14. { 0x0004, 0x00000089 },
  15. { 0x0008, 0x22331353 },
  16. { 0x000C, 0x0d07000b },
  17. { 0x0010, 0x11113333 },
  18. { 0x0020, 0x00110350 },
  19. { 0x0028, 0x1e0828f0 },
  20. { 0x0024, 0x00000001 },
  21. { 0x001C, 0x00000000 },
  22. { 0x0014, 0x00000003 },
  23. { 0xFF00, 0x00000043 },
  24. { 0x0018, 0x00000131 },
  25. { 0x0014, 0x00000001 },
  26. { 0xFF00, 0x00000043 },
  27. { 0x0018, 0x00000031 },
  28. { 0x0014, 0x00000001 },
  29. { 0xFF00, 0x00000043 },
  30. { 0x0028, 0x1e0828f1 },
  31. { 0x0024, 0x00000003 },
  32. { 0x002C, 0x1f0f28fb },
  33. { 0x0030, 0xFFFFFE01 },
  34. { 0xFFFF, 0xFFFFFFFF }
  35. };
  36. static const struct ast_dramstruct ast1100_dram_table_data[] = {
  37. { 0x2000, 0x1688a8a8 },
  38. { 0x2020, 0x000041f0 },
  39. { 0xFF00, 0x00000043 },
  40. { 0x0000, 0xfc600309 },
  41. { 0x006C, 0x00909090 },
  42. { 0x0064, 0x00050000 },
  43. { 0x0004, 0x00000585 },
  44. { 0x0008, 0x0011030f },
  45. { 0x0010, 0x22201724 },
  46. { 0x0018, 0x1e29011a },
  47. { 0x0020, 0x00c82222 },
  48. { 0x0014, 0x01001523 },
  49. { 0x001C, 0x1024010d },
  50. { 0x0024, 0x00cb2522 },
  51. { 0x0038, 0xffffff82 },
  52. { 0x003C, 0x00000000 },
  53. { 0x0040, 0x00000000 },
  54. { 0x0044, 0x00000000 },
  55. { 0x0048, 0x00000000 },
  56. { 0x004C, 0x00000000 },
  57. { 0x0050, 0x00000000 },
  58. { 0x0054, 0x00000000 },
  59. { 0x0058, 0x00000000 },
  60. { 0x005C, 0x00000000 },
  61. { 0x0060, 0x032aa02a },
  62. { 0x0064, 0x002d3000 },
  63. { 0x0068, 0x00000000 },
  64. { 0x0070, 0x00000000 },
  65. { 0x0074, 0x00000000 },
  66. { 0x0078, 0x00000000 },
  67. { 0x007C, 0x00000000 },
  68. { 0x0034, 0x00000001 },
  69. { 0xFF00, 0x00000043 },
  70. { 0x002C, 0x00000732 },
  71. { 0x0030, 0x00000040 },
  72. { 0x0028, 0x00000005 },
  73. { 0x0028, 0x00000007 },
  74. { 0x0028, 0x00000003 },
  75. { 0x0028, 0x00000001 },
  76. { 0x000C, 0x00005a08 },
  77. { 0x002C, 0x00000632 },
  78. { 0x0028, 0x00000001 },
  79. { 0x0030, 0x000003c0 },
  80. { 0x0028, 0x00000003 },
  81. { 0x0030, 0x00000040 },
  82. { 0x0028, 0x00000003 },
  83. { 0x000C, 0x00005a21 },
  84. { 0x0034, 0x00007c03 },
  85. { 0x0120, 0x00004c41 },
  86. { 0xffff, 0xffffffff },
  87. };
  88. static const struct ast_dramstruct ast2100_dram_table_data[] = {
  89. { 0x2000, 0x1688a8a8 },
  90. { 0x2020, 0x00004120 },
  91. { 0xFF00, 0x00000043 },
  92. { 0x0000, 0xfc600309 },
  93. { 0x006C, 0x00909090 },
  94. { 0x0064, 0x00070000 },
  95. { 0x0004, 0x00000489 },
  96. { 0x0008, 0x0011030f },
  97. { 0x0010, 0x32302926 },
  98. { 0x0018, 0x274c0122 },
  99. { 0x0020, 0x00ce2222 },
  100. { 0x0014, 0x01001523 },
  101. { 0x001C, 0x1024010d },
  102. { 0x0024, 0x00cb2522 },
  103. { 0x0038, 0xffffff82 },
  104. { 0x003C, 0x00000000 },
  105. { 0x0040, 0x00000000 },
  106. { 0x0044, 0x00000000 },
  107. { 0x0048, 0x00000000 },
  108. { 0x004C, 0x00000000 },
  109. { 0x0050, 0x00000000 },
  110. { 0x0054, 0x00000000 },
  111. { 0x0058, 0x00000000 },
  112. { 0x005C, 0x00000000 },
  113. { 0x0060, 0x0f2aa02a },
  114. { 0x0064, 0x003f3005 },
  115. { 0x0068, 0x02020202 },
  116. { 0x0070, 0x00000000 },
  117. { 0x0074, 0x00000000 },
  118. { 0x0078, 0x00000000 },
  119. { 0x007C, 0x00000000 },
  120. { 0x0034, 0x00000001 },
  121. { 0xFF00, 0x00000043 },
  122. { 0x002C, 0x00000942 },
  123. { 0x0030, 0x00000040 },
  124. { 0x0028, 0x00000005 },
  125. { 0x0028, 0x00000007 },
  126. { 0x0028, 0x00000003 },
  127. { 0x0028, 0x00000001 },
  128. { 0x000C, 0x00005a08 },
  129. { 0x002C, 0x00000842 },
  130. { 0x0028, 0x00000001 },
  131. { 0x0030, 0x000003c0 },
  132. { 0x0028, 0x00000003 },
  133. { 0x0030, 0x00000040 },
  134. { 0x0028, 0x00000003 },
  135. { 0x000C, 0x00005a21 },
  136. { 0x0034, 0x00007c03 },
  137. { 0x0120, 0x00005061 },
  138. { 0xffff, 0xffffffff },
  139. };
  140. /*
  141. * AST2500 DRAM settings modules
  142. */
  143. #define REGTBL_NUM 17
  144. #define REGIDX_010 0
  145. #define REGIDX_014 1
  146. #define REGIDX_018 2
  147. #define REGIDX_020 3
  148. #define REGIDX_024 4
  149. #define REGIDX_02C 5
  150. #define REGIDX_030 6
  151. #define REGIDX_214 7
  152. #define REGIDX_2E0 8
  153. #define REGIDX_2E4 9
  154. #define REGIDX_2E8 10
  155. #define REGIDX_2EC 11
  156. #define REGIDX_2F0 12
  157. #define REGIDX_2F4 13
  158. #define REGIDX_2F8 14
  159. #define REGIDX_RFC 15
  160. #define REGIDX_PLL 16
  161. static const u32 ast2500_ddr3_1600_timing_table[REGTBL_NUM] = {
  162. 0x64604D38, /* 0x010 */
  163. 0x29690599, /* 0x014 */
  164. 0x00000300, /* 0x018 */
  165. 0x00000000, /* 0x020 */
  166. 0x00000000, /* 0x024 */
  167. 0x02181E70, /* 0x02C */
  168. 0x00000040, /* 0x030 */
  169. 0x00000024, /* 0x214 */
  170. 0x02001300, /* 0x2E0 */
  171. 0x0E0000A0, /* 0x2E4 */
  172. 0x000E001B, /* 0x2E8 */
  173. 0x35B8C105, /* 0x2EC */
  174. 0x08090408, /* 0x2F0 */
  175. 0x9B000800, /* 0x2F4 */
  176. 0x0E400A00, /* 0x2F8 */
  177. 0x9971452F, /* tRFC */
  178. 0x000071C1 /* PLL */
  179. };
  180. static const u32 ast2500_ddr4_1600_timing_table[REGTBL_NUM] = {
  181. 0x63604E37, /* 0x010 */
  182. 0xE97AFA99, /* 0x014 */
  183. 0x00019000, /* 0x018 */
  184. 0x08000000, /* 0x020 */
  185. 0x00000400, /* 0x024 */
  186. 0x00000410, /* 0x02C */
  187. 0x00000101, /* 0x030 */
  188. 0x00000024, /* 0x214 */
  189. 0x03002900, /* 0x2E0 */
  190. 0x0E0000A0, /* 0x2E4 */
  191. 0x000E001C, /* 0x2E8 */
  192. 0x35B8C106, /* 0x2EC */
  193. 0x08080607, /* 0x2F0 */
  194. 0x9B000900, /* 0x2F4 */
  195. 0x0E400A00, /* 0x2F8 */
  196. 0x99714545, /* tRFC */
  197. 0x000071C1 /* PLL */
  198. };
  199. #endif