diff options
Diffstat (limited to 'firmware/target')
-rw-r--r-- | firmware/target/arm/i2c-telechips.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/firmware/target/arm/i2c-telechips.c b/firmware/target/arm/i2c-telechips.c index b84fbe4438..fb341c7905 100644 --- a/firmware/target/arm/i2c-telechips.c +++ b/firmware/target/arm/i2c-telechips.c | |||
@@ -24,8 +24,13 @@ | |||
24 | #include "i2c.h" | 24 | #include "i2c.h" |
25 | #include "i2c-target.h" | 25 | #include "i2c-target.h" |
26 | 26 | ||
27 | /* arbitrary delay loop */ | 27 | /* Delay loop based on CPU frequency (FREQ>>22 is 7..45 for 32MHz..192MHz) */ |
28 | #define DELAY do { int _x; for(_x=0;_x<40;_x++);} while (0) | 28 | static inline void delay_loop(void) |
29 | { | ||
30 | unsigned long x; | ||
31 | for (x = (unsigned)(FREQ>>22); x; x--); | ||
32 | } | ||
33 | #define DELAY delay_loop() | ||
29 | 34 | ||
30 | static struct mutex i2c_mtx; | 35 | static struct mutex i2c_mtx; |
31 | 36 | ||