summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/include/mach/esdctl-v4.h
blob: 2e6741e0d5d536591e6d41450dcbde27bdf93f06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
#ifndef __MACH_ESDCTL_V4_H
#define __MACH_ESDCTL_V4_H

#define ESDCTL_V4_ESDCTL0		0x00
#define ESDCTL_V4_ESDPDC		0x04
#define ESDCTL_V4_ESDOTC		0x08
#define ESDCTL_V4_ESDCFG0		0x0c
#define ESDCTL_V4_ESDCFG1		0x10
#define ESDCTL_V4_ESDCFG2		0x14
#define ESDCTL_V4_ESDMISC		0x18
#define ESDCTL_V4_ESDSCR		0x1c
#define ESDCTL_V4_ESDREF		0x20
#define ESDCTL_V4_ESDWCC		0x24
#define ESDCTL_V4_ESDRCC		0x28
#define ESDCTL_V4_ESDRWD		0x2c
#define ESDCTL_V4_ESDOR			0x30
#define ESDCTL_V4_ESDMRR		0x34
#define ESDCTL_V4_ESDCFG3_LP		0x38
#define ESDCTL_V4_ESDMR4		0x3c
#define ESDCTL_V4_ZQHWCTRL		0x40
#define ESDCTL_V4_ZQSWCTRL		0x44
#define ESDCTL_V4_WLGCR			0x48
#define ESDCTL_V4_WLDECTRL0		0x4c
#define ESDCTL_V4_WLDECTRL1		0x50
#define ESDCTL_V4_WLDLST		0x54
#define ESDCTL_V4_ODTCTRL		0x58
#define ESDCTL_V4_RDDQBY0DL		0x5c
#define ESDCTL_V4_RDDQBY1DL		0x60
#define ESDCTL_V4_RDDQBY2DL		0x64
#define ESDCTL_V4_RDDQBY3DL		0x68
#define ESDCTL_V4_WRDQBY0DL		0x6c
#define ESDCTL_V4_WRDQBY1DL		0x70
#define ESDCTL_V4_WRDQBY2DL		0x74
#define ESDCTL_V4_WRDQBY3DL		0x78
#define ESDCTL_V4_DGCTRL0		0x7c
#define ESDCTL_V4_DGCTRL1		0x80
#define ESDCTL_V4_DGDLST		0x84
#define ESDCTL_V4_RDDLCTL		0x88
#define ESDCTL_V4_RDDLST		0x8c
#define ESDCTL_V4_WRDLCTL		0x90
#define ESDCTL_V4_WRDLST		0x94
#define ESDCTL_V4_SDCTRL		0x98
#define ESDCTL_V4_ZQLP2CTL		0x9c
#define ESDCTL_V4_RDDLHWCTL		0xa0
#define ESDCTL_V4_WRDLHWCTL		0xa4
#define ESDCTL_V4_RDDLHWST0		0xa8
#define ESDCTL_V4_RDDLHWST1		0xac
#define ESDCTL_V4_WRDLHWST0		0xb0
#define ESDCTL_V4_WRDLHWST1		0xb4
#define ESDCTL_V4_WLHWERR		0xb8
#define ESDCTL_V4_DGHWST0		0xbc
#define ESDCTL_V4_DGHWST1		0xc0
#define ESDCTL_V4_DGHWST2		0xc4
#define ESDCTL_V4_DGHWST3		0xc8
#define ESDCTL_V4_PDCMPR1		0xcc
#define ESDCTL_V4_PDCMPR2		0xd0
#define ESDCTL_V4_SWDADR		0xd4
#define ESDCTL_V4_SWDRDR0		0xd8
#define ESDCTL_V4_SWDRDR1		0xdc
#define ESDCTL_V4_SWDRDR2		0xe0
#define ESDCTL_V4_SWDRDR3		0xe4
#define ESDCTL_V4_SWDRDR4		0xe8
#define ESDCTL_V4_SWDRDR5		0xec
#define ESDCTL_V4_SWDRDR6		0xf0
#define ESDCTL_V4_SWDRDR7		0xf4
#define ESDCTL_V4_MUR			0xf8
#define ESDCTL_V4_WRCADL		0xfc

#define ESDCTL_V4_ESDCTLx_SDE0				0x80000000
#define ESDCTL_V4_ESDCTLx_SDE1				0x40000000

#define ESDCTL_V4_ESDCTLx_ROW_MASK			0x07000000
#define ESDCTL_V4_ESDCTLx_ROW_11			0x00000000
#define ESDCTL_V4_ESDCTLx_ROW_12			0x01000000
#define ESDCTL_V4_ESDCTLx_ROW_13			0x02000000
#define ESDCTL_V4_ESDCTLx_ROW_14			0x03000000
#define ESDCTL_V4_ESDCTLx_ROW_15			0x04000000
#define ESDCTL_V4_ESDCTLx_ROW_16			0x05000000

#define ESDCTL_V4_ESDCTLx_COL_MASK			0x00700000
#define ESDCTL_V4_ESDCTLx_COL_9				0x00000000
#define ESDCTL_V4_ESDCTLx_COL_10			0x00100000
#define ESDCTL_V4_ESDCTLx_COL_11			0x00200000
#define ESDCTL_V4_ESDCTLx_COL_8				0x00300000
#define ESDCTL_V4_ESDCTLx_COL_12			0x00400000

#define ESDCTL_V4_ESDCTLx_BL_MASK			0x00080000
#define ESDCTL_V4_ESDCTLx_BL_4_RES			0x00000000
#define ESDCTL_V4_ESDCTLx_BL_8_8			0x00080000

#define ESDCTL_V4_ESDCTLx_DSIZ_MASK			0x00010000
#define ESDCTL_V4_ESDCTLx_DSIZ_16B_LOW			0x00000000
#define ESDCTL_V4_ESDCTLx_DSIZ_32B			0x00010000

