Add cpu header selecter for i2c.
[bertos.git] / bertos / drv / eeprom.c
index 3b364f06d14b1fa01ca3a901c44931482feb80c4..52ab70c72f7ab5f1cf8232f1b66ec818212a9905 100644 (file)
@@ -248,20 +248,11 @@ static size_t eeprom_read(struct KFile *_fd, void *_buf, size_t size)
                return 0;
        }
 
-       while (size--)
-       {
-               /*
-                * The last byte read does not have an ACK
-                * to stop communication.
-                */
-               int c = i2c_get(size);
 
-               if (c == EOF)
-                       break;
-
-               *buf++ = c;
-               fd->fd.seek_pos++;
-               rd_len++;
+       if (i2c_recv(buf, size))
+       {
+               fd->fd.seek_pos += size;
+               rd_len += size;
        }
 
        i2c_stop();
@@ -397,5 +388,3 @@ void eeprom_init(Eeprom *fd, EepromType type, e2dev_addr_t addr, bool verify)
 
        fd->fd.seek = kfile_genericSeek;
 }
-
-#endif