0001
0002 #ifndef AST_DRAM_TABLES_H
0003 #define AST_DRAM_TABLES_H
0004
0005
0006 struct ast_dramstruct {
0007 u16 index;
0008 u32 data;
0009 };
0010
0011 static const struct ast_dramstruct ast2000_dram_table_data[] = {
0012 { 0x0108, 0x00000000 },
0013 { 0x0120, 0x00004a21 },
0014 { 0xFF00, 0x00000043 },
0015 { 0x0000, 0xFFFFFFFF },
0016 { 0x0004, 0x00000089 },
0017 { 0x0008, 0x22331353 },
0018 { 0x000C, 0x0d07000b },
0019 { 0x0010, 0x11113333 },
0020 { 0x0020, 0x00110350 },
0021 { 0x0028, 0x1e0828f0 },
0022 { 0x0024, 0x00000001 },
0023 { 0x001C, 0x00000000 },
0024 { 0x0014, 0x00000003 },
0025 { 0xFF00, 0x00000043 },
0026 { 0x0018, 0x00000131 },
0027 { 0x0014, 0x00000001 },
0028 { 0xFF00, 0x00000043 },
0029 { 0x0018, 0x00000031 },
0030 { 0x0014, 0x00000001 },
0031 { 0xFF00, 0x00000043 },
0032 { 0x0028, 0x1e0828f1 },
0033 { 0x0024, 0x00000003 },
0034 { 0x002C, 0x1f0f28fb },
0035 { 0x0030, 0xFFFFFE01 },
0036 { 0xFFFF, 0xFFFFFFFF }
0037 };
0038
0039 static const struct ast_dramstruct ast1100_dram_table_data[] = {
0040 { 0x2000, 0x1688a8a8 },
0041 { 0x2020, 0x000041f0 },
0042 { 0xFF00, 0x00000043 },
0043 { 0x0000, 0xfc600309 },
0044 { 0x006C, 0x00909090 },
0045 { 0x0064, 0x00050000 },
0046 { 0x0004, 0x00000585 },
0047 { 0x0008, 0x0011030f },
0048 { 0x0010, 0x22201724 },
0049 { 0x0018, 0x1e29011a },
0050 { 0x0020, 0x00c82222 },
0051 { 0x0014, 0x01001523 },
0052 { 0x001C, 0x1024010d },
0053 { 0x0024, 0x00cb2522 },
0054 { 0x0038, 0xffffff82 },
0055 { 0x003C, 0x00000000 },
0056 { 0x0040, 0x00000000 },
0057 { 0x0044, 0x00000000 },
0058 { 0x0048, 0x00000000 },
0059 { 0x004C, 0x00000000 },
0060 { 0x0050, 0x00000000 },
0061 { 0x0054, 0x00000000 },
0062 { 0x0058, 0x00000000 },
0063 { 0x005C, 0x00000000 },
0064 { 0x0060, 0x032aa02a },
0065 { 0x0064, 0x002d3000 },
0066 { 0x0068, 0x00000000 },
0067 { 0x0070, 0x00000000 },
0068 { 0x0074, 0x00000000 },
0069 { 0x0078, 0x00000000 },
0070 { 0x007C, 0x00000000 },
0071 { 0x0034, 0x00000001 },
0072 { 0xFF00, 0x00000043 },
0073 { 0x002C, 0x00000732 },
0074 { 0x0030, 0x00000040 },
0075 { 0x0028, 0x00000005 },
0076 { 0x0028, 0x00000007 },
0077 { 0x0028, 0x00000003 },
0078 { 0x0028, 0x00000001 },
0079 { 0x000C, 0x00005a08 },
0080 { 0x002C, 0x00000632 },
0081 { 0x0028, 0x00000001 },
0082 { 0x0030, 0x000003c0 },
0083 { 0x0028, 0x00000003 },
0084 { 0x0030, 0x00000040 },
0085 { 0x0028, 0x00000003 },
0086 { 0x000C, 0x00005a21 },
0087 { 0x0034, 0x00007c03 },
0088 { 0x0120, 0x00004c41 },
0089 { 0xffff, 0xffffffff },
0090 };
0091
0092 static const struct ast_dramstruct ast2100_dram_table_data[] = {
0093 { 0x2000, 0x1688a8a8 },
0094 { 0x2020, 0x00004120 },
0095 { 0xFF00, 0x00000043 },
0096 { 0x0000, 0xfc600309 },
0097 { 0x006C, 0x00909090 },
0098 { 0x0064, 0x00070000 },
0099 { 0x0004, 0x00000489 },
0100 { 0x0008, 0x0011030f },
0101 { 0x0010, 0x32302926 },
0102 { 0x0018, 0x274c0122 },
0103 { 0x0020, 0x00ce2222 },
0104 { 0x0014, 0x01001523 },
0105 { 0x001C, 0x1024010d },
0106 { 0x0024, 0x00cb2522 },
0107 { 0x0038, 0xffffff82 },
0108 { 0x003C, 0x00000000 },
0109 { 0x0040, 0x00000000 },
0110 { 0x0044, 0x00000000 },
0111 { 0x0048, 0x00000000 },
0112 { 0x004C, 0x00000000 },
0113 { 0x0050, 0x00000000 },
0114 { 0x0054, 0x00000000 },
0115 { 0x0058, 0x00000000 },
0116 { 0x005C, 0x00000000 },
0117 { 0x0060, 0x0f2aa02a },
0118 { 0x0064, 0x003f3005 },
0119 { 0x0068, 0x02020202 },
0120 { 0x0070, 0x00000000 },
0121 { 0x0074, 0x00000000 },
0122 { 0x0078, 0x00000000 },
0123 { 0x007C, 0x00000000 },
0124 { 0x0034, 0x00000001 },
0125 { 0xFF00, 0x00000043 },
0126 { 0x002C, 0x00000942 },
0127 { 0x0030, 0x00000040 },
0128 { 0x0028, 0x00000005 },
0129 { 0x0028, 0x00000007 },
0130 { 0x0028, 0x00000003 },
0131 { 0x0028, 0x00000001 },
0132 { 0x000C, 0x00005a08 },
0133 { 0x002C, 0x00000842 },
0134 { 0x0028, 0x00000001 },
0135 { 0x0030, 0x000003c0 },
0136 { 0x0028, 0x00000003 },
0137 { 0x0030, 0x00000040 },
0138 { 0x0028, 0x00000003 },
0139 { 0x000C, 0x00005a21 },
0140 { 0x0034, 0x00007c03 },
0141 { 0x0120, 0x00005061 },
0142 { 0xffff, 0xffffffff },
0143 };
0144
0145
0146
0147
0148 #define REGTBL_NUM 17
0149 #define REGIDX_010 0
0150 #define REGIDX_014 1
0151 #define REGIDX_018 2
0152 #define REGIDX_020 3
0153 #define REGIDX_024 4
0154 #define REGIDX_02C 5
0155 #define REGIDX_030 6
0156 #define REGIDX_214 7
0157 #define REGIDX_2E0 8
0158 #define REGIDX_2E4 9
0159 #define REGIDX_2E8 10
0160 #define REGIDX_2EC 11
0161 #define REGIDX_2F0 12
0162 #define REGIDX_2F4 13
0163 #define REGIDX_2F8 14
0164 #define REGIDX_RFC 15
0165 #define REGIDX_PLL 16
0166
0167 static const u32 ast2500_ddr3_1600_timing_table[REGTBL_NUM] = {
0168 0x64604D38,
0169 0x29690599,
0170 0x00000300,
0171 0x00000000,
0172 0x00000000,
0173 0x02181E70,
0174 0x00000040,
0175 0x00000024,
0176 0x02001300,
0177 0x0E0000A0,
0178 0x000E001B,
0179 0x35B8C105,
0180 0x08090408,
0181 0x9B000800,
0182 0x0E400A00,
0183 0x9971452F,
0184 0x000071C1
0185 };
0186
0187 static const u32 ast2500_ddr4_1600_timing_table[REGTBL_NUM] = {
0188 0x63604E37,
0189 0xE97AFA99,
0190 0x00019000,
0191 0x08000000,
0192 0x00000400,
0193 0x00000410,
0194 0x00000101,
0195 0x00000024,
0196 0x03002900,
0197 0x0E0000A0,
0198 0x000E001C,
0199 0x35B8C106,
0200 0x08080607,
0201 0x9B000900,
0202 0x0E400A00,
0203 0x99714545,
0204 0x000071C1
0205 };
0206
0207 #endif