#define ESDCTL_V4_ESDMISC_CS0_RDY			0x80000000
#define ESDCTL_V4_ESDMISC_CS1_RDY			0x40000000
#define ESDCTL_V4_ESDMISC_ONE_CS			0x00100000
#define ESDCTL_V4_ESDMISC_ADDR_MIRROR			0x00080000
#define ESDCTL_V4_ESDMISC_LHD				0x00040000
#define ESDCTL_V4_ESDMISC_WALAT_SHIFT			16
#define ESDCTL_V4_ESDMISC_WALAT_MASK			(0x3 << ESDCTL_V4_ESDMISC_WALAT_SHIFT)
#define ESDCTL_V4_ESDMISC_WALAT_0			(0x0 << ESDCTL_V4_ESDMISC_WALAT_SHIFT)
#define ESDCTL_V4_ESDMISC_WALAT_1			(0x1 << ESDCTL_V4_ESDMISC_WALAT_SHIFT)
#define ESDCTL_V4_ESDMISC_WALAT_2			(0x2 << ESDCTL_V4_ESDMISC_WALAT_SHIFT)
#define ESDCTL_V4_ESDMISC_WALAT_3			(0x3 << ESDCTL_V4_ESDMISC_WALAT_SHIFT)
#define ESDCTL_V4_ESDMISC_BI_ON				0x00001000
#define ESDCTL_V4_ESDMISC_MIF3_MODE_MASK		0x00000600
#define ESDCTL_V4_ESDMISC_MIF3_MODE_DIS			0x00000000
#define ESDCTL_V4_ESDMISC_MIF3_MODE_EF			0x00000200
#define ESDCTL_V4_ESDMISC_MIF3_MODE_EFA			0x00000400
#define ESDCTL_V4_ESDMISC_MIF3_MODE_EFAM		0x00000600
#define ESDCTL_V4_ESDMISC_RALAT_SHIFT			6
#define ESDCTL_V4_ESDMISC_RALAT_MASK			(0x7 << ESDCTL_V4_ESDMISC_RALAT_SHIFT)
#define ESDCTL_V4_ESDMISC_RALAT_0			(0x0 << ESDCTL_V4_ESDMISC_RALAT_SHIFT)
#define ESDCTL_V4_ESDMISC_RALAT_1			(0x1 << ESDCTL_V4_ESDMISC_RALAT_SHIFT)
#define ESDCTL_V4_ESDMISC_RALAT_2			(0x2 << ESDCTL_V4_ESDMISC_RALAT_SHIFT)
#define ESDCTL_V4_ESDMISC_RALAT_3			(0x3 << ESDCTL_V4_ESDMISC_RALAT_SHIFT)
#define ESDCTL_V4_ESDMISC_RALAT_4			(0x4 << ESDCTL_V4_ESDMISC_RALAT_SHIFT)
#define ESDCTL_V4_ESDMISC_RALAT_5			(0x5 << ESDCTL_V4_ESDMISC_RALAT_SHIFT)
#define ESDCTL_V4_ESDMISC_RALAT_6			(0x6 << ESDCTL_V4_ESDMISC_RALAT_SHIFT)
#define ESDCTL_V4_ESDMISC_RALAT_7			(0x7 << ESDCTL_V4_ESDMISC_RALAT_SHIFT)

#define ESDCTL_V4_ESDMISC_DDR_MASK			0x00000818
#define ESDCTL_V4_ESDMISC_DDR_DDR3			0x00000000
#define ESDCTL_V4_ESDMISC_DDR_LPDDR2_S4			0x00000008
#define ESDCTL_V4_ESDMISC_DDR_LPDDR2_S2			0x00000808
#define ESDCTL_V4_ESDMISC_DDR_DDR2			0x00000010

#define ESDCTL_V4_ESDMISC_BANKS_MASK			0x00000020
#define ESDCTL_V4_ESDMISC_BANKS_4			0x00000020
#define ESDCTL_V4_ESDMISC_BANKS_8			0x00000000

#define ESDCTL_V4_ESDMISC_RST				0x00000002


#define ESDCTL_V4_ESDRDDLCTL_RD_DL_ABS_OFFSET3_SHIFT	24
#define ESDCTL_V4_ESDRDDLCTL_RD_DL_ABS_OFFSET2_SHIFT	16
#define ESDCTL_V4_ESDRDDLCTL_RD_DL_ABS_OFFSET1_SHIFT	8
#define ESDCTL_V4_ESDRDDLCTL_RD_DL_ABS_OFFSET0_SHIFT	0
#define ESDCTL_V4_ESDRDDLCTL_RD_DL_ABS_OFFSET_MASK	0xff

#define ESDCTL_V4_ESDRDDLCTL_WR_DL_ABS_OFFSET3_SHIFT	24
#define ESDCTL_V4_ESDRDDLCTL_WR_DL_ABS_OFFSET2_SHIFT	16
#define ESDCTL_V4_ESDRDDLCTL_WR_DL_ABS_OFFSET1_SHIFT	8
#define ESDCTL_V4_ESDRDDLCTL_WR_DL_ABS_OFFSET0_SHIFT	0
#define ESDCTL_V4_ESDRDDLCTL_WR_DL_ABS_OFFSET_MASK	0xff


#define ESDCTL_V4_ESDDGCTRL0_RST_RD_FIFO		0x80000000
#define ESDCTL_V4_ESDDGCTRL0_DG_CMP_CYC			0x40000000
#define ESDCTL_V4_ESDDGCTRL0_DG_DIS			0x20000000
#define ESDCTL_V4_ESDDGCTRL0_HW_DG_EN			0x10000000
#define ESDCTL_V4_ESDDGCTRL0_DG_HC_DEL1_MASK		0x0f000000
#define ESDCTL_V4_ESDDGCTRL0_DG_HC_DEL1_SHIFT		24
#define ESDCTL_V4_ESDDGCTRL0_DG_EXT_UP			0x00800000
#define ESDCTL_V4_ESDDGCTRL0_DG_DL_ABS_OFFSET1_MASK	0x007f0000
#define ESDCTL_V4_ESDDGCTRL0_DG_DL_ABS_OFFSET1_SHIFT	16
#define ESDCTL_V4_ESDDGCTRL0_HW_DG_ERR			0x00001000
#define ESDCTL_V4_ESDDGCTRL0_DG_HC_DEL0_MASK		0x00000f00
#define ESDCTL_V4_ESDDGCTRL0_DG_HC_DEL0_SHIFT		8
#define ESDCTL_V4_ESDDGCTRL0_DG_DL_ABS_OFFSET0_MASK	0x0000007f
#define ESDCTL_V4_ESDDGCTRL0_DG_DL_ABS_OFFSET0_SHIFT	0

