X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Fi2c.c;h=44798aa935963bc8b07f610f0df1e1466336176a;hb=39184f9b190fdcfec2f17aad6f0de8b2edf04a02;hp=c936837b7cdf9cbee48d9ed7eb4a237db50752f5;hpb=4b5d9de0c1791d0d4b7dcd78cf7ef01c6f5e3481;p=bertos.git diff --git a/bertos/drv/i2c.c b/bertos/drv/i2c.c index c936837b..44798aa9 100644 --- a/bertos/drv/i2c.c +++ b/bertos/drv/i2c.c @@ -32,12 +32,15 @@ * * \brief I2C generic driver functions (implementation). * - * \version $Id$ * \author Francesco Sacchi */ #include "i2c.h" +#include "cfg/cfg_i2c.h" + +#if !CONFIG_I2C_DISABLE_OLD_API + /** * Send a sequence of bytes in master transmitter mode * to the selected slave device through the I2C bus. @@ -88,4 +91,21 @@ bool i2c_recv(void *_buf, size_t count) return true; } +#endif /* !CONFIG_I2C_DISABLE_OLD_API */ + +void i2c_genericWrite(struct I2c *i2c, const void *_buf, size_t count) +{ + const uint8_t *buf = (const uint8_t *)_buf; + + while (count--) + i2c_putc(i2c, *buf++); +} + +void i2c_genericRead(struct I2c *i2c, void *_buf, size_t count) +{ + uint8_t *buf = (uint8_t *)_buf; + + while (count--) + *buf++ = i2c_getc(i2c); +}