rk30: sram: add sram_32k_udelay support deep slow mode delay
author黄涛 <huangtao@rock-chips.com>
Tue, 15 May 2012 06:52:03 +0000 (14:52 +0800)
committer黄涛 <huangtao@rock-chips.com>
Tue, 15 May 2012 06:52:03 +0000 (14:52 +0800)
arch/arm/mach-rk30/include/mach/sram.h

index a236fb8ab1a766b32bf31ed7f68c5d32d8dbe4be..eba76bccf64d002029ed26345aa3f2e03b224197 100644 (file)
@@ -4,8 +4,10 @@
 #include <plat/sram.h>
 
 #define SRAM_LOOPS_PER_USEC    24
-#define SRAM_LOOP(loops)       do { unsigned int i = loops; barrier(); while (--i) barrier(); } while (0)
+#define SRAM_LOOP(loops)       do { unsigned int i = (loops); if (i < 7) i = 7; barrier(); while (--i) barrier(); } while (0)
 /* delay on slow mode */
 #define sram_udelay(usecs)     SRAM_LOOP((usecs)*SRAM_LOOPS_PER_USEC)
+/* delay on deep slow mode */
+#define sram_32k_udelay(usecs) SRAM_LOOP(((usecs)*SRAM_LOOPS_PER_USEC)/(24000000/32768))
 
 #endif