aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin
diff options
context:
space:
mode:
authorSonic Zhang <sonic.zhang@analog.com>2012-11-28 22:41:17 -0500
committerSteven Miao <realmz6@gmail.com>2013-05-07 06:25:59 -0400
commitc83a917112ccab57044e4c8aede4c0a765c1041c (patch)
tree7c005a1249fb00f1aab5692ca7904042c14700a7 /arch/blackfin
parentc1be5a5b1b355d40e6cf79cc979eb66dafa24ad1 (diff)
blackfin: dmc: Improve DDR2 write through in DMC effict controller.
Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Steven Miao <realmz6@gmail.com>
Diffstat (limited to 'arch/blackfin')
-rw-r--r--arch/blackfin/include/asm/mem_init.h9
-rw-r--r--arch/blackfin/mach-bf609/include/mach/cdefBF60x_base.h2
2 files changed, 11 insertions, 0 deletions
diff --git a/arch/blackfin/include/asm/mem_init.h b/arch/blackfin/include/asm/mem_init.h
index 9b33e7247864..c865b33eeb68 100644
--- a/arch/blackfin/include/asm/mem_init.h
+++ b/arch/blackfin/include/asm/mem_init.h
@@ -335,6 +335,7 @@
335struct ddr_config { 335struct ddr_config {
336 u32 ddr_clk; 336 u32 ddr_clk;
337 u32 dmc_ddrctl; 337 u32 dmc_ddrctl;
338 u32 dmc_effctl;
338 u32 dmc_ddrcfg; 339 u32 dmc_ddrcfg;
339 u32 dmc_ddrtr0; 340 u32 dmc_ddrtr0;
340 u32 dmc_ddrtr1; 341 u32 dmc_ddrtr1;
@@ -348,6 +349,7 @@ static struct ddr_config ddr_config_table[] __attribute__((section(".data_l1")))
348 [0] = { 349 [0] = {
349 .ddr_clk = 125, 350 .ddr_clk = 125,
350 .dmc_ddrctl = 0x00000904, 351 .dmc_ddrctl = 0x00000904,
352 .dmc_effctl = 0x004400C0,
351 .dmc_ddrcfg = 0x00000422, 353 .dmc_ddrcfg = 0x00000422,
352 .dmc_ddrtr0 = 0x20705212, 354 .dmc_ddrtr0 = 0x20705212,
353 .dmc_ddrtr1 = 0x201003CF, 355 .dmc_ddrtr1 = 0x201003CF,
@@ -358,6 +360,7 @@ static struct ddr_config ddr_config_table[] __attribute__((section(".data_l1")))
358 [1] = { 360 [1] = {
359 .ddr_clk = 133, 361 .ddr_clk = 133,
360 .dmc_ddrctl = 0x00000904, 362 .dmc_ddrctl = 0x00000904,
363 .dmc_effctl = 0x004400C0,
361 .dmc_ddrcfg = 0x00000422, 364 .dmc_ddrcfg = 0x00000422,
362 .dmc_ddrtr0 = 0x20806313, 365 .dmc_ddrtr0 = 0x20806313,
363 .dmc_ddrtr1 = 0x2013040D, 366 .dmc_ddrtr1 = 0x2013040D,
@@ -368,6 +371,7 @@ static struct ddr_config ddr_config_table[] __attribute__((section(".data_l1")))
368 [2] = { 371 [2] = {
369 .ddr_clk = 150, 372 .ddr_clk = 150,
370 .dmc_ddrctl = 0x00000904, 373 .dmc_ddrctl = 0x00000904,
374 .dmc_effctl = 0x004400C0,
371 .dmc_ddrcfg = 0x00000422, 375 .dmc_ddrcfg = 0x00000422,
372 .dmc_ddrtr0 = 0x20A07323, 376 .dmc_ddrtr0 = 0x20A07323,
373 .dmc_ddrtr1 = 0x20160492, 377 .dmc_ddrtr1 = 0x20160492,
@@ -378,6 +382,7 @@ static struct ddr_config ddr_config_table[] __attribute__((section(".data_l1")))
378 [3] = { 382 [3] = {
379 .ddr_clk = 166, 383 .ddr_clk = 166,
380 .dmc_ddrctl = 0x00000904, 384 .dmc_ddrctl = 0x00000904,
385 .dmc_effctl = 0x004400C0,
381 .dmc_ddrcfg = 0x00000422, 386 .dmc_ddrcfg = 0x00000422,
382 .dmc_ddrtr0 = 0x20A07323, 387 .dmc_ddrtr0 = 0x20A07323,
383 .dmc_ddrtr1 = 0x2016050E, 388 .dmc_ddrtr1 = 0x2016050E,
@@ -388,6 +393,7 @@ static struct ddr_config ddr_config_table[] __attribute__((section(".data_l1")))
388 [4] = { 393 [4] = {
389 .ddr_clk = 200, 394 .ddr_clk = 200,
390 .dmc_ddrctl = 0x00000904, 395 .dmc_ddrctl = 0x00000904,
396 .dmc_effctl = 0x004400C0,
391 .dmc_ddrcfg = 0x00000422, 397 .dmc_ddrcfg = 0x00000422,
392 .dmc_ddrtr0 = 0x20a07323, 398 .dmc_ddrtr0 = 0x20a07323,
393 .dmc_ddrtr1 = 0x2016050f, 399 .dmc_ddrtr1 = 0x2016050f,
@@ -398,6 +404,7 @@ static struct ddr_config ddr_config_table[] __attribute__((section(".data_l1")))
398 [5] = { 404 [5] = {
399 .ddr_clk = 225, 405 .ddr_clk = 225,
400 .dmc_ddrctl = 0x00000904, 406 .dmc_ddrctl = 0x00000904,
407 .dmc_effctl = 0x004400C0,
401 .dmc_ddrcfg = 0x00000422, 408 .dmc_ddrcfg = 0x00000422,
402 .dmc_ddrtr0 = 0x20E0A424, 409 .dmc_ddrtr0 = 0x20E0A424,
403 .dmc_ddrtr1 = 0x302006DB, 410 .dmc_ddrtr1 = 0x302006DB,
@@ -408,6 +415,7 @@ static struct ddr_config ddr_config_table[] __attribute__((section(".data_l1")))
408 [6] = { 415 [6] = {
409 .ddr_clk = 250, 416 .ddr_clk = 250,
410 .dmc_ddrctl = 0x00000904, 417 .dmc_ddrctl = 0x00000904,
418 .dmc_effctl = 0x004400C0,
411 .dmc_ddrcfg = 0x00000422, 419 .dmc_ddrcfg = 0x00000422,
412 .dmc_ddrtr0 = 0x20E0A424, 420 .dmc_ddrtr0 = 0x20E0A424,
413 .dmc_ddrtr1 = 0x3020079E, 421 .dmc_ddrtr1 = 0x3020079E,
@@ -469,6 +477,7 @@ static inline void init_dmc(u32 dmc_clk)
469 bfin_write_DMC0_TR2(ddr_config_table[i].dmc_ddrtr2); 477 bfin_write_DMC0_TR2(ddr_config_table[i].dmc_ddrtr2);
470 bfin_write_DMC0_MR(ddr_config_table[i].dmc_ddrmr); 478 bfin_write_DMC0_MR(ddr_config_table[i].dmc_ddrmr);
471 bfin_write_DMC0_EMR1(ddr_config_table[i].dmc_ddrmr1); 479 bfin_write_DMC0_EMR1(ddr_config_table[i].dmc_ddrmr1);
480 bfin_write_DMC0_EFFCTL(ddr_config_table[i].dmc_effctl);
472 bfin_write_DMC0_CTL(ddr_config_table[i].dmc_ddrctl); 481 bfin_write_DMC0_CTL(ddr_config_table[i].dmc_ddrctl);
473 break; 482 break;
474 } 483 }
diff --git a/arch/blackfin/mach-bf609/include/mach/cdefBF60x_base.h b/arch/blackfin/mach-bf609/include/mach/cdefBF60x_base.h
index 4954cf3f7e16..102ee4025ac9 100644
--- a/arch/blackfin/mach-bf609/include/mach/cdefBF60x_base.h
+++ b/arch/blackfin/mach-bf609/include/mach/cdefBF60x_base.h
@@ -312,6 +312,8 @@
312#define bfin_write_DMC0_EMR1(val) bfin_write32(DMC0_EMR1, val) 312#define bfin_write_DMC0_EMR1(val) bfin_write32(DMC0_EMR1, val)
313#define bfin_read_DMC0_CTL() bfin_read32(DMC0_CTL) 313#define bfin_read_DMC0_CTL() bfin_read32(DMC0_CTL)
314#define bfin_write_DMC0_CTL(val) bfin_write32(DMC0_CTL, val) 314#define bfin_write_DMC0_CTL(val) bfin_write32(DMC0_CTL, val)
315#define bfin_read_DMC0_EFFCTL() bfin_read32(DMC0_EFFCTL)
316#define bfin_write_DMC0_EFFCTL(val) bfin_write32(DMC0_EFFCTL, val)
315#define bfin_read_DMC0_STAT() bfin_read32(DMC0_STAT) 317#define bfin_read_DMC0_STAT() bfin_read32(DMC0_STAT)
316#define bfin_write_DMC0_STAT(val) bfin_write32(DMC0_STAT, val) 318#define bfin_write_DMC0_STAT(val) bfin_write32(DMC0_STAT, val)
317#define bfin_read_DMC0_DLLCTL() bfin_read32(DMC0_DLLCTL) 319#define bfin_read_DMC0_DLLCTL() bfin_read32(DMC0_DLLCTL)