[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH v4 8/8] hw/arm/tosa: Make TYPE_TOSA_MISC_GPIO a plain QDev
From: |
Philippe Mathieu-Daudé |
Subject: |
[RFC PATCH v4 8/8] hw/arm/tosa: Make TYPE_TOSA_MISC_GPIO a plain QDev |
Date: |
Mon, 7 Sep 2020 18:32:57 +0200 |
TYPE_TOSA_MISC_GPIO doesn't need to be a SysBus device,
make it a plain QDev.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
RFC because having to pass MachineState and call
object_property_add_child() simply makes things more
complex... but it seems to cleaner QOM design.
Cc: Markus Armbruster <armbru@redhat.com>
---
hw/arm/tosa.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/hw/arm/tosa.c b/hw/arm/tosa.c
index f23651fd775..524d5fcd10b 100644
--- a/hw/arm/tosa.c
+++ b/hw/arm/tosa.c
@@ -79,7 +79,7 @@ static void tosa_microdrive_attach(PXA2xxState *cpu)
OBJECT_CHECK(TosaMiscGPIOState, (obj), TYPE_TOSA_MISC_GPIO)
typedef struct TosaMiscGPIOState {
- SysBusDevice parent_obj;
+ DeviceState parent_obj;
} TosaMiscGPIOState;
static void tosa_reset(void *opaque, int line, int level)
@@ -96,7 +96,7 @@ static void tosa_misc_gpio_init(Object *obj)
qdev_init_gpio_in_named(dev, tosa_reset, "reset", 1);
}
-static void tosa_gpio_setup(PXA2xxState *cpu,
+static void tosa_gpio_setup(MachineState *machine, PXA2xxState *cpu,
DeviceState *scp0,
DeviceState *scp1,
TC6393xbState *tmio)
@@ -104,7 +104,10 @@ static void tosa_gpio_setup(PXA2xxState *cpu,
DeviceState *misc_gpio;
LEDState *led[4];
- misc_gpio = sysbus_create_simple(TYPE_TOSA_MISC_GPIO, -1, NULL);
+ misc_gpio = qdev_new(TYPE_TOSA_MISC_GPIO);
+ object_property_add_child(OBJECT(machine), "pcb-container",
+ OBJECT(misc_gpio));
+ qdev_realize_and_unref(misc_gpio, NULL, &error_fatal);
/* MMC/SD host */
pxa2xx_mmci_handlers(cpu->mmc,
@@ -253,7 +256,7 @@ static void tosa_init(MachineState *machine)
scp0 = sysbus_create_simple("scoop", 0x08800000, NULL);
scp1 = sysbus_create_simple("scoop", 0x14800040, NULL);
- tosa_gpio_setup(mpu, scp0, scp1, tmio);
+ tosa_gpio_setup(machine, mpu, scp0, scp1, tmio);
tosa_microdrive_attach(mpu);
@@ -307,7 +310,7 @@ static const TypeInfo tosa_ssp_info = {
static const TypeInfo tosa_misc_gpio_info = {
.name = TYPE_TOSA_MISC_GPIO,
- .parent = TYPE_SYS_BUS_DEVICE,
+ .parent = TYPE_DEVICE,
.instance_size = sizeof(TosaMiscGPIOState),
.instance_init = tosa_misc_gpio_init,
/*
--
2.26.2
- [PATCH v4 0/8] hw/misc: Add LED device, Philippe Mathieu-Daudé, 2020/09/07
- [PATCH v4 1/8] hw/misc/led: Add a LED device, Philippe Mathieu-Daudé, 2020/09/07
- [PATCH v4 2/8] hw/misc/led: Allow connecting from GPIO output, Philippe Mathieu-Daudé, 2020/09/07
- [PATCH v4 3/8] hw/misc/led: Emit a trace event when LED intensity has changed, Philippe Mathieu-Daudé, 2020/09/07
- [PATCH v4 4/8] hw/arm/aspeed: Add the 3 front LEDs drived by the PCA9552 #1, Philippe Mathieu-Daudé, 2020/09/07
- [PATCH v4 5/8] hw/misc/mps2-fpgaio: Use the LED device, Philippe Mathieu-Daudé, 2020/09/07
- [PATCH v4 6/8] hw/misc/mps2-scc: Use the LED device, Philippe Mathieu-Daudé, 2020/09/07
- [PATCH v4 7/8] hw/arm/tosa: Replace fprintf() calls by LED devices, Philippe Mathieu-Daudé, 2020/09/07
- [RFC PATCH v4 8/8] hw/arm/tosa: Make TYPE_TOSA_MISC_GPIO a plain QDev,
Philippe Mathieu-Daudé <=