Use gpio_sys lib.

This commit is contained in:
Thomas Klaehn 2019-07-25 13:33:01 +02:00
parent 0ad0a5a1d9
commit 1c436eab6c
4 changed files with 19 additions and 15 deletions

View File

@ -1,11 +1,11 @@
#ifndef __I2C_BB_H__ #ifndef __I2C_BB_H__
#define __I2C_BB_H__ #define __I2C_BB_H__
#include <libgpio_ftdi/gpio.h> #include <libgpio_sys/gpio_sys.h>
struct i2c_bb { struct i2c_bb {
struct gpio *sda; struct gpio_sys *sda;
struct gpio *scl; struct gpio_sys *scl;
}; };
int i2c_open(const struct i2c_bb *i2c); int i2c_open(const struct i2c_bb *i2c);

View File

@ -161,7 +161,7 @@ static void write_bit(const struct i2c_bb *i2c, uint8_t bit)
static uint8_t read_bit(const struct i2c_bb *i2c) static uint8_t read_bit(const struct i2c_bb *i2c)
{ {
unsigned int res; int res;
assert(NULL != i2c); assert(NULL != i2c);
@ -169,8 +169,12 @@ static uint8_t read_bit(const struct i2c_bb *i2c)
usleep(5); usleep(5);
gpio_write(i2c->scl, 1); gpio_write(i2c->scl, 1);
usleep(5); usleep(5);
gpio_read(i2c->sda, &res); res = gpio_read(i2c->sda);
gpio_write(i2c->scl, 0); gpio_write(i2c->scl, 0);
if(res < 0) {
res = 0;
}
return (uint8_t) res; return (uint8_t) res;
} }

View File

@ -5,10 +5,10 @@
DEFINE_FFF_GLOBALS; DEFINE_FFF_GLOBALS;
DECLARE_FAKE_VALUE_FUNC(int, gpio_open, const struct gpio *); DECLARE_FAKE_VALUE_FUNC(int, gpio_open, const struct gpio_sys *);
DECLARE_FAKE_VALUE_FUNC(int, gpio_close, const struct gpio *); DECLARE_FAKE_VALUE_FUNC(int, gpio_close, const struct gpio_sys *);
DECLARE_FAKE_VALUE_FUNC(int, gpio_read, const struct gpio *, unsigned int *); DECLARE_FAKE_VALUE_FUNC(int, gpio_read, const struct gpio_sys *);
DECLARE_FAKE_VALUE_FUNC(int, gpio_write, const struct gpio *, unsigned int); DECLARE_FAKE_VALUE_FUNC(int, gpio_write, const struct gpio_sys *, int);
DECLARE_FAKE_VALUE_FUNC(int, gpio_toggle, const struct gpio *); DECLARE_FAKE_VALUE_FUNC(int, gpio_toggle, const struct gpio_sys *);
#endif #endif

View File

@ -2,8 +2,8 @@
DEFINE_FFF_GLOBALS; DEFINE_FFF_GLOBALS;
DEFINE_FAKE_VALUE_FUNC(int, gpio_open, const struct gpio *); DEFINE_FAKE_VALUE_FUNC(int, gpio_open, const struct gpio_sys *);
DEFINE_FAKE_VALUE_FUNC(int, gpio_close, const struct gpio *); DEFINE_FAKE_VALUE_FUNC(int, gpio_close, const struct gpio_sys *);
DEFINE_FAKE_VALUE_FUNC(int, gpio_read, const struct gpio *, unsigned int *); DEFINE_FAKE_VALUE_FUNC(int, gpio_read, const struct gpio_sys *);
DEFINE_FAKE_VALUE_FUNC(int, gpio_write, const struct gpio *, unsigned int); DEFINE_FAKE_VALUE_FUNC(int, gpio_write, const struct gpio_sys *, int);
DEFINE_FAKE_VALUE_FUNC(int, gpio_toggle, const struct gpio *); DEFINE_FAKE_VALUE_FUNC(int, gpio_toggle, const struct gpio_sys *);