mirror of
https://github.com/mii443/qemu.git
synced 2025-12-16 17:18:49 +00:00
libqos: i2c: move address into QI2CDevice
This removes the hardcoded I2C address from the tests. The address is passed via QOSGraphEdgeOptions to i2c_device_create and stored in the QI2CDevice. The i2c_send and i2c_recv functions, along with their wrappers, therefore, can be changed to take a QI2CDevice rather than an adapter/address pair. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
@@ -22,6 +22,11 @@ struct I2CAdapter {
|
||||
QTestState *qts;
|
||||
};
|
||||
|
||||
typedef struct QI2CAddress QI2CAddress;
|
||||
struct QI2CAddress {
|
||||
uint8_t addr;
|
||||
};
|
||||
|
||||
typedef struct QI2CDevice QI2CDevice;
|
||||
struct QI2CDevice {
|
||||
/*
|
||||
@@ -36,25 +41,23 @@ struct QI2CDevice {
|
||||
*/
|
||||
QOSGraphObject obj;
|
||||
I2CAdapter *bus;
|
||||
uint8_t addr;
|
||||
};
|
||||
|
||||
void *i2c_device_create(void *i2c_bus, QGuestAllocator *alloc, void *addr);
|
||||
void add_qi2c_address(QOSGraphEdgeOptions *opts, QI2CAddress *addr);
|
||||
|
||||
void i2c_send(I2CAdapter *i2c, uint8_t addr,
|
||||
const uint8_t *buf, uint16_t len);
|
||||
void i2c_recv(I2CAdapter *i2c, uint8_t addr,
|
||||
uint8_t *buf, uint16_t len);
|
||||
void i2c_send(QI2CDevice *dev, const uint8_t *buf, uint16_t len);
|
||||
void i2c_recv(QI2CDevice *dev, uint8_t *buf, uint16_t len);
|
||||
|
||||
void i2c_read_block(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
|
||||
void i2c_read_block(QI2CDevice *dev, uint8_t reg,
|
||||
uint8_t *buf, uint16_t len);
|
||||
void i2c_write_block(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
|
||||
void i2c_write_block(QI2CDevice *dev, uint8_t reg,
|
||||
const uint8_t *buf, uint16_t len);
|
||||
uint8_t i2c_get8(I2CAdapter *i2c, uint8_t addr, uint8_t reg);
|
||||
uint16_t i2c_get16(I2CAdapter *i2c, uint8_t addr, uint8_t reg);
|
||||
void i2c_set8(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
|
||||
uint8_t value);
|
||||
void i2c_set16(I2CAdapter *i2c, uint8_t addr, uint8_t reg,
|
||||
uint16_t value);
|
||||
uint8_t i2c_get8(QI2CDevice *dev, uint8_t reg);
|
||||
uint16_t i2c_get16(QI2CDevice *dev, uint8_t reg);
|
||||
void i2c_set8(QI2CDevice *dev, uint8_t reg, uint8_t value);
|
||||
void i2c_set16(QI2CDevice *dev, uint8_t reg, uint16_t value);
|
||||
|
||||
/* i2c-omap.c */
|
||||
typedef struct OMAPI2C {
|
||||
|
||||
Reference in New Issue
Block a user