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)
 | 
			
		||||
{
 | 
			
		||||
    TosaDACState *s = (TosaDACState *)i2c;
 | 
			
		||||
    TosaDACState *s = FROM_I2C_SLAVE(TosaDACState, i2c);
 | 
			
		||||
    s->buf[s->len] = data;
 | 
			
		||||
    if (s->len ++ > 2) {
 | 
			
		||||
#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)
 | 
			
		||||
{
 | 
			
		||||
    TosaDACState *s = (TosaDACState *)i2c;
 | 
			
		||||
    TosaDACState *s = FROM_I2C_SLAVE(TosaDACState, i2c);
 | 
			
		||||
    s->len = 0;
 | 
			
		||||
    switch (event) {
 | 
			
		||||
    case I2C_START_SEND:
 | 
			
		||||
| 
						 | 
				
			
			@ -178,14 +178,15 @@ static int tosa_dac_recv(i2c_slave *s)
 | 
			
		|||
    return -1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void tosa_dac_init(i2c_slave *i2c)
 | 
			
		||||
{
 | 
			
		||||
    /* Nothing to do.  */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void tosa_tg_init(PXA2xxState *cpu)
 | 
			
		||||
{
 | 
			
		||||
    i2c_bus *bus = pxa2xx_i2c_bus(cpu->i2c[0]);
 | 
			
		||||
    i2c_slave *dac = i2c_slave_init(bus, 0, sizeof(TosaDACState));
 | 
			
		||||
    dac->send = tosa_dac_send;
 | 
			
		||||
    dac->event = tosa_dac_event;
 | 
			
		||||
    dac->recv = tosa_dac_recv;
 | 
			
		||||
    i2c_set_slave_address(dac, DAC_BASE);
 | 
			
		||||
    i2c_create_slave(bus, "tosa_dac", DAC_BASE);
 | 
			
		||||
    pxa2xx_ssp_attach(cpu->ssp[1], tosa_ssp_read,
 | 
			
		||||
                    tosa_ssp_write, cpu);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -241,3 +242,17 @@ QEMUMachine tosapda_machine = {
 | 
			
		|||
    .desc = "Tosa PDA (PXA255)",
 | 
			
		||||
    .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