X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Fi2c.c;h=44798aa935963bc8b07f610f0df1e1466336176a;hb=39184f9b190fdcfec2f17aad6f0de8b2edf04a02;hp=575dc7681e49648b789f61b53a68f4d96c9cffc6;hpb=4d0bb5f77cf16b3c153b3acb280376d0d3c86d58;p=bertos.git diff --git a/bertos/drv/i2c.c b/bertos/drv/i2c.c index 575dc768..44798aa9 100644 --- a/bertos/drv/i2c.c +++ b/bertos/drv/i2c.c @@ -37,6 +37,10 @@ #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. @@ -87,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); +}