ppc/ppc405: Use an explicit I2C object
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. Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> 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> Message-Id: <68eb8b5ac408ca8cc981ebf53a3e154c0d34c7f6.1660746880.git.balaton@eik.bme.hu> Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
This commit is contained in:
parent
a55b213646
commit
111913fb2d
@ -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;
|
||||
|
@ -1096,6 +1096,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);
|
||||
@ -1188,8 +1190,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);
|
||||
|
Loading…
Reference in New Issue
Block a user