Remove svn tag.
[bertos.git] / bertos / drv / eeprom.c
index 83688b782c6216dbd64eaaf6f3412c8b119b0a24..7240fccad00bd4601d109be524553131d7196cd2 100644 (file)
@@ -32,8 +32,6 @@
  *
  * \brief Driver for the 24xx16 and 24xx256 I2C EEPROMS (implementation)
  *
- *
- * \version $Id$
  * \author Stefano Fedrigo <aleph@develer.com>
  * \author Bernie Innocenti <bernie@codewiz.org>
  */
@@ -48,7 +46,7 @@
 #include <cfg/module.h>  // MOD_CHECK()
 
 #include <cpu/attr.h>
-#include CPU_HEADER(twi)
+#include <drv/i2c.h>
 
 #include <drv/wdt.h>
 
@@ -147,15 +145,15 @@ static size_t eeprom_writeRaw(struct KFile *_fd, const void *buf, size_t size)
                }
 
 
-               if (!(twi_start_w(EEPROM_ADDR(dev_addr))
-                       && twi_send(addr_buf, addr_len)
-                       && twi_send(buf, count)))
+               if (!(i2c_start_w(EEPROM_ADDR(dev_addr))
+                       && i2c_send(addr_buf, addr_len)
+                       && i2c_send(buf, count)))
                {
-                       twi_stop();
+                       i2c_stop();
                        return wr_len;
                }
 
-               twi_stop();
+               i2c_stop();
 
                /* Update count and addr for next operation */
                size -= count;
@@ -177,7 +175,7 @@ static size_t eeprom_writeVerify(struct KFile *_fd, const void *_buf, size_t siz
 {
        Eeprom *fd = EEPROM_CAST(_fd);
        int retries = 5;
-       size_t wr_len;
+       size_t wr_len = 0;
 
        while (retries--)
        {
@@ -232,11 +230,11 @@ static size_t eeprom_read(struct KFile *_fd, void *_buf, size_t size)
        }
 
 
-       if (!(twi_start_w(EEPROM_ADDR(dev_addr))
-          && twi_send(addr_buf, addr_len)
-          && twi_start_r(EEPROM_ADDR(dev_addr))))
+       if (!(i2c_start_w(EEPROM_ADDR(dev_addr))
+          && i2c_send(addr_buf, addr_len)
+          && i2c_start_r(EEPROM_ADDR(dev_addr))))
        {
-               twi_stop();
+               i2c_stop();
                return 0;
        }
 
@@ -246,7 +244,7 @@ static size_t eeprom_read(struct KFile *_fd, void *_buf, size_t size)
                 * The last byte read does not have an ACK
                 * to stop communication.
                 */
-               int c = twi_get(size);
+               int c = i2c_get(size);
 
                if (c == EOF)
                        break;
@@ -256,6 +254,7 @@ static size_t eeprom_read(struct KFile *_fd, void *_buf, size_t size)
                rd_len++;
        }
 
+       i2c_stop();
        return rd_len;
 }
 
@@ -368,7 +367,7 @@ bool eeprom_erase(Eeprom *fd, e2addr_t addr, e2_size_t count)
  */
 void eeprom_init(Eeprom *fd, EepromType type, e2dev_addr_t addr, bool verify)
 {
-       MOD_CHECK(twi);
+       MOD_CHECK(i2c);
        ASSERT(type < EEPROM_CNT);
 
        memset(fd, 0, sizeof(*fd));