i2ccmds: abstract i2c dev from bus implementation

Added wrapper around sw/hw bus API,
pins.py code will ensure that pins will not mix
between HW/SW buses.

Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
This commit is contained in:
Timofey Titovets
2024-09-13 22:02:05 +02:00
committed by KevinOConnor
parent 39f08aeda1
commit 08a85ba869
4 changed files with 37 additions and 25 deletions

View File

@@ -5,12 +5,17 @@
#include "board/gpio.h" // i2c_config
struct i2cdev_s {
struct i2c_config i2c_config;
struct i2c_software *i2c_software;
union {
struct i2c_config i2c_hw;
struct i2c_software *i2c_sw;
};
uint8_t flags;
};
struct i2cdev_s *i2cdev_oid_lookup(uint8_t oid);
void i2cdev_set_software_bus(struct i2cdev_s *i2c, struct i2c_software *is);
void i2c_dev_read(struct i2cdev_s *i2c, uint8_t reg_len, uint8_t *reg
, uint8_t read_len, uint8_t *read);
void i2c_dev_write(struct i2cdev_s *i2c, uint8_t write_len, uint8_t *data);
#endif