4dec061dfeca927328577517fbae0564442e1e29
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-rk30 / include / mach / sram.h
1 #ifndef __MACH_SRAM_H
2 #define __MACH_SRAM_H
3
4 #include <plat/sram.h>
5
6 #define SRAM_LOOPS_PER_USEC     24
7 #define SRAM_LOOP(loops)        do { unsigned int i = (loops); if (i < 7) i = 7; barrier(); asm volatile(".align 4; 1: subs %0, %0, #1; bne 1b;" : "+r" (i)); } while (0)
8 /* delay on slow mode */
9 #define sram_udelay(usecs)      SRAM_LOOP((usecs)*SRAM_LOOPS_PER_USEC)
10 /* delay on deep slow mode */
11 #define sram_32k_udelay(usecs)  SRAM_LOOP(((usecs)*SRAM_LOOPS_PER_USEC)/(24000000/32768))
12
13 #endif