Rename CLOCK_FREQ macro to CPU_FREQ: now clock frequency has to be set in the makefile.
[bertos.git] / bertos / cpu / arm / drv / twi_at91.c
index b0b84be5cb4bb7b4cb5f02ed3bced106e636d02c..cb2097eabf6328a1958c60c8046d86aa4187703f 100644 (file)
@@ -39,6 +39,7 @@
 
 #include "twi_at91.h"
 
+#include "cfg/cfg_i2c.h"
 #include <cfg/compiler.h>
 #include <cfg/debug.h>
 #include <cfg/macros.h>
@@ -180,7 +181,7 @@ bool twi_read(uint8_t id, twi_iaddr_t byte1, twi_iaddr_t byte2, twi_iaddr_t byte
        /*
         * Start reception.
         * Kludge: if we want to receive only 1 byte, the stop but *must* be set here
-        * (thanks to crappy twi implementation again).
+        * (thanks to crappy twi implementation again).
         */
        if (size == 1)
        {
@@ -249,11 +250,11 @@ void twi_init(void)
        /*
         * Compute twi clock.
         * CLDIV = ((Tlow * 2^CKDIV) -3) * Tmck
-        * CHDIV = ((THigh * 2^CKDIV) -3) * Tmck
-        * Only CLDIV is computed since CLDIV = CHDIV (50% duty cycle)
+        * CHDIV = ((THigh * 2^CKDIV) -3) * Tmck
+        * Only CLDIV is computed since CLDIV = CHDIV (50% duty cycle)
         */
-       uint16_t cldiv, ckdiv = 0;
-       while ((cldiv = ((CLOCK_FREQ / (2 * CONFIG_TWI_FREQ)) - 3) / (1 << ckdiv)) > 255)
+       uint16_t cldiv, ckdiv = 0;
+       while ((cldiv = ((CPU_FREQ / (2 * CONFIG_I2C_FREQ)) - 3) / (1 << ckdiv)) > 255)
                ckdiv++;
 
        /* Atmel errata states that ckdiv *must* be less than 5 for unknown reason */
@@ -264,3 +265,4 @@ void twi_init(void)
 
        MOD_INIT(twi);
 }
+