tizen 2.4 release
[kernel/u-boot-tm1.git] / arch / arm / include / asm / arch-sc8810 / sdram.h
1 #ifndef _SDRAM_H_
2 #define _SDRAM_H_
3
4 #ifdef CONFIG_SC8810
5 typedef enum EMC_ENDIAN_SWITCH_TAG
6 {
7     EMC_ENDIAN_SWITCH_NONE = 3,
8     EMC_ENDIAN_SWITCH_BYTE = 0,
9     EMC_ENDIAN_SWITCH_HALF = 1,
10     EMC_ENDIAN_SWITCH_WORD = 2,    
11 }
12 EMC_ENDIAN_SWITCH_E;
13
14 typedef enum EMC_DVC_ENDIAN_TAG
15 {
16     EMC_DVC_ENDIAN_DEFAULT = 0,
17     EMC_DVC_ENDIAN_LITTLE = 0,
18     EMC_DVC_ENDIAN_BIG = 1
19 }
20 EMC_DVC_ENAIDN_E;
21
22 typedef enum EMC_AUTO_GATE_TAG
23 {
24     EMC_AUTO_GATE_DEFAULT = 0,
25     EMC_AUTO_GATE_DIS = 0,
26     EMC_AUTO_GATE_EN = 1
27 }
28 EMC_AUTO_GATE_E;
29
30 typedef enum EMC_AUTO_SLEEP_TAG
31 {
32     EMC_AUTO_SLEEP_DEFAULT = 0,
33     EMC_AUTO_SLEEP_DIS = 0,
34     EMC_AUTO_SLEEP_EN = 1
35 }
36 EMC_AUTO_SLEEP_E;
37
38 typedef enum EMC_CMD_QUEUE_TAG
39 {
40     EMC_2DB = 0,                // 2 stage device burst 
41     EMC_2DB_1CB,                // 2-stage device burst and 1-stage channel burst
42     EMC_2DB_2CB         // 2-stage device burst and 2-stage channel burst
43 }
44 EMC_CMD_QUEUE_E;
45
46 typedef enum EMC_CS_MODE_TAG
47 {
48     EMC_CS_MODE_DEFAULT = 0,
49     EMC_CS0_ENLARGE = 1,
50     EMC_CS1_ENLARGE = 2
51 }
52 EMC_CS_MODE_E;
53
54 typedef enum EMC_CS_MAP_TAG
55 {
56     EMC_CS_MAP_DEFAULT = 5,
57     EMC_CS_MAP_32M = 0,         
58     EMC_CS_MAP_64M = 1,
59     EMC_CS_MAP_128M = 2,
60     EMC_CS_MAP_256M = 3,
61     EMC_CS_MAP_512M = 4,
62     EMC_CS_MAP_1G = 5,
63     EMC_CS_MAP_2G = 6,
64     EMC_CS_MAP_4G = 7
65 }
66 EMC_CS_MAP_E;
67
68 typedef enum EMC_CS_NUM_TAG
69 {
70     EMC_CS0 = 0,
71     EMC_CS1
72 }
73 EMC_CS_NUM_E;
74
75 typedef enum EMC_BURST_MODE_TAG
76 {
77     BURST_WRAP = 0,
78     BURST_INCR
79 }
80 EMC_BURST_MODE_E;
81
82 typedef enum EMC_BURST_INVERT_TAG
83 {
84     HBURST_TO_SINGLE = 0,
85     HBURST_TO_BURST
86 }
87 EMC_BURST_INVERT_E;
88
89 typedef enum EMC_CHL_NUM_TAG
90 {
91     EMC_AXI_ARM = 0,
92     EMC_AXI_GPU = 1,
93     EMC_AHB_MTX1 = 2,
94     EMC_AHB_MTX2 = 3,
95     EMC_DSP_CHL = 4,
96     EMC_DSP_MTX = 5,
97     EMC_DCAM_CHL = 6,
98     EMC_LCD_CHL = 7,
99     EMC_VSP_CHL = 8    
100 }
101 EMC_CHL_NUM_E;
102
103
104 typedef enum EMC_CLK_SYNC_TAG
105 {
106     EMC_CLK_ASYNC = 0,
107     EMC_CLK_SYNC
108 }
109 EMC_CLK_SYNC_E;
110
111 typedef enum EMC_REF_CS_TAG
112 {
113     EMC_CS_REF_OBO = 0, //CSs auto-refresh one by one
114     EMC_CS_REF_SAME     //CSs auto-refresh at same time
115 }
116 EMC_CS_REF_E;
117
118 typedef enum EMC_PRE_BIT_TAG
119 {
120     EMC_PRE_BIT_A10 = 0,
121     EMC_PRE_BIT_A11,
122     EMC_PRE_BIT_A12,
123     EMC_PRE_BIT_A13    
124 }
125 EMC_PRE_BIT_E;
126
127 typedef enum EMC_DL_SWTICH_TAG
128 {
129     EMC_DL_OFF = 0,
130     EMC_DL_ON
131 }
132 EMC_DL_SWTICH_E;
133
134 typedef enum EMC_CKE_SEL_TAG
135 {
136     EMC_CKE_SEL_DEFAULT = 0,
137     EMC_CKE_CS0 = 0,
138     EMC_CKE_CS1 = 1,
139     EMC_CKE_ALL_CS = 2
140 }
141 EMC_CKE_SEL_E;
142
143 typedef enum EMC_DQS_GATE_LOOP_TAG
144 {
145     EMC_DQS_GATE_DEFAULT = 0,
146     EMC_DQS_GATE_DL = 0,
147     EMC_DQS_GATE_DL_LB = 1,
148     EMC_DQS_GATE_LB = 2
149 }
150 EMC_DQS_GATE_LOOP_E;
151
152 typedef enum EMC_DQS_GATE_MODE_TAG
153 {
154     EMC_DQS_GATE_MODE_DEFAULT = 0,
155     EMC_DQS_GATE_MODE0 = 0,
156     EMC_DQS_GATE_MODE1 = 1
157 }
158 EMC_DQS_GATE_MODE_E;
159
160 typedef enum EMC_PHY_TIMING_NUM_TAG
161 {
162     EMC_PHY_TIMING_SDRAM_LATENCY2 = 0,
163     EMC_PHY_TIMING_SDRAM_LATENCY3,
164     EMC_PHY_TIMING_DDRAM_LATENCY2,
165     EMC_PHY_TIMING_DDRAM_LATENCY3,
166     EMC_PHY_TIMING_MATRIX_MAX
167 }EMC_PHY_TIMING_NUM_E;
168
169 typedef enum EMC_DLL_NUM_TAG
170 {
171         EMC_DMEM_DL0 = 0,
172         EMC_DMEM_DL1,
173         EMC_DMEM_DL2,
174         EMC_DMEM_DL3,
175         EMC_DMEM_DL4,
176         EMC_DMEM_DL5,
177         EMC_DMEM_DL7,
178         EMC_DMEM_DL8,
179         EMC_DMEM_DL9,
180         EMC_DMEM_DL10,
181         EMC_DMEM_DL11,
182         EMC_DMEM_DL12,
183         EMC_DMEM_DL13,
184         EMC_DMEM_DL14,
185         EMC_DMEM_DL15,
186         EMC_DMEM_DL16,
187         EMC_DMEM_DL17,
188         EMC_DMEM_DL18,
189         EMC_DMEM_DL19,
190         EMC_DMEM_MAX
191 }EMC_DLL_NUM_E;
192
193 typedef struct EMC_PHY_L1_TIMING_TAG 
194 {
195         uint32 data_pad_ie_delay;
196         uint32 data_pad_oe_delay;               
197         uint32 dqs_gate_pst_delay;
198         uint32 dqs_gate_pre_delay;
199         uint32 dqs_ie_delay;
200         uint32 dqs_oe_delay;            
201 }EMC_PHY_L1_TIMING_T,*EMC_PHY_L1_TIMING_T_PTR;
202
203 typedef struct EMC_PHY_L2_TIMING_TAG 
204 {       
205         uint32 clkdmem_out_dl;
206         uint32 dqs_ie_dl;
207         uint32 dqs_out_dl;
208         uint32 clkwr_dl;
209         uint32 dqs_gate_pre_dl_0;
210         uint32 dqs_gate_pre_dl_1;
211         uint32 dqs_gate_pre_dl_2;
212         uint32 dqs_gate_pre_dl_3;
213         uint32 dqs_gate_pst_dl_0;
214         uint32 dqs_gate_pst_dl_1;
215         uint32 dqs_gate_pst_dl_2;
216         uint32 dqs_gate_pst_dl_3;
217         uint32 dqs_in_pos_dl_0;
218         uint32 dqs_in_pos_dl_1; 
219         uint32 dqs_in_pos_dl_2; 
220         uint32 dqs_in_pos_dl_3; 
221         uint32 dqs_in_neg_dl_0; 
222         uint32 dqs_in_neg_dl_1;         
223         uint32 dqs_in_neg_dl_2;         
224         uint32 dqs_in_neg_dl_3;                 
225 }EMC_PHY_L2_TIMING_T,*EMC_PHY_L2_TIMING_T_PTR;
226
227 #endif
228 /*
229 #define EMC_BASEADDR 0x20000000
230 #define EMC_CFG0  0x20000000
231
232 #define DMEM_CFG0   (EMC_BASEADDR + 0x40)
233 */
234 #define DCFG0_DQM_MODE_LOW             0           //DQM low in deactive
235 #define DCFG0_DQM_MODE_W0R0            1           //DQM hihe in deactive,Write: 0 cycle delay; Read: 0 cycle delay;
236 #define DCFG0_DQM_MODE_W0R1            2           //DQM hihe in deactive,Write: 0 cycle delay; Read: 1 cycle delay;
237 #define DCFG0_DQM_MODE_W0R2            3           //DQM hihe in deactive,Write: 0 cycle delay; Read: 2 cycle delay;
238
239 #define DCFG0_DQM_TERM_EN              (1u << 2)
240 #define DCFG0_DQM_FORCE_HIGH           (1u << 3)
241
242 #define DCFG0_BKPOS_HADDR3             (0u << 4)
243 #define DCFG0_BKPOS_HADDR4             (1u << 4)
244 #define DCFG0_BKPOS_HADDR5             (2u << 4)
245 #define DCFG0_BKPOS_HADDR6             (3u << 4)
246 #define DCFG0_BKPOS_HADDR8             (4u << 4)
247 #define DCFG0_BKPOS_HADDR10             (5u << 4)
248 #define DCFG0_BKPOS_HADDR13             (6u << 4)
249 #define DCFG0_BKPOS_HADDR16             (7u << 4)
250 #define DCFG0_BKPOS_HADDR18             (8u << 4)
251 #define DCFG0_BKPOS_HADDR20             (9u << 4)
252 #define DCFG0_BKPOS_HADDR22             (10u << 4)
253 #define DCFG0_BKPOS_HADDR23             (11u << 4)
254 #define DCFG0_BKPOS_HADDR24             (12u << 4)
255 #define DCFG0_BKPOS_HADDR25             (13u << 4)
256 #define DCFG0_BKPOS_HADDR26             (14u << 4)
257 #define DCFG0_BKPOS_HADDR28             (15u << 4)
258
259 #define DCFG0_BKMODE_1                (0u << 8)
260 #define DCFG0_BKMODE_2                (1u << 8)
261 #define DCFG0_BKMODE_4                (2u << 8)
262 #define DCFG0_BKMODE_8                (3u << 8)
263
264 #define DCFG0_ROWMODE_11              (0u << 10)
265 #define DCFG0_ROWMODE_12              (1u << 10)
266 #define DCFG0_ROWMODE_13              (2u << 10)
267
268 #define DCFG0_COLMODE_8               (0u << 12)
269 #define DCFG0_COLMODE_9               (1u << 12)
270 #define DCFG0_COLMODE_10               (2u << 12)
271 #define DCFG0_COLMODE_11               (3u << 12)
272 #define DCFG0_COLMODE_12               (4u << 12)
273
274 #define DCFG0_DWIDTH_16               (0u << 15)
275 #define DCFG0_DWIDTH_32               (1u << 15)
276
277 #define DCFG0_BL_2                    (1u << 16)
278 #define DCFG0_BL_4                    (2u << 16)
279 #define DCFG0_BL_8                    (3u << 16)
280 #define DCFG0_BL_16                   (4u << 16)
281 #define DCFG0_BL_FULLPAGE             (7u << 16)
282
283 #define DCFG0_AUTOREF_ALLCS           (1u << 19)
284
285 #define DCFG0_RL_2                    (2u << 20)
286 #define DCFG0_RL_3                    (3u << 20)
287 #define DCFG0_RL_4                    (4u << 20)
288 #define DCFG0_RL_5                    (5u << 20)
289 #define DCFG0_RL_6                    (6u << 20)
290 #define DCFG0_RL_7                    (7u << 20)
291
292 #define DCFG0_T_RW_0                  (0u << 29)
293 #define DCFG0_T_RW_1                  (1u << 29)
294
295 #define DCFG0_ALTERNATIVE_EN          (1u << 30)
296 #define DCFG0_ROWHIT_EN               (1u << 31)
297 #define DCFG0_AUTOREF_EN             BIT_14
298
299 //define mode register domain..
300
301 #define MODE_REG_BL_1               (0)
302 #define MODE_REG_BL_2               (1)
303 #define MODE_REG_BL_4               (2)
304 #define MODE_REG_BL_8               (3)
305
306 #define MODE_REG_BT_SEQ               (0)
307 #define MODE_REG_BT_INT               (1)
308
309 #define MODE_REG_CL_1                 (1)
310 #define MODE_REG_CL_2                 (2)
311 #define MODE_REG_CL_3                 (3)
312
313 #define MODE_REG_OPMODE               (0)
314
315 #define MODE_REG_WB_PRORAM            (0)
316 #define MODE_REG_WB_SINGLE            (1)
317
318 //define extended mode register domain...
319 #define EX_MODE_REG_PASR_4_BANKS      (0)
320 #define EX_MODE_REG_PASR_2_BANKS      (1)
321 #define EX_MODE_REG_PASR_1_BANKS      (2)
322 #define EX_MODE_REG_PASR_HALF_BANK      (5)
323 #define EX_MODE_REG_PASR_QUART_BANK      (6)
324
325 #define EX_MODE_REG_DS_FULL           (0)
326 #define EX_MODE_REG_DS_HALF           (1)
327
328 #endif//end of file