* $WIZ$ module_name = "i2c"
* $WIZ$ module_configuration = "bertos/cfg/cfg_i2c.h"
* $WIZ$ module_hw = "bertos/hw/hw_i2c_bitbang.h"
+ * $WIZ$ module_depends = "i2c_bitbang"
* $WIZ$ module_supports = "not atmega103 and not atmega168 and not at91"
*/
#define i2c_start_r(args...) PP_CAT(i2c_start_r ## _, COUNT_PARMS(args)) (args)
#endif
+
+#if !CONFIG_I2C_DISABLE_OLD_API
/**
* I2C Backends.
* Sometimes your cpu does not have a builtin
* i2c driver or you don't want, for some reason, to
* use that.
* With this you can choose, at compile time, which backend to use.
- *
- * $WIZ$ i2c_backend = "I2C_BACKEND_BUILTIN", "I2C_BACKEND_BITBANG"
*/
#define I2C_BACKEND_BUILTIN 0 ///< Uses cpu builtin i2c driver
#define I2C_BACKEND_BITBANG 1 ///< Uses emulated bitbang driver
int i2c_bitbang_get(bool ack);
/*\}*/
+#ifndef CONFIG_I2C_BACKEND
+#define CONFIG_I2C_BACKEND I2C_BACKEND_BUILTIN
+#endif
+
#if CONFIG_I2C_BACKEND == I2C_BACKEND_BUILTIN
#define i2c_init_0 i2c_builtin_init
#define i2c_start_w_1 i2c_builtin_start_w
bool i2c_send(const void *_buf, size_t count);
bool i2c_recv(void *_buf, size_t count);
+#endif
/*
* I2c new api
return err;
}
-INLINE void i2c_init_3(I2c *i2c, int dev, uint32_t clock)
-{
- if (dev > I2C_BITBANG0)
- i2c_hw_bitbangInit(i2c, dev);
- else
- i2c_hw_init(i2c, dev, clock);
+#define i2c_init_3(i2c, dev, clock) (dev > I2C_BITBANG0) ? i2c_hw_bitbangInit(i2c, dev) : i2c_hw_init(i2c, dev, clock)
-}
#endif