#define ESDCTL_V4_ESDDGCTRL1_DG_HC_DEL3_MASK		0x0f000000
#define ESDCTL_V4_ESDDGCTRL1_DG_HC_DEL3_SHIFT		24
#define ESDCTL_V4_ESDDGCTRL1_DG_DL_ABS_OFFSET3_MASK	0x007f0000
#define ESDCTL_V4_ESDDGCTRL1_DG_DL_ABS_OFFSET3_SHIFT	16
#define ESDCTL_V4_ESDDGCTRL1_DG_HC_DEL2_MASK		0x00000f00
#define ESDCTL_V4_ESDDGCTRL1_DG_HC_DEL2_SHIFT		8
#define ESDCTL_V4_ESDDGCTRL1_DG_DL_ABS_OFFSET2_MASK	0x0000007f
#define ESDCTL_V4_ESDDGCTRL1_DG_DL_ABS_OFFSET2_SHIFT	0


#define ESDCTL_V4_ESDCFG0_tRFC_SHIFT			24
#define ESDCTL_V4_ESDCFG0_tRFC_MASK			(0xff << ESDCTL_V4_ESDCFG0_tRFC_SHIFT)
#define ESDCTL_V4_ESDCFG0_tXS_SHIFT			16
#define ESDCTL_V4_ESDCFG0_tXS_MASK			(0xff << ESDCTL_V4_ESDCFG0_tXS_SHIFT)
#define ESDCTL_V4_ESDCFG0_tXP_SHIFT			13
#define ESDCTL_V4_ESDCFG0_tXP_MASK			(0x7 << ESDCTL_V4_ESDCFG0_tXP_SHIFT)
#define ESDCTL_V4_ESDCFG0_tXPDLL_SHIFT			9
#define ESDCTL_V4_ESDCFG0_tXPDLL_MASK			(0xf << ESDCTL_V4_ESDCFG0_tXPDLL_SHIFT)
#define ESDCTL_V4_ESDCFG0_tFAW_SHIFT			4
#define ESDCTL_V4_ESDCFG0_tFAW_MASK			(0x1f << ESDCTL_V4_ESDCFG0_tFAW_SHIFT)
#define ESDCTL_V4_ESDCFG0_tCL_SHIFT			0
#define ESDCTL_V4_ESDCFG0_tCL_MASK			(0xf << ESDCTL_V4_ESDCFG0_tCL_SHIFT)

#define ESDCTL_V4_ESDCFG1_tRCD_SHIFT			29
#define ESDCTL_V4_ESDCFG1_tRCD_MASK			(0x7 << ESDCTL_V4_ESDCFG1_tRCD_SHIFT)
#define ESDCTL_V4_ESDCFG1_tRP_SHIFT			26
#define ESDCTL_V4_ESDCFG1_tRP_MASK			(0x7 << ESDCTL_V4_ESDCFG1_tRP_SHIFT)
#define ESDCTL_V4_ESDCFG1_tRC_SHIFT			21
#define ESDCTL_V4_ESDCFG1_tRC_MASK			(0x1f << ESDCTL_V4_ESDCFG1_tRC_SHIFT)
#define ESDCTL_V4_ESDCFG1_tRAS_SHIFT			16
#define ESDCTL_V4_ESDCFG1_tRAS_MASK			(0x1f << ESDCTL_V4_ESDCFG1_tRAS_SHIFT)
#define ESDCTL_V4_ESDCFG1_tRPA_SHIFT			15
#define ESDCTL_V4_ESDCFG1_tRPA_MASK			(0x1 << ESDCTL_V4_ESDCFG1_tRPA_SHIFT)
#define ESDCTL_V4_ESDCFG1_tWR_SHIFT			9
#define ESDCTL_V4_ESDCFG1_tWR_MASK			(0x7 << ESDCTL_V4_ESDCFG1_tWR_SHIFT)
#define ESDCTL_V4_ESDCFG1_tMRD_SHIFT			5
#define ESDCTL_V4_ESDCFG1_tMRD_MASK			(0xf << ESDCTL_V4_ESDCFG1_tMRD_SHIFT)
#define ESDCTL_V4_ESDCFG1_tCWL_SHIFT			0
#define ESDCTL_V4_ESDCFG1_tCWL_MASK			(0x7 << ESDCTL_V4_ESDCFG1_tCWL_SHIFT)

#define ESDCTL_V4_ESDCFG2_tDLLK_SHIFT			16
#define ESDCTL_V4_ESDCFG2_tDLLK_MASK			(0x1ff << ESDCTL_V4_ESDCFG2_tDLLK_SHIFT)
#define ESDCTL_V4_ESDCFG2_tRTP_SHIFT			6
#define ESDCTL_V4_ESDCFG2_tRTP_MASK			(0x7 << ESDCTL_V4_ESDCFG2_tRTP_SHIFT)
#define ESDCTL_V4_ESDCFG2_tWTR_SHIFT			3
#define ESDCTL_V4_ESDCFG2_tWTR_MASK			(0x7 << ESDCTL_V4_ESDCFG2_tWTR_SHIFT)
#define ESDCTL_V4_ESDCFG2_tRRD_SHIFT			0
#define ESDCTL_V4_ESDCFG2_tRRD_MASK			(0x7 << ESDCTL_V4_ESDCFG2_tRRD_SHIFT)

