mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-11 03:24:58 -06:00
musicpal: True reset support for GPIO
Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
49fedd0d64
commit
30624c926c
1 changed files with 14 additions and 3 deletions
|
@ -1128,8 +1128,12 @@ static CPUWriteMemoryFunc * const musicpal_gpio_writefn[] = {
|
||||||
musicpal_gpio_write,
|
musicpal_gpio_write,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void musicpal_gpio_reset(musicpal_gpio_state *s)
|
static void musicpal_gpio_reset(void *opaque)
|
||||||
{
|
{
|
||||||
|
musicpal_gpio_state *s = opaque;
|
||||||
|
|
||||||
|
s->lcd_brightness = 0;
|
||||||
|
s->out_state = 0;
|
||||||
s->in_state = 0xffffffff;
|
s->in_state = 0xffffffff;
|
||||||
s->ier = 0;
|
s->ier = 0;
|
||||||
s->imr = 0;
|
s->imr = 0;
|
||||||
|
@ -1147,6 +1151,7 @@ static int musicpal_gpio_init(SysBusDevice *dev)
|
||||||
musicpal_gpio_writefn, s);
|
musicpal_gpio_writefn, s);
|
||||||
sysbus_init_mmio(dev, MP_GPIO_SIZE, iomemtype);
|
sysbus_init_mmio(dev, MP_GPIO_SIZE, iomemtype);
|
||||||
|
|
||||||
|
qemu_register_reset(musicpal_gpio_reset, s);
|
||||||
musicpal_gpio_reset(s);
|
musicpal_gpio_reset(s);
|
||||||
|
|
||||||
qdev_init_gpio_out(&dev->qdev, s->out, ARRAY_SIZE(s->out));
|
qdev_init_gpio_out(&dev->qdev, s->out, ARRAY_SIZE(s->out));
|
||||||
|
@ -1156,6 +1161,13 @@ static int musicpal_gpio_init(SysBusDevice *dev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static SysBusDeviceInfo musicpal_gpio_info = {
|
||||||
|
.init = musicpal_gpio_init,
|
||||||
|
.qdev.name = "musicpal_gpio",
|
||||||
|
.qdev.size = sizeof(musicpal_gpio_state),
|
||||||
|
.qdev.reset = musicpal_gpio_reset,
|
||||||
|
};
|
||||||
|
|
||||||
/* Keyboard codes & masks */
|
/* Keyboard codes & masks */
|
||||||
#define KEY_RELEASED 0x80
|
#define KEY_RELEASED 0x80
|
||||||
#define KEY_CODE 0x7f
|
#define KEY_CODE 0x7f
|
||||||
|
@ -1446,8 +1458,7 @@ static void musicpal_register_devices(void)
|
||||||
mv88w8618_wlan_init);
|
mv88w8618_wlan_init);
|
||||||
sysbus_register_dev("musicpal_lcd", sizeof(musicpal_lcd_state),
|
sysbus_register_dev("musicpal_lcd", sizeof(musicpal_lcd_state),
|
||||||
musicpal_lcd_init);
|
musicpal_lcd_init);
|
||||||
sysbus_register_dev("musicpal_gpio", sizeof(musicpal_gpio_state),
|
sysbus_register_withprop(&musicpal_gpio_info);
|
||||||
musicpal_gpio_init);
|
|
||||||
sysbus_register_dev("musicpal_key", sizeof(musicpal_key_state),
|
sysbus_register_dev("musicpal_key", sizeof(musicpal_key_state),
|
||||||
musicpal_key_init);
|
musicpal_key_init);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue