diff options
author | Wolfgang Denk <wd@pollux.denx.de> | 2005-09-06 22:17:16 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@pollux.denx.de> | 2005-09-06 22:17:16 +0200 |
commit | 5d244ea128819d78b208c3e53d4b464e4ce2df0f (patch) | |
tree | 8d71aa79620f2ec6de1dc3cbb6b3b9172c008e04 /board | |
parent | c44ffb9efa9be8b8ae35ccf2b4729d63bdab6dc7 (diff) | |
parent | 9d2a873bdf72a7c615c9c7ac55357085d0299716 (diff) |
Merge with /home/sr/git/u-boot:
Add I2C support for TQM85xx
Diffstat (limited to 'board')
-rw-r--r-- | board/tqm8540/tqm8540.c | 21 | ||||
-rw-r--r-- | board/tqm8560/tqm8560.c | 21 |
2 files changed, 32 insertions, 10 deletions
diff --git a/board/tqm8540/tqm8540.c b/board/tqm8540/tqm8540.c index ee10d004274..970c6841fd9 100644 --- a/board/tqm8540/tqm8540.c +++ b/board/tqm8540/tqm8540.c @@ -74,15 +74,26 @@ long int initdram (int board_type) #if defined(CONFIG_DDR_DLL) { - volatile ccsr_gur_t *gur = &immap->im_gur; - uint temp_ddrdll = 0; + volatile ccsr_gur_t *gur= &immap->im_gur; + int i,x; + + x = 10; /* * Work around to stabilize DDR DLL */ - temp_ddrdll = gur->ddrdllcr; - gur->ddrdllcr = ((temp_ddrdll & 0xff) << 16) | 0x80000000; - asm ("sync;isync;msync"); + gur->ddrdllcr = 0x81000000; + asm("sync;isync;msync"); + udelay (200); + while (gur->ddrdllcr != 0x81000100) { + gur->devdisr = gur->devdisr | 0x00010000; + asm("sync;isync;msync"); + for (i=0; i<x; i++) + ; + gur->devdisr = gur->devdisr & 0xfff7ffff; + asm("sync;isync;msync"); + x++; + } } #endif diff --git a/board/tqm8560/tqm8560.c b/board/tqm8560/tqm8560.c index 5f2edd89ddb..71f58805bc2 100644 --- a/board/tqm8560/tqm8560.c +++ b/board/tqm8560/tqm8560.c @@ -229,15 +229,26 @@ long int initdram (int board_type) #if defined(CONFIG_DDR_DLL) { - volatile ccsr_gur_t *gur = &immap->im_gur; - uint temp_ddrdll = 0; + volatile ccsr_gur_t *gur= &immap->im_gur; + int i,x; + + x = 10; /* * Work around to stabilize DDR DLL */ - temp_ddrdll = gur->ddrdllcr; - gur->ddrdllcr = ((temp_ddrdll & 0xff) << 16) | 0x80000000; - asm ("sync;isync;msync"); + gur->ddrdllcr = 0x81000000; + asm("sync;isync;msync"); + udelay (200); + while (gur->ddrdllcr != 0x81000100) { + gur->devdisr = gur->devdisr | 0x00010000; + asm("sync;isync;msync"); + for (i=0; i<x; i++) + ; + gur->devdisr = gur->devdisr & 0xfff7ffff; + asm("sync;isync;msync"); + x++; + } } #endif |