#define ESDCTL_V4_ESDRWD_tDAI_SHIFT			16
#define ESDCTL_V4_ESDRWD_tDAI_MASK			(0x1fff << ESDCTL_V4_ESDRWD_tDAI_SHIFT)
#define ESDCTL_V4_ESDRWD_RTW_SAME_SHIFT			12
#define ESDCTL_V4_ESDRWD_RTW_SAME_MASK			(0x7 << ESDCTL_V4_ESDRWD_RTW_SAME_SHIFT)
#define ESDCTL_V4_ESDRWD_WTR_DIFF_SHIFT			9
#define ESDCTL_V4_ESDRWD_WTR_DIFF_MASK			(0x7 << ESDCTL_V4_ESDRWD_WTR_DIFF_SHIFT)
#define ESDCTL_V4_ESDRWD_WTW_DIFF_SHIFT			6
#define ESDCTL_V4_ESDRWD_WTW_DIFF_MASK			(0x7 << ESDCTL_V4_ESDRWD_WTW_DIFF_SHIFT)
#define ESDCTL_V4_ESDRWD_RTW_DIFF_SHIFT			3
#define ESDCTL_V4_ESDRWD_RTW_DIFF_MASK			(0x7 << ESDCTL_V4_ESDRWD_RTW_DIFF_SHIFT)
#define ESDCTL_V4_ESDRWD_RTR_DIFF_SHIFT			0
#define ESDCTL_V4_ESDRWD_RTR_DIFF_MASK			(0x7 << ESDCTL_V4_ESDRWD_RTR_DIFF_SHIFT)

#define ESDCTL_V4_ESDOR_tXPR_SHIFT			16
#define ESDCTL_V4_ESDOR_tXPR_MASK			(0xff << ESDCTL_V4_ESDOR_tXPR_SHIFT)
#define ESDCTL_V4_ESDOR_SDE_to_RST_SHIFT		8
#define ESDCTL_V4_ESDOR_SDE_to_RST_MASK			(0x3f << ESDCTL_V4_ESDOR_SDE_to_RST_SHIFT)
#define ESDCTL_V4_ESDOR_RST_to_CKE_SHIFT		0
#define ESDCTL_V4_ESDOR_RST_to_CKE_MASK			(0x3f << ESDCTL_V4_ESDOR_RST_to_CKE_SHIFT)

#define ESDCTL_V4_ESDOTC_tAOFPD_SHIFT			27
#define ESDCTL_V4_ESDOTC_tAOFPD_MASK			(0x7 << ESDCTL_V4_ESDOTC_tAOFPD_SHIFT)
#define ESDCTL_V4_ESDOTC_tAONPD_SHIFT			24
#define ESDCTL_V4_ESDOTC_tAONPD_MASK			(0x7 << ESDCTL_V4_ESDOTC_tAONPD_SHIFT)
#define ESDCTL_V4_ESDOTC_tANPD_SHIFT			20
#define ESDCTL_V4_ESDOTC_tANPD_MASK			(0xf << ESDCTL_V4_ESDOTC_tANPD_SHIFT)
#define ESDCTL_V4_ESDOTC_tAXPD_SHIFT			16
#define ESDCTL_V4_ESDOTC_tAXPD_MASK			(0xf << ESDCTL_V4_ESDOTC_tAXPD_SHIFT)
#define ESDCTL_V4_ESDOTC_tODTLon_SHIFT			12
#define ESDCTL_V4_ESDOTC_tODTLon_MASK			(0x7 << ESDCTL_V4_ESDOTC_tODTLon_SHIFT)
#define ESDCTL_V4_ESDOTC_tODT_idle_off_SHIFT		4
#define ESDCTL_V4_ESDOTC_tODT_idle_off_MASK		(0x1f << ESDCTL_V4_ESDOTC_tODT_idle_off_SHIFT)

#define ESDCTL_V4_ESDPDC_PRCT1_SHIFT			28
#define ESDCTL_V4_ESDPDC_PRCT1_MASK			(0x7 << ESDCTL_V4_ESDPDC_PRCT1_SHIFT)
#define ESDCTL_V4_ESDPDC_PRCT0_SHIFT			24
#define ESDCTL_V4_ESDPDC_PRCT0_MASK			(0x7 << ESDCTL_V4_ESDPDC_PRCT0_SHIFT)
#define ESDCTL_V4_ESDPDC_tCKE_SHIFT			16
#define ESDCTL_V4_ESDPDC_tCKE_MASK			(0x7 << ESDCTL_V4_ESDPDC_tCKE_SHIFT)
#define ESDCTL_V4_ESDPDC_PWDT1_SHIFT			12
#define ESDCTL_V4_ESDPDC_PWDT1_MASK			(0xf << ESDCTL_V4_ESDPDC_PWDT1_SHIFT)
#define ESDCTL_V4_ESDPDC_PWDT0_SHIFT			8
#define ESDCTL_V4_ESDPDC_PWDT0_MASK			(0xf << ESDCTL_V4_ESDPDC_PWDT0_SHIFT)
#define ESDCTL_V4_ESDPDC_SLOW_PD			0x00000080
#define ESDCTL_V4_ESDPDC_BOTH_CS_PD			0x00000040
#define ESDCTL_V4_ESDPDC_tCKSRX_SHIFT			3
#define ESDCTL_V4_ESDPDC_tCKSRX_MASK			(0x7 << ESDCTL_V4_ESDPDC_tCKSRX_SHIFT)
#define ESDCTL_V4_ESDPDC_tCKSRE_SHIFT			0
#define ESDCTL_V4_ESDPDC_tCKSRE_MASK			(0x7 << ESDCTL_V4_ESDPDC_tCKSRE_SHIFT)

