From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:58107) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qtpsn-0003za-GH for qemu-devel@nongnu.org; Wed, 17 Aug 2011 19:51:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QtpsV-0000Su-8T for qemu-devel@nongnu.org; Wed, 17 Aug 2011 19:50:39 -0400 Received: from mnementh.archaic.org.uk ([81.2.115.146]:44305) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QtpsV-0000Hg-24 for qemu-devel@nongnu.org; Wed, 17 Aug 2011 19:50:31 -0400 From: Peter Maydell Date: Thu, 18 Aug 2011 00:49:37 +0100 Message-Id: <1313624978-5350-6-git-send-email-peter.maydell@linaro.org> In-Reply-To: <1313624978-5350-1-git-send-email-peter.maydell@linaro.org> References: <1313624978-5350-1-git-send-email-peter.maydell@linaro.org> Subject: [Qemu-devel] [PATCH 5/6] hw/pl061.c: Support GPIOAMSEL register List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori , qemu-devel@nongnu.org Support the GPIOAMSEL register found on some Stellaris boards. Signed-off-by: Peter Maydell --- hw/pl061.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/hw/pl061.c b/hw/pl061.c index 27de824..d13746c 100644 --- a/hw/pl061.c +++ b/hw/pl061.c @@ -50,6 +50,7 @@ typedef struct { uint32_t den; uint32_t cr; uint32_t float_high; + uint32_t amsel; qemu_irq irq; qemu_irq out[8]; const unsigned char *id; @@ -57,7 +58,7 @@ typedef struct { static const VMStateDescription vmstate_pl061 = { .name = "pl061", - .version_id = 1, + .version_id = 2, .minimum_version_id = 1, .fields = (VMStateField[]) { VMSTATE_UINT32(locked, pl061_state), @@ -80,6 +81,7 @@ static const VMStateDescription vmstate_pl061 = { VMSTATE_UINT32(den, pl061_state), VMSTATE_UINT32(cr, pl061_state), VMSTATE_UINT32(float_high, pl061_state), + VMSTATE_UINT32_V(amsel, pl061_state, 2), VMSTATE_END_OF_LIST() } }; @@ -157,6 +159,8 @@ static uint32_t pl061_read(void *opaque, target_phys_addr_t offset) return s->locked; case 0x524: /* Commit */ return s->cr; + case 0x528: /* Analog mode select */ + return s->amsel; default: hw_error("pl061_read: Bad offset %x\n", (int)offset); return 0; @@ -229,6 +233,9 @@ static void pl061_write(void *opaque, target_phys_addr_t offset, if (!s->locked) s->cr = value & 0xff; break; + case 0x528: + s->amsel = value & 0xff; + break; default: hw_error("pl061_write: Bad offset %x\n", (int)offset); } -- 1.7.1