diff options
author | Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 2011-02-25 12:13:38 +0100 |
---|---|---|
committer | Andrzej Zaborowski <balrog@zabor.org> | 2011-02-25 12:13:38 +0100 |
commit | e1f8c729fa890c67bb4532f22c22ace6fb0e1aaf (patch) | |
tree | 71a7936f73ce841cc41dbd90457ab87044c9fdbc /hw/pxa2xx_timer.c | |
parent | 3e1dbc3bd40338f19a2469feabd5f1dc5a4f5a9d (diff) | |
download | qemu-e1f8c729fa890c67bb4532f22c22ace6fb0e1aaf.zip qemu-e1f8c729fa890c67bb4532f22c22ace6fb0e1aaf.tar.gz qemu-e1f8c729fa890c67bb4532f22c22ace6fb0e1aaf.tar.bz2 |
pxa2xx_pic: update to use qdev
Use qdev/sysbus framework to handle pxa2xx-pic. Instead of exposing IRQs
via array, reference them via qdev_get_gpio_in().
Patch has been modified by the committer.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
Diffstat (limited to 'hw/pxa2xx_timer.c')
-rw-r--r-- | hw/pxa2xx_timer.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/hw/pxa2xx_timer.c b/hw/pxa2xx_timer.c index b556d11..7ab2cc3 100644 --- a/hw/pxa2xx_timer.c +++ b/hw/pxa2xx_timer.c @@ -10,6 +10,7 @@ #include "hw.h" #include "qemu-timer.h" #include "sysemu.h" +#include "qdev.h" #include "pxa.h" #define OSMR0 0x00 @@ -428,7 +429,7 @@ static int pxa2xx_timer_load(QEMUFile *f, void *opaque, int version_id) } static pxa2xx_timer_info *pxa2xx_timer_init(target_phys_addr_t base, - qemu_irq *irqs) + DeviceState *pic) { int i; int iomemtype; @@ -443,7 +444,7 @@ static pxa2xx_timer_info *pxa2xx_timer_init(target_phys_addr_t base, for (i = 0; i < 4; i ++) { s->timer[i].value = 0; - s->timer[i].irq = irqs[i]; + s->timer[i].irq = qdev_get_gpio_in(pic, PXA2XX_PIC_OST_0 + i); s->timer[i].info = s; s->timer[i].num = i; s->timer[i].level = 0; @@ -461,24 +462,23 @@ static pxa2xx_timer_info *pxa2xx_timer_init(target_phys_addr_t base, return s; } -void pxa25x_timer_init(target_phys_addr_t base, qemu_irq *irqs) +void pxa25x_timer_init(target_phys_addr_t base, DeviceState *pic) { - pxa2xx_timer_info *s = pxa2xx_timer_init(base, irqs); + pxa2xx_timer_info *s = pxa2xx_timer_init(base, pic); s->freq = PXA25X_FREQ; s->tm4 = NULL; } -void pxa27x_timer_init(target_phys_addr_t base, - qemu_irq *irqs, qemu_irq irq4) +void pxa27x_timer_init(target_phys_addr_t base, DeviceState *pic) { - pxa2xx_timer_info *s = pxa2xx_timer_init(base, irqs); + pxa2xx_timer_info *s = pxa2xx_timer_init(base, pic); int i; s->freq = PXA27X_FREQ; s->tm4 = (PXA2xxTimer4 *) qemu_mallocz(8 * sizeof(PXA2xxTimer4)); for (i = 0; i < 8; i ++) { s->tm4[i].tm.value = 0; - s->tm4[i].tm.irq = irq4; + s->tm4[i].tm.irq = qdev_get_gpio_in(pic, PXA27X_PIC_OST_4_11); s->tm4[i].tm.info = s; s->tm4[i].tm.num = i + 4; s->tm4[i].tm.level = 0; |