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