aboutsummaryrefslogtreecommitdiff
path: root/hw/misc/macio/gpio.c
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2021-01-13 19:18:28 +0000
committerPeter Maydell <peter.maydell@linaro.org>2021-01-13 19:18:28 +0000
commitc0dd6654f207810b16a75b673258f5ce2ceffbf0 (patch)
treea31a21f2a52aa8f42e722ae2494a0a1085175005 /hw/misc/macio/gpio.c
parent45240eed4f064576d589ea60ebadf3c11d7ab891 (diff)
parent7b3180f9110e1cee00e9acb36cb4d16bd7efabee (diff)
Merge remote-tracking branch 'remotes/mcayland/tags/qemu-macppc-20210113' into staging
qemu-macppc updates # gpg: Signature made Wed 13 Jan 2021 13:02:20 GMT # gpg: using RSA key CC621AB98E82200D915CC9C45BC2C56FAE0F321F # gpg: issuer "mark.cave-ayland@ilande.co.uk" # gpg: Good signature from "Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>" [full] # Primary key fingerprint: CC62 1AB9 8E82 200D 915C C9C4 5BC2 C56F AE0F 321F * remotes/mcayland/tags/qemu-macppc-20210113: macio: don't set user_creatable to false macio: wire macio GPIOs to OpenPIC using sysbus IRQs macio: move OpenPIC inside macio-newworld device mac_newworld: delay wiring of PCI IRQs in New World machine macio: move heathrow PIC inside macio-oldworld device mac_oldworld: move initialisation of grackle before heathrow mac_oldworld: remove duplicate bus check for PPC_INPUT(env) Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/misc/macio/gpio.c')
-rw-r--r--hw/misc/macio/gpio.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/hw/misc/macio/gpio.c b/hw/misc/macio/gpio.c
index 0fef8fb335..b1bcf830c3 100644
--- a/hw/misc/macio/gpio.c
+++ b/hw/misc/macio/gpio.c
@@ -57,10 +57,7 @@ void macio_set_gpio(MacIOGPIOState *s, uint32_t gpio, bool state)
s->gpio_regs[gpio] = new_reg;
- /* This is will work until we fix the binding between MacIO and
- * the MPIC properly so we can route all GPIOs and avoid going
- * via the top level platform code.
- *
+ /*
* Note that we probably need to get access to the MPIC config to
* decode polarity since qemu always use "raise" regardless.
*
@@ -152,25 +149,15 @@ static const MemoryRegionOps macio_gpio_ops = {
},
};
-static void macio_gpio_realize(DeviceState *dev, Error **errp)
-{
- MacIOGPIOState *s = MACIO_GPIO(dev);
-
- s->gpio_extirqs[1] = qdev_get_gpio_in(DEVICE(s->pic),
- NEWWORLD_EXTING_GPIO1);
- s->gpio_extirqs[9] = qdev_get_gpio_in(DEVICE(s->pic),
- NEWWORLD_EXTING_GPIO9);
-}
-
static void macio_gpio_init(Object *obj)
{
SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
MacIOGPIOState *s = MACIO_GPIO(obj);
+ int i;
- object_property_add_link(obj, "pic", TYPE_OPENPIC,
- (Object **) &s->pic,
- qdev_prop_allow_set_link_before_realize,
- 0);
+ for (i = 0; i < 10; i++) {
+ sysbus_init_irq(sbd, &s->gpio_extirqs[i]);
+ }
memory_region_init_io(&s->gpiomem, OBJECT(s), &macio_gpio_ops, obj,
"gpio", 0x30);
@@ -207,7 +194,6 @@ static void macio_gpio_class_init(ObjectClass *oc, void *data)
DeviceClass *dc = DEVICE_CLASS(oc);
NMIClass *nc = NMI_CLASS(oc);
- dc->realize = macio_gpio_realize;
dc->reset = macio_gpio_reset;
dc->vmsd = &vmstate_macio_gpio;
nc->nmi_monitor_handler = macio_gpio_nmi;