#define ESDCTL_V4_ESDPDC_PRCT_DISABLE			0x0
#define ESDCTL_V4_ESDPDC_PRCT_2				0x1
#define ESDCTL_V4_ESDPDC_PRCT_4				0x2
#define ESDCTL_V4_ESDPDC_PRCT_8				0x3
#define ESDCTL_V4_ESDPDC_PRCT_16			0x4
#define ESDCTL_V4_ESDPDC_PRCT_32			0x5
#define ESDCTL_V4_ESDPDC_PRCT_64			0x6
#define ESDCTL_V4_ESDPDC_PRCT_128			0x7

#define ESDCTL_V4_ESDPDC_PWDT_DISABLE			0x0
#define ESDCTL_V4_ESDPDC_PWDT_16			0x1
#define ESDCTL_V4_ESDPDC_PWDT_32			0x2
#define ESDCTL_V4_ESDPDC_PWDT_64			0x3
#define ESDCTL_V4_ESDPDC_PWDT_128			0x4
#define ESDCTL_V4_ESDPDC_PWDT_256			0x5
#define ESDCTL_V4_ESDPDC_PWDT_512			0x6
#define ESDCTL_V4_ESDPDC_PWDT_1024			0x7
#define ESDCTL_V4_ESDPDC_PWDT_2048			0x8
#define ESDCTL_V4_ESDPDC_PWDT_4096			0x9
#define ESDCTL_V4_ESDPDC_PWDT_8192			0xa
#define ESDCTL_V4_ESDPDC_PWDT_16384			0xb
#define ESDCTL_V4_ESDPDC_PWDT_32768			0xc

#define ESDCTL_V4_ESDREF_REF_CNT_SHIFT			16
#define ESDCTL_V4_ESDREF_REF_CNT_MASK			(0xffff << ESDCTL_V4_ESDREF_REF_CNT_SHIFT)
#define ESDCTL_V4_ESDREF_REF_SEL_MASK			0x0000c000
#define ESDCTL_V4_ESDREF_REF_SEL_64K			0x00000000
#define ESDCTL_V4_ESDREF_REF_SEL_32K			0x00001000
#define ESDCTL_V4_ESDREF_REF_SEL_REFCNT			0x00002000
#define ESDCTL_V4_ESDREF_REFR_SHIFT			11
#define ESDCTL_V4_ESDREF_REFR_MASK			(0x7 << ESDCTL_V4_ESDREF_REFR_SHIFT)
#define ESDCTL_V4_ESDREF_START_REF			0x00000001

#define ESDCTL_V4_ESDZQHWC_ZQ_PARA_EN			0x04000000
#define ESDCTL_V4_ESDZQHWC_TZQ_CS_SHIFT			23
#define ESDCTL_V4_ESDZQHWC_TZQ_CS_MASK			(0x7 << ESDCTL_V4_ESDZQHWC_TZQ_CS_SHIFT)
#define ESDCTL_V4_ESDZQHWC_TZQ_OPER_SHIFT		20
#define ESDCTL_V4_ESDZQHWC_TZQ_OPER_MASK		(0x7 << ESDCTL_V4_ESDZQHWC_TZQ_OPER_SHIFT)
#define ESDCTL_V4_ESDZQHWC_TZQ_INIT_SHIFT		17
#define ESDCTL_V4_ESDZQHWC_TZQ_INIT_MASK		(0x7 << ESDCTL_V4_ESDZQHWC_TZQ_INIT_SHIFT)
#define ESDCTL_V4_ESDZQHWC_ZQ_HW_FOR			0x00010000
#define ESDCTL_V4_ESDZQHWC_ZQ_HW_PD_RES_SHIFT		11
#define ESDCTL_V4_ESDZQHWC_ZQ_HW_PD_RES_MASK		(0x1f << ESDCTL_V4_ESDZQHWC_ZQ_HW_PD_RES_SHIFT)
#define ESDCTL_V4_ESDZQHWC_ZQ_HW_PU_RES_SHIFT		6
#define ESDCTL_V4_ESDZQHWC_ZQ_HW_PU_RES_MASK		(0x1f << ESDCTL_V4_ESDZQHWC_ZQ_HW_PU_RES_SHIFT)
#define ESDCTL_V4_ESDZQHWC_ZQ_HW_PER_SHIFT		2
#define ESDCTL_V4_ESDZQHWC_ZQ_HW_PER_MASK		(0xf << ESDCTL_V4_ESDZQHWC_ZQ_HW_PER_SHIFT)
#define ESDCTL_V4_ESDZQHWC_ZQ_MODE_SHIFT		0
#define ESDCTL_V4_ESDZQHWC_ZQ_MODE_MASK			(0x3 << ESDCTL_V4_ESDZQHWC_ZQ_MODE_SHIFT)

#define ESDCTL_V4_ESDZQHWC_32CYC			0x0
#define ESDCTL_V4_ESDZQHWC_64CYC			0x1
#define ESDCTL_V4_ESDZQHWC_128CYC			0x2
#define ESDCTL_V4_ESDZQHWC_256CYC			0x3
#define ESDCTL_V4_ESDZQHWC_512CYC			0x4
#define ESDCTL_V4_ESDZQHWC_1024CYC			0x5

#define ESDCTL_V4_ESDZQHWC_ZQ_MODE_NO_CAL		(0x0 << ESDCTL_V4_ESDZQHWC_ZQ_MODE_SHIFT)
#define ESDCTL_V4_ESDZQHWC_ZQ_MODE_BOTH_EXIT		(0x1 << ESDCTL_V4_ESDZQHWC_ZQ_MODE_SHIFT)
#define ESDCTL_V4_ESDZQHWC_ZQ_MODE_EXTERNAL_PER		(0x2 << ESDCTL_V4_ESDZQHWC_ZQ_MODE_SHIFT)
#define ESDCTL_V4_ESDZQHWC_ZQ_MODE_BOTH_PER		(0x3 << ESDCTL_V4_ESDZQHWC_ZQ_MODE_SHIFT)

