qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 5/8] musicpal: True reset support for GPIO


From: Jan Kiszka
Subject: [Qemu-devel] [PATCH 5/8] musicpal: True reset support for GPIO
Date: Fri, 18 Sep 2009 20:51:23 +0200
User-agent: StGIT/0.14.3

Signed-off-by: Jan Kiszka <address@hidden>
---

 hw/musicpal.c |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/hw/musicpal.c b/hw/musicpal.c
index efc20a4..d4e797a 100644
--- a/hw/musicpal.c
+++ b/hw/musicpal.c
@@ -1128,8 +1128,12 @@ static CPUWriteMemoryFunc * const 
musicpal_gpio_writefn[] = {
     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->ier = 0;
     s->imr = 0;
@@ -1147,6 +1151,7 @@ static int musicpal_gpio_init(SysBusDevice *dev)
                                        musicpal_gpio_writefn, s);
     sysbus_init_mmio(dev, MP_GPIO_SIZE, iomemtype);
 
+    qemu_register_reset(musicpal_gpio_reset, s);
     musicpal_gpio_reset(s);
 
     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;
 }
 
+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 */
 #define KEY_RELEASED            0x80
 #define KEY_CODE                0x7f
@@ -1446,8 +1458,7 @@ static void musicpal_register_devices(void)
                         mv88w8618_wlan_init);
     sysbus_register_dev("musicpal_lcd", sizeof(musicpal_lcd_state),
                         musicpal_lcd_init);
-    sysbus_register_dev("musicpal_gpio", sizeof(musicpal_gpio_state),
-                        musicpal_gpio_init);
+    sysbus_register_withprop(&musicpal_gpio_info);
     sysbus_register_dev("musicpal_key", sizeof(musicpal_key_state),
                         musicpal_key_init);
 }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]