1*eb04c35dSNinad Palsule /* 2*eb04c35dSNinad Palsule * SPDX-License-Identifier: GPL-2.0-or-later 3*eb04c35dSNinad Palsule * Copyright (C) 2024 IBM Corp. 4*eb04c35dSNinad Palsule * 5*eb04c35dSNinad Palsule * ASPEED APB2OPB Bridge 6*eb04c35dSNinad Palsule * IBM On-Chip Peripheral Bus 7*eb04c35dSNinad Palsule */ 8*eb04c35dSNinad Palsule #ifndef FSI_ASPEED_APB2OPB_H 9*eb04c35dSNinad Palsule #define FSI_ASPEED_APB2OPB_H 10*eb04c35dSNinad Palsule 11*eb04c35dSNinad Palsule #include "exec/memory.h" 12*eb04c35dSNinad Palsule #include "hw/fsi/fsi-master.h" 13*eb04c35dSNinad Palsule #include "hw/sysbus.h" 14*eb04c35dSNinad Palsule 15*eb04c35dSNinad Palsule #define TYPE_FSI_OPB "fsi.opb" 16*eb04c35dSNinad Palsule 17*eb04c35dSNinad Palsule #define TYPE_OP_BUS "opb" 18*eb04c35dSNinad Palsule OBJECT_DECLARE_SIMPLE_TYPE(OPBus, OP_BUS) 19*eb04c35dSNinad Palsule 20*eb04c35dSNinad Palsule typedef struct OPBus { 21*eb04c35dSNinad Palsule BusState bus; 22*eb04c35dSNinad Palsule 23*eb04c35dSNinad Palsule MemoryRegion mr; 24*eb04c35dSNinad Palsule AddressSpace as; 25*eb04c35dSNinad Palsule } OPBus; 26*eb04c35dSNinad Palsule 27*eb04c35dSNinad Palsule #define TYPE_ASPEED_APB2OPB "aspeed.apb2opb" 28*eb04c35dSNinad Palsule OBJECT_DECLARE_SIMPLE_TYPE(AspeedAPB2OPBState, ASPEED_APB2OPB) 29*eb04c35dSNinad Palsule 30*eb04c35dSNinad Palsule #define ASPEED_APB2OPB_NR_REGS ((0xe8 >> 2) + 1) 31*eb04c35dSNinad Palsule 32*eb04c35dSNinad Palsule #define ASPEED_FSI_NUM 2 33*eb04c35dSNinad Palsule 34*eb04c35dSNinad Palsule typedef struct AspeedAPB2OPBState { 35*eb04c35dSNinad Palsule SysBusDevice parent_obj; 36*eb04c35dSNinad Palsule 37*eb04c35dSNinad Palsule MemoryRegion iomem; 38*eb04c35dSNinad Palsule 39*eb04c35dSNinad Palsule uint32_t regs[ASPEED_APB2OPB_NR_REGS]; 40*eb04c35dSNinad Palsule qemu_irq irq; 41*eb04c35dSNinad Palsule 42*eb04c35dSNinad Palsule OPBus opb[ASPEED_FSI_NUM]; 43*eb04c35dSNinad Palsule FSIMasterState fsi[ASPEED_FSI_NUM]; 44*eb04c35dSNinad Palsule } AspeedAPB2OPBState; 45*eb04c35dSNinad Palsule 46*eb04c35dSNinad Palsule #endif /* FSI_ASPEED_APB2OPB_H */ 47