twl92230: QOM'ify
Replace usages of FROM_I2C_SLAVE() and direct parent field accesses with QOM cast macro. Rename parent field. Add missing braces while at it. Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
		
							parent
							
								
									59ab56b9ad
								
							
						
					
					
						commit
						dd37dfa9e7
					
				| 
						 | 
				
			
			@ -27,8 +27,11 @@
 | 
			
		|||
 | 
			
		||||
#define VERBOSE 1
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    I2CSlave i2c;
 | 
			
		||||
#define TYPE_TWL92230 "twl92230"
 | 
			
		||||
#define TWL92230(obj) OBJECT_CHECK(MenelausState, (obj), TYPE_TWL92230)
 | 
			
		||||
 | 
			
		||||
typedef struct MenelausState {
 | 
			
		||||
    I2CSlave parent_obj;
 | 
			
		||||
 | 
			
		||||
    int firstbyte;
 | 
			
		||||
    uint8_t reg;
 | 
			
		||||
| 
						 | 
				
			
			@ -127,7 +130,8 @@ static void menelaus_rtc_hz(void *opaque)
 | 
			
		|||
 | 
			
		||||
static void menelaus_reset(I2CSlave *i2c)
 | 
			
		||||
{
 | 
			
		||||
    MenelausState *s = (MenelausState *) i2c;
 | 
			
		||||
    MenelausState *s = TWL92230(i2c);
 | 
			
		||||
 | 
			
		||||
    s->reg = 0x00;
 | 
			
		||||
 | 
			
		||||
    s->vcore[0] = 0x0c;	/* XXX: X-loader needs 0x8c? check!  */
 | 
			
		||||
| 
						 | 
				
			
			@ -492,8 +496,9 @@ static void menelaus_write(void *opaque, uint8_t addr, uint8_t value)
 | 
			
		|||
        break;
 | 
			
		||||
 | 
			
		||||
    case MENELAUS_DEVICE_OFF:
 | 
			
		||||
        if (value & 1)
 | 
			
		||||
            menelaus_reset(&s->i2c);
 | 
			
		||||
        if (value & 1) {
 | 
			
		||||
            menelaus_reset(I2C_SLAVE(s));
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
    case MENELAUS_OSC_CTRL:
 | 
			
		||||
| 
						 | 
				
			
			@ -708,7 +713,7 @@ static void menelaus_write(void *opaque, uint8_t addr, uint8_t value)
 | 
			
		|||
 | 
			
		||||
static void menelaus_event(I2CSlave *i2c, enum i2c_event event)
 | 
			
		||||
{
 | 
			
		||||
    MenelausState *s = (MenelausState *) i2c;
 | 
			
		||||
    MenelausState *s = TWL92230(i2c);
 | 
			
		||||
 | 
			
		||||
    if (event == I2C_START_SEND)
 | 
			
		||||
        s->firstbyte = 1;
 | 
			
		||||
| 
						 | 
				
			
			@ -716,7 +721,8 @@ static void menelaus_event(I2CSlave *i2c, enum i2c_event event)
 | 
			
		|||
 | 
			
		||||
static int menelaus_tx(I2CSlave *i2c, uint8_t data)
 | 
			
		||||
{
 | 
			
		||||
    MenelausState *s = (MenelausState *) i2c;
 | 
			
		||||
    MenelausState *s = TWL92230(i2c);
 | 
			
		||||
 | 
			
		||||
    /* Interpret register address byte */
 | 
			
		||||
    if (s->firstbyte) {
 | 
			
		||||
        s->reg = data;
 | 
			
		||||
| 
						 | 
				
			
			@ -729,7 +735,7 @@ static int menelaus_tx(I2CSlave *i2c, uint8_t data)
 | 
			
		|||
 | 
			
		||||
static int menelaus_rx(I2CSlave *i2c)
 | 
			
		||||
{
 | 
			
		||||
    MenelausState *s = (MenelausState *) i2c;
 | 
			
		||||
    MenelausState *s = TWL92230(i2c);
 | 
			
		||||
 | 
			
		||||
    return menelaus_read(s, s->reg ++);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -834,23 +840,24 @@ static const VMStateDescription vmstate_menelaus = {
 | 
			
		|||
        VMSTATE_STRUCT(rtc.alm, MenelausState, 0, vmstate_menelaus_tm,
 | 
			
		||||
                       struct tm),
 | 
			
		||||
        VMSTATE_UINT8(pwrbtn_state, MenelausState),
 | 
			
		||||
        VMSTATE_I2C_SLAVE(i2c, MenelausState),
 | 
			
		||||
        VMSTATE_I2C_SLAVE(parent_obj, MenelausState),
 | 
			
		||||
        VMSTATE_END_OF_LIST()
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static int twl92230_init(I2CSlave *i2c)
 | 
			
		||||
{
 | 
			
		||||
    MenelausState *s = FROM_I2C_SLAVE(MenelausState, i2c);
 | 
			
		||||
    DeviceState *dev = DEVICE(i2c);
 | 
			
		||||
    MenelausState *s = TWL92230(i2c);
 | 
			
		||||
 | 
			
		||||
    s->rtc.hz_tm = timer_new_ms(rtc_clock, menelaus_rtc_hz, s);
 | 
			
		||||
    /* Three output pins plus one interrupt pin.  */
 | 
			
		||||
    qdev_init_gpio_out(&i2c->qdev, s->out, 4);
 | 
			
		||||
    qdev_init_gpio_out(dev, s->out, 4);
 | 
			
		||||
 | 
			
		||||
    /* Three input pins plus one power-button pin.  */
 | 
			
		||||
    qdev_init_gpio_in(&i2c->qdev, menelaus_gpio_set, 4);
 | 
			
		||||
    qdev_init_gpio_in(dev, menelaus_gpio_set, 4);
 | 
			
		||||
 | 
			
		||||
    menelaus_reset(&s->i2c);
 | 
			
		||||
    menelaus_reset(i2c);
 | 
			
		||||
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -868,7 +875,7 @@ static void twl92230_class_init(ObjectClass *klass, void *data)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static const TypeInfo twl92230_info = {
 | 
			
		||||
    .name          = "twl92230",
 | 
			
		||||
    .name          = TYPE_TWL92230,
 | 
			
		||||
    .parent        = TYPE_I2C_SLAVE,
 | 
			
		||||
    .instance_size = sizeof(MenelausState),
 | 
			
		||||
    .class_init    = twl92230_class_init,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue