mirror of https://github.com/xemu-project/xemu.git
i2c: Move the bus class to i2c.h
Some devices need access to it. Signed-off-by: Corey Minyard <cminyard@mvista.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Message-id: 20180227104903.21353-3-linus.walleij@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
373b8ac794
commit
aa88d7ad28
|
@ -10,30 +10,13 @@
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "hw/i2c/i2c.h"
|
#include "hw/i2c/i2c.h"
|
||||||
|
|
||||||
typedef struct I2CNode I2CNode;
|
|
||||||
|
|
||||||
struct I2CNode {
|
|
||||||
I2CSlave *elt;
|
|
||||||
QLIST_ENTRY(I2CNode) next;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define I2C_BROADCAST 0x00
|
#define I2C_BROADCAST 0x00
|
||||||
|
|
||||||
struct I2CBus {
|
|
||||||
BusState qbus;
|
|
||||||
QLIST_HEAD(, I2CNode) current_devs;
|
|
||||||
uint8_t saved_address;
|
|
||||||
bool broadcast;
|
|
||||||
};
|
|
||||||
|
|
||||||
static Property i2c_props[] = {
|
static Property i2c_props[] = {
|
||||||
DEFINE_PROP_UINT8("address", struct I2CSlave, address, 0),
|
DEFINE_PROP_UINT8("address", struct I2CSlave, address, 0),
|
||||||
DEFINE_PROP_END_OF_LIST(),
|
DEFINE_PROP_END_OF_LIST(),
|
||||||
};
|
};
|
||||||
|
|
||||||
#define TYPE_I2C_BUS "i2c-bus"
|
|
||||||
#define I2C_BUS(obj) OBJECT_CHECK(I2CBus, (obj), TYPE_I2C_BUS)
|
|
||||||
|
|
||||||
static const TypeInfo i2c_bus_info = {
|
static const TypeInfo i2c_bus_info = {
|
||||||
.name = TYPE_I2C_BUS,
|
.name = TYPE_I2C_BUS,
|
||||||
.parent = TYPE_BUS,
|
.parent = TYPE_BUS,
|
||||||
|
|
|
@ -56,6 +56,23 @@ struct I2CSlave {
|
||||||
uint8_t address;
|
uint8_t address;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define TYPE_I2C_BUS "i2c-bus"
|
||||||
|
#define I2C_BUS(obj) OBJECT_CHECK(I2CBus, (obj), TYPE_I2C_BUS)
|
||||||
|
|
||||||
|
typedef struct I2CNode I2CNode;
|
||||||
|
|
||||||
|
struct I2CNode {
|
||||||
|
I2CSlave *elt;
|
||||||
|
QLIST_ENTRY(I2CNode) next;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct I2CBus {
|
||||||
|
BusState qbus;
|
||||||
|
QLIST_HEAD(, I2CNode) current_devs;
|
||||||
|
uint8_t saved_address;
|
||||||
|
bool broadcast;
|
||||||
|
};
|
||||||
|
|
||||||
I2CBus *i2c_init_bus(DeviceState *parent, const char *name);
|
I2CBus *i2c_init_bus(DeviceState *parent, const char *name);
|
||||||
void i2c_set_slave_address(I2CSlave *dev, uint8_t address);
|
void i2c_set_slave_address(I2CSlave *dev, uint8_t address);
|
||||||
int i2c_bus_busy(I2CBus *bus);
|
int i2c_bus_busy(I2CBus *bus);
|
||||||
|
|
Loading…
Reference in New Issue