#define ESDCTL_V4_ESDODTC_ODT3_INT_RES_SHIFT		16
#define ESDCTL_V4_ESDODTC_ODT3_INT_RES_MASK		(0x7 << ESDCTL_V4_ESDODTC_ODT3_INT_RES_SHIFT)
#define ESDCTL_V4_ESDODTC_ODT2_INT_RES_SHIFT		12
#define ESDCTL_V4_ESDODTC_ODT2_INT_RES_MASK		(0x7 << ESDCTL_V4_ESDODTC_ODT2_INT_RES_SHIFT)
#define ESDCTL_V4_ESDODTC_ODT1_INT_RES_SHIFT		8
#define ESDCTL_V4_ESDODTC_ODT1_INT_RES_MASK		(0x7 << ESDCTL_V4_ESDODTC_ODT1_INT_RES_SHIFT)
#define ESDCTL_V4_ESDODTC_ODT0_INT_RES_SHIFT		4
#define ESDCTL_V4_ESDODTC_ODT0_INT_RES_MASK		(0x7 << ESDCTL_V4_ESDODTC_ODT0_INT_RES_SHIFT)
#define ESDCTL_V4_ESDODTC_ODT_RD_ACT_EN			0x00000008
#define ESDCTL_V4_ESDODTC_ODT_RD_PAS_EN			0x00000004
#define ESDCTL_V4_ESDODTC_ODT_WR_ACT_EN			0x00000002
#define ESDCTL_V4_ESDODTC_ODT_WR_PAS_EN			0x00000001

#define ESDCTL_V4_ESDODTC_RTT_DISABLE			0x0
#define ESDCTL_V4_ESDODTC_RTT_60			0x1
#define ESDCTL_V4_ESDODTC_RTT_120			0x2
#define ESDCTL_V4_ESDODTC_RTT_40			0x3
#define ESDCTL_V4_ESDODTC_RTT_20			0x4
#define ESDCTL_V4_ESDODTC_RTT_30			0x5

#define ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT			16
#define ESDCTL_V4_ESDSCR_CMD_ADDR_MASK			(0xffff << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_ESDSCR_CON_REQ			0x00008000
#define ESDCTL_V4_ESDSCR_CON_ACK			0x00004000
#define ESDCTL_V4_ESDSCR_MRR_DATA_VALID			0x00000400
#define ESDCTL_V4_ESDSCR_WL_EN				0x00000200
#define ESDCTL_V4_ESDSCR_DLL_RST1			0x00000100
#define ESDCTL_V4_ESDSCR_DLL_RST0			0x00000080
#define ESDCTL_V4_ESDSCR_CMD_SHIFT			4
#define ESDCTL_V4_ESDSCR_CMD_MASK			(0x7 << ESDCTL_V4_ESDSCR_CMD_SHIFT)
#define ESDCTL_V4_ESDSCR_CMD_NOP			(0x0 << ESDCTL_V4_ESDSCR_CMD_SHIFT)
#define ESDCTL_V4_ESDSCR_CMD_PRE_ALL			(0x1 << ESDCTL_V4_ESDSCR_CMD_SHIFT)
#define ESDCTL_V4_ESDSCR_CMD_AREFRESH			(0x2 << ESDCTL_V4_ESDSCR_CMD_SHIFT)
#define ESDCTL_V4_ESDSCR_CMD_LMR			(0x3 << ESDCTL_V4_ESDSCR_CMD_SHIFT)
#define ESDCTL_V4_ESDSCR_CMD_ZQCALIB_OLD		(0x4 << ESDCTL_V4_ESDSCR_CMD_SHIFT)
#define ESDCTL_V4_ESDSCR_CMD_PRE_ALL_OPEN		(0x5 << ESDCTL_V4_ESDSCR_CMD_SHIFT)
#define ESDCTL_V4_ESDSCR_CMD_MRR			(0x6 << ESDCTL_V4_ESDSCR_CMD_SHIFT)
#define ESDCTL_V4_ESDSCR_CMD_CS				0x00000008
#define ESDCTL_V4_ESDSCR_CMD_CS0			0x00000000
#define ESDCTL_V4_ESDSCR_CMD_CS1			0x00000008
#define ESDCTL_V4_ESDSCR_CMD_BA_SHIFT			0
#define ESDCTL_V4_ESDSCR_CMD_BA_MASK			(0x7 << ESDCTL_V4_ESDSCR_CMD_BA_SHIFT)

#define ESDCTL_V4_PDCMPR2_PHY_CA_DL_SHIFT		24
#define ESDCTL_V4_PDCMPR2_PHY_CA_DL_MASK		(0x7f << ESDCTL_V4_PDCMPR2_PHY_CA_DL_SHIFT)
#define ESDCTL_V4_PDCMPR2_CA_DL_ABS_SHIFT		16
#define ESDCTL_V4_PDCMPR2_CA_DL_ABS_MASK		(0x7f << ESDCTL_V4_PDCMPR2_CA_DL_ABS_SHIFT)
#define ESDCTL_V4_PDCMPR2_RLPAT				0x4
#define ESDCTL_V4_PDCMPR2_RLPAT_0			0x0
#define ESDCTL_V4_PDCMPR2_RLPAT_1			0x4
#define ESDCTL_V4_PDCMPR2_MPR_FULL_CMP			0x2
#define ESDCTL_V4_PDCMPR2_MPR_CMP			0x1

#define ESDCTL_V4_WLGCR_WL_HW_ERR3			(1 << 11)
#define ESDCTL_V4_WLGCR_WL_HW_ERR2			(1 << 10)
#define ESDCTL_V4_WLGCR_WL_HW_ERR1			(1 << 9)
#define ESDCTL_V4_WLGCR_WL_HW_ERR0			(1 << 8)
#define ESDCTL_V4_WLGCR_WL_SW_ERR3			(1 << 7)
#define ESDCTL_V4_WLGCR_WL_SW_ERR2			(1 << 6)
#define ESDCTL_V4_WLGCR_WL_SW_ERR1			(1 << 5)
#define ESDCTL_V4_WLGCR_WL_SW_ERR0			(1 << 4)
#define ESDCTL_V4_WLGCR_SW_WL_CNT_EN			(1 << 2)
#define ESDCTL_V4_WLGCR_SW_WL_EN			(1 << 1)
#define ESDCTL_V4_WLGCR_HW_WL_EN			(1 << 1)

