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