xref: /openbmc/qemu/hw/fsi/lbus.c (revision 43c6a5ec9257bc3e634dcabf4ead3be4ee7dd3d6)
1 /*
2  * SPDX-License-Identifier: GPL-2.0-or-later
3  * Copyright (C) 2023 IBM Corp.
4  *
5  * IBM Local bus where FSI slaves are connected
6  */
7 
8 #include "qemu/osdep.h"
9 #include "qapi/error.h"
10 #include "hw/fsi/lbus.h"
11 
12 #include "hw/qdev-properties.h"
13 
14 static void lbus_init(Object *o)
15 {
16     FSILBus *lbus = FSI_LBUS(o);
17 
18     memory_region_init(&lbus->mr, OBJECT(lbus), TYPE_FSI_LBUS,
19                        FSI_LBUS_MEM_REGION_SIZE - FSI_LBUSDEV_IOMEM_START);
20 }
21 
22 static const TypeInfo lbus_info = {
23     .name = TYPE_FSI_LBUS,
24     .parent = TYPE_BUS,
25     .instance_init = lbus_init,
26     .instance_size = sizeof(FSILBus),
27 };
28 
29 static void lbus_device_class_init(ObjectClass *klass, void *data)
30 {
31     DeviceClass *dc = DEVICE_CLASS(klass);
32 
33     dc->bus_type = TYPE_FSI_LBUS;
34 }
35 
36 static const TypeInfo lbus_device_type_info = {
37     .name = TYPE_FSI_LBUS_DEVICE,
38     .parent = TYPE_DEVICE,
39     .instance_size = sizeof(FSILBusDevice),
40     .abstract = true,
41     .class_init = lbus_device_class_init,
42     .class_size = sizeof(FSILBusDeviceClass),
43 };
44 
45 static void lbus_register_types(void)
46 {
47     type_register_static(&lbus_info);
48     type_register_static(&lbus_device_type_info);
49 }
50 
51 type_init(lbus_register_types);
52