#define ESDCTL_V4_RDDLHWCTL_HW_RDL_CMP_CYC		(1 << 5)
#define ESDCTL_V4_RDDLHWCTL_HW_RDL_EN			(1 << 4)
#define ESDCTL_V4_RDDLHWCTL_HW_RDL_ERR3			(1 << 3)
#define ESDCTL_V4_RDDLHWCTL_HW_RDL_ERR2			(1 << 2)
#define ESDCTL_V4_RDDLHWCTL_HW_RDL_ERR1			(1 << 1)
#define ESDCTL_V4_RDDLHWCTL_HW_RDL_ERR0			(1 << 0)

#define ESDCTL_V4_WRDLHWCTL_HW_WDL_CMP_CYC		(1 << 5)
#define ESDCTL_V4_WRDLHWCTL_HW_WDL_EN			(1 << 4)
#define ESDCTL_V4_WRDLHWCTL_HW_WDL_ERR3			(1 << 3)
#define ESDCTL_V4_WRDLHWCTL_HW_WDL_ERR2			(1 << 2)
#define ESDCTL_V4_WRDLHWCTL_HW_WDL_ERR1			(1 << 1)
#define ESDCTL_V4_WRDLHWCTL_HW_WDL_ERR0			(1 << 0)

#define ESDCTL_V4_DDR3_REG_MR0				(0x0 << ESDCTL_V4_ESDSCR_CMD_BA_SHIFT)
#define ESDCTL_V4_DDR3_REG_MR1				(0x1 << ESDCTL_V4_ESDSCR_CMD_BA_SHIFT)
#define ESDCTL_V4_DDR3_REG_MR2				(0x2 << ESDCTL_V4_ESDSCR_CMD_BA_SHIFT)
#define ESDCTL_V4_DDR3_REG_MR3				(0x3 << ESDCTL_V4_ESDSCR_CMD_BA_SHIFT)

#define ESDCTL_V4_DDR3_MR0_PPD				(0x1000 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_PPD_SLOW			(0x0000 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_PPD_FAST			(0x1000 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_WR_SHIFT			(9 + ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_WR_MASK			(0x7 << ESDCTL_V4_DDR3_MR0_WR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_WR_16			(0x0 << ESDCTL_V4_DDR3_MR0_WR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_WR_5				(0x1 << ESDCTL_V4_DDR3_MR0_WR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_WR_6				(0x2 << ESDCTL_V4_DDR3_MR0_WR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_WR_7				(0x3 << ESDCTL_V4_DDR3_MR0_WR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_WR_8				(0x4 << ESDCTL_V4_DDR3_MR0_WR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_WR_10			(0x5 << ESDCTL_V4_DDR3_MR0_WR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_WR_12			(0x6 << ESDCTL_V4_DDR3_MR0_WR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_WR_14			(0x7 << ESDCTL_V4_DDR3_MR0_WR_SHIFT)
#define ESDCTL_V4_DDR3_DLL_RESET			(0x0100 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_TM				(0x0080 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_TM_NORMAL			(0x0000 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_TM_TEST				(0x0080 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_CL_SHIFT			(2 + ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_CL_MASK			(0x74 << ESDCTL_V4_DDR3_MR0_CL_SHIFT)
#define ESDCTL_V4_DDR3_MR0_CL_5				(0x10 << ESDCTL_V4_DDR3_MR0_CL_SHIFT)
#define ESDCTL_V4_DDR3_MR0_CL_6				(0x20 << ESDCTL_V4_DDR3_MR0_CL_SHIFT)
#define ESDCTL_V4_DDR3_MR0_CL_7				(0x30 << ESDCTL_V4_DDR3_MR0_CL_SHIFT)
#define ESDCTL_V4_DDR3_MR0_CL_8				(0x40 << ESDCTL_V4_DDR3_MR0_CL_SHIFT)
#define ESDCTL_V4_DDR3_MR0_CL_9				(0x50 << ESDCTL_V4_DDR3_MR0_CL_SHIFT)
#define ESDCTL_V4_DDR3_MR0_CL_10			(0x60 << ESDCTL_V4_DDR3_MR0_CL_SHIFT)
#define ESDCTL_V4_DDR3_MR0_CL_11			(0x70 << ESDCTL_V4_DDR3_MR0_CL_SHIFT)
#define ESDCTL_V4_DDR3_MR0_CL_12			(0x04 << ESDCTL_V4_DDR3_MR0_CL_SHIFT)
#define ESDCTL_V4_DDR3_MR0_CL_13			(0x14 << ESDCTL_V4_DDR3_MR0_CL_SHIFT)
#define ESDCTL_V4_DDR3_MR0_CL_14			(0x24 << ESDCTL_V4_DDR3_MR0_CL_SHIFT)
#define ESDCTL_V4_DDR3_MR0_CL_15			(0x34 << ESDCTL_V4_DDR3_MR0_CL_SHIFT)
#define ESDCTL_V4_DDR3_MR0_CL_16			(0x44 << ESDCTL_V4_DDR3_MR0_CL_SHIFT)
#define ESDCTL_V4_DDR3_MR0_RBT				(0x0008 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_RBT_NIBBLE			(0x0000 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_RBT_INTERL			(0x0008 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_BL_SHIFT			(0 + ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR0_BL_MASK			(0x3 << ESDCTL_V4_DDR3_MR0_BL_SHIFT)
#define ESDCTL_V4_DDR3_MR0_BL_FIXED8			(0x0 << ESDCTL_V4_DDR3_MR0_BL_SHIFT)
#define ESDCTL_V4_DDR3_MR0_BL_DYNAMIC			(0x1 << ESDCTL_V4_DDR3_MR0_BL_SHIFT)
#define ESDCTL_V4_DDR3_MR0_BL_FIXED4			(0x2 << ESDCTL_V4_DDR3_MR0_BL_SHIFT)

