mirror of https://gitee.com/openkylin/qemu.git
TOSC DAC i2c qdev voncersion
Signed-off-by: Paul Brook <paul@codesourcery.com>
This commit is contained in:
parent
d335681177
commit
fd1eb2ea42
29
hw/tosa.c
29
hw/tosa.c
|
@ -132,7 +132,7 @@ typedef struct {
|
||||||
|
|
||||||
static int tosa_dac_send(i2c_slave *i2c, uint8_t data)
|
static int tosa_dac_send(i2c_slave *i2c, uint8_t data)
|
||||||
{
|
{
|
||||||
TosaDACState *s = (TosaDACState *)i2c;
|
TosaDACState *s = FROM_I2C_SLAVE(TosaDACState, i2c);
|
||||||
s->buf[s->len] = data;
|
s->buf[s->len] = data;
|
||||||
if (s->len ++ > 2) {
|
if (s->len ++ > 2) {
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
|
@ -151,7 +151,7 @@ static int tosa_dac_send(i2c_slave *i2c, uint8_t data)
|
||||||
|
|
||||||
static void tosa_dac_event(i2c_slave *i2c, enum i2c_event event)
|
static void tosa_dac_event(i2c_slave *i2c, enum i2c_event event)
|
||||||
{
|
{
|
||||||
TosaDACState *s = (TosaDACState *)i2c;
|
TosaDACState *s = FROM_I2C_SLAVE(TosaDACState, i2c);
|
||||||
s->len = 0;
|
s->len = 0;
|
||||||
switch (event) {
|
switch (event) {
|
||||||
case I2C_START_SEND:
|
case I2C_START_SEND:
|
||||||
|
@ -178,14 +178,15 @@ static int tosa_dac_recv(i2c_slave *s)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void tosa_dac_init(i2c_slave *i2c)
|
||||||
|
{
|
||||||
|
/* Nothing to do. */
|
||||||
|
}
|
||||||
|
|
||||||
static void tosa_tg_init(PXA2xxState *cpu)
|
static void tosa_tg_init(PXA2xxState *cpu)
|
||||||
{
|
{
|
||||||
i2c_bus *bus = pxa2xx_i2c_bus(cpu->i2c[0]);
|
i2c_bus *bus = pxa2xx_i2c_bus(cpu->i2c[0]);
|
||||||
i2c_slave *dac = i2c_slave_init(bus, 0, sizeof(TosaDACState));
|
i2c_create_slave(bus, "tosa_dac", DAC_BASE);
|
||||||
dac->send = tosa_dac_send;
|
|
||||||
dac->event = tosa_dac_event;
|
|
||||||
dac->recv = tosa_dac_recv;
|
|
||||||
i2c_set_slave_address(dac, DAC_BASE);
|
|
||||||
pxa2xx_ssp_attach(cpu->ssp[1], tosa_ssp_read,
|
pxa2xx_ssp_attach(cpu->ssp[1], tosa_ssp_read,
|
||||||
tosa_ssp_write, cpu);
|
tosa_ssp_write, cpu);
|
||||||
}
|
}
|
||||||
|
@ -241,3 +242,17 @@ QEMUMachine tosapda_machine = {
|
||||||
.desc = "Tosa PDA (PXA255)",
|
.desc = "Tosa PDA (PXA255)",
|
||||||
.init = tosa_init,
|
.init = tosa_init,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static I2CSlaveInfo tosa_dac_info = {
|
||||||
|
.init = tosa_dac_init,
|
||||||
|
.event = tosa_dac_event,
|
||||||
|
.recv = tosa_dac_recv,
|
||||||
|
.send = tosa_dac_send
|
||||||
|
};
|
||||||
|
|
||||||
|
static void tosa_register_devices(void)
|
||||||
|
{
|
||||||
|
i2c_register_slave("tosa_dac", sizeof(TosaDACState), &tosa_dac_info);
|
||||||
|
}
|
||||||
|
|
||||||
|
device_init(tosa_register_devices)
|
||||||
|
|
Loading…
Reference in New Issue