[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 18/31] ppc/ppc405: Use an explicit I2C object
From: |
BALATON Zoltan |
Subject: |
[PATCH v2 18/31] ppc/ppc405: Use an explicit I2C object |
Date: |
Wed, 17 Aug 2022 17:08:36 +0200 (CEST) |
From: Cédric Le Goater <clg@kaod.org>
Having an explicit I2C model object will help if one day we want to
add I2C devices on the bus from the machine init routine.
Signed-off-by: Cédric Le Goater <clg@kaod.org>
[balaton: Symplify sysbus device casts for readibility]
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
---
hw/ppc/ppc405.h | 2 ++
hw/ppc/ppc405_uc.c | 10 ++++++++--
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/hw/ppc/ppc405.h b/hw/ppc/ppc405.h
index 67f4c14f50..efa29fdfb1 100644
--- a/hw/ppc/ppc405.h
+++ b/hw/ppc/ppc405.h
@@ -28,6 +28,7 @@
#include "qom/object.h"
#include "hw/ppc/ppc4xx.h"
#include "hw/intc/ppc-uic.h"
+#include "hw/i2c/ppc4xx_i2c.h"
#define PPC405EP_SDRAM_BASE 0x00000000
#define PPC405EP_NVRAM_BASE 0xF0000000
@@ -215,6 +216,7 @@ struct Ppc405SoCState {
Ppc405OcmState ocm;
Ppc405GpioState gpio;
Ppc405DmaState dma;
+ PPC4xxI2CState i2c;
Ppc4xxEbcState ebc;
Ppc405OpbaState opba;
Ppc405PobState pob;
diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c
index c070102b14..54a51594ca 100644
--- a/hw/ppc/ppc405_uc.c
+++ b/hw/ppc/ppc405_uc.c
@@ -1093,6 +1093,8 @@ static void ppc405_soc_instance_init(Object *obj)
object_initialize_child(obj, "dma", &s->dma, TYPE_PPC405_DMA);
+ object_initialize_child(obj, "i2c", &s->i2c, TYPE_PPC4xx_I2C);
+
object_initialize_child(obj, "ebc", &s->ebc, TYPE_PPC4xx_EBC);
object_initialize_child(obj, "opba", &s->opba, TYPE_PPC405_OPBA);
@@ -1185,8 +1187,12 @@ static void ppc405_soc_realize(DeviceState *dev, Error
**errp)
}
/* I2C controller */
- sysbus_create_simple(TYPE_PPC4xx_I2C, 0xef600500,
- qdev_get_gpio_in(DEVICE(&s->uic), 2));
+ sbd = SYS_BUS_DEVICE(&s->i2c);
+ if (!sysbus_realize(sbd, errp)) {
+ return;
+ }
+ sysbus_mmio_map(sbd, 0, 0xef600500);
+ sysbus_connect_irq(sbd, 0, qdev_get_gpio_in(DEVICE(&s->uic), 2));
/* GPIO */
sbd = SYS_BUS_DEVICE(&s->gpio);
--
2.30.4
- [PATCH v2 12/31] ppc4xx: Move PLB model to ppc4xx_devs.c, (continued)
- [PATCH v2 12/31] ppc4xx: Move PLB model to ppc4xx_devs.c, BALATON Zoltan, 2022/08/17
- [PATCH v2 11/31] ppc/ppc405: QOM'ify MAL, BALATON Zoltan, 2022/08/17
- [PATCH v2 15/31] ppc4xx: Rename ppc405-ebc to ppc4xx-ebc, BALATON Zoltan, 2022/08/17
- [PATCH v2 14/31] ppc4xx: Move EBC model to ppc4xx_devs.c, BALATON Zoltan, 2022/08/17
- [PATCH v2 17/31] hw/intc/ppc-uic: Convert ppc-uic to a PPC4xx DCR device, BALATON Zoltan, 2022/08/17
- [PATCH v2 05/31] ppc/ppc405: QOM'ify GPIO, BALATON Zoltan, 2022/08/17
- [PATCH v2 02/31] ppc/ppc405: QOM'ify CPC, BALATON Zoltan, 2022/08/17
- [PATCH v2 13/31] ppc4xx: Rename ppc405-plb to ppc4xx-plb, BALATON Zoltan, 2022/08/17
- [PATCH v2 21/31] hw/ppc/Kconfig: Remove PPC405 dependency from sam460ex, BALATON Zoltan, 2022/08/17
- [PATCH v2 18/31] ppc/ppc405: Use an explicit I2C object,
BALATON Zoltan <=
- [PATCH v2 07/31] ppc/ppc405: QOM'ify EBC, BALATON Zoltan, 2022/08/17
- [PATCH v2 22/31] hw/ppc/Kconfig: Move imply before select, BALATON Zoltan, 2022/08/17
- [PATCH v2 19/31] ppc/ppc405: QOM'ify FPGA, BALATON Zoltan, 2022/08/17
- [PATCH v2 20/31] ppc405: Move machine specific code to ppc405_boards.c, BALATON Zoltan, 2022/08/17
- [PATCH v2 08/31] ppc/ppc405: QOM'ify OPBA, BALATON Zoltan, 2022/08/17
- [PATCH v2 16/31] ppc/ppc405: Use an embedded PPCUIC model in SoC state, BALATON Zoltan, 2022/08/17
- [PATCH v2 26/31] ppc4xx: Introduce Ppc4xxSdramBank struct, BALATON Zoltan, 2022/08/17
- [PATCH v2 23/31] ppc/ppc4xx: Fix sdram trace events, BALATON Zoltan, 2022/08/17
- [PATCH v2 24/31] ppc4xx: Fix code style problems reported by checkpatch, BALATON Zoltan, 2022/08/17