#define ESDCTL_V4_DDR3_MR1_QOFF				(0x1000 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR1_TDQS				(0x0800 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR1_WL				(0x0080 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR1_AL_SHIFT			(3 + ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR1_AL_MASK			(0x3 << ESDCTL_V4_DDR3_MR1_AL_SHIFT)
#define ESDCTL_V4_DDR3_MR1_AL_DISABLE			(0x0 << ESDCTL_V4_DDR3_MR1_AL_SHIFT)
#define ESDCTL_V4_DDR3_MR1_AL_CL1			(0x1 << ESDCTL_V4_DDR3_MR1_AL_SHIFT)
#define ESDCTL_V4_DDR3_MR1_AL_CL2			(0x2 << ESDCTL_V4_DDR3_MR1_AL_SHIFT)
#define ESDCTL_V4_DDR3_MR1_DLL_DISABLE			(0x0001 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR1_RTTN_MASK			(0x0244 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR1_RTTN_DIS			(0x0000 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR1_RTTN_RZQ4			(0x0004 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR1_RTTN_RZQ2			(0x0040 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR1_RTTN_RZQ6			(0x0044 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR1_RTTN_RZQ12			(0x0200 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR1_RTTN_RZQ8			(0x0204 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR1_ODIC_MASK			(0x0022 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR1_ODIC_RZQ6			(0x0000 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR1_ODIC_RZQ7			(0x0002 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)

#define ESDCTL_V4_DDR3_MR2_RTTWR_SHIFT			(9 + ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_RTTWR_MASK			(0x3 << ESDCTL_V4_DDR3_MR2_RTTWR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_RTTWR_OFF			(0x0 << ESDCTL_V4_DDR3_MR2_RTTWR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_RTTWR_RZQ4			(0x1 << ESDCTL_V4_DDR3_MR2_RTTWR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_RTTWR_RZQ2			(0x2 << ESDCTL_V4_DDR3_MR2_RTTWR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_SRT				(0x0080 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_SRT_NORMAL			(0x0000 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_SRT_EXTENDED			(0x0080 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_ASR_ENABLE			(0x0040 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_CWL_SHIFT			(3 + ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_CWL_MASK			(0x7 << ESDCTL_V4_DDR3_MR2_CWL_SHIFT)
#define ESDCTL_V4_DDR3_MR2_CWL_5			(0x0 << ESDCTL_V4_DDR3_MR2_CWL_SHIFT)
#define ESDCTL_V4_DDR3_MR2_CWL_6			(0x1 << ESDCTL_V4_DDR3_MR2_CWL_SHIFT)
#define ESDCTL_V4_DDR3_MR2_CWL_7			(0x2 << ESDCTL_V4_DDR3_MR2_CWL_SHIFT)
#define ESDCTL_V4_DDR3_MR2_CWL_8			(0x3 << ESDCTL_V4_DDR3_MR2_CWL_SHIFT)
#define ESDCTL_V4_DDR3_MR2_CWL_9			(0x4 << ESDCTL_V4_DDR3_MR2_CWL_SHIFT)
#define ESDCTL_V4_DDR3_MR2_CWL_10			(0x5 << ESDCTL_V4_DDR3_MR2_CWL_SHIFT)
#define ESDCTL_V4_DDR3_MR2_CWL_11			(0x6 << ESDCTL_V4_DDR3_MR2_CWL_SHIFT)
#define ESDCTL_V4_DDR3_MR2_CWL_12			(0x7 << ESDCTL_V4_DDR3_MR2_CWL_SHIFT)
#define ESDCTL_V4_DDR3_MR2_PASR_SHIFT			(0 + ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_PASR_MASK			(0x7 << ESDCTL_V4_DDR3_MR2_PASR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_PASR_1_1			(0x0 << ESDCTL_V4_DDR3_MR2_PASR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_PASR_1_2L			(0x1 << ESDCTL_V4_DDR3_MR2_PASR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_PASR_1_4L			(0x2 << ESDCTL_V4_DDR3_MR2_PASR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_PASR_1_8L			(0x3 << ESDCTL_V4_DDR3_MR2_PASR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_PASR_3_4L			(0x4 << ESDCTL_V4_DDR3_MR2_PASR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_PASR_1_2H			(0x5 << ESDCTL_V4_DDR3_MR2_PASR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_PASR_1_4H			(0x6 << ESDCTL_V4_DDR3_MR2_PASR_SHIFT)
#define ESDCTL_V4_DDR3_MR2_PASR_1_8H			(0x7 << ESDCTL_V4_DDR3_MR2_PASR_SHIFT)

#define ESDCTL_V4_DDR3_MR3_MPR_DISABLE			(0x0000 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR3_MPR_ENABLE			(0x0004 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR3_MPR_PATTERN			(0x0000 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR3_MPR_RFU1			(0x0001 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR3_MPR_RFU2			(0x0002 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)
#define ESDCTL_V4_DDR3_MR3_MPR_RFU3			(0x0003 << ESDCTL_V4_ESDSCR_CMD_ADDR_SHIFT)

#ifndef __ASSEMBLY__

void imx_esdctlv4_do_write_leveling(void);
void imx_esdctlv4_do_dqs_gating(void);
void imx_esdctlv4_do_zq_calibration(void);
void imx_esdctlv4_start_ddr3_sdram(int cs);
void imx_esdctlv4_do_read_delay_line_calibration(void);
void imx_esdctlv4_do_write_delay_line_calibration(void);
void imx_esdctlv4_set_tRFC_timing(void);
void imx_esdctlv4_detect_sdrams(void);
void imx_esdctlv4_init(void);

#endif

#endif /* __MACH_ESDCTL_V4_H */