1*ca033107SNinad Palsule /* 2*ca033107SNinad Palsule * SPDX-License-Identifier: GPL-2.0-or-later 3*ca033107SNinad Palsule * Copyright (C) 2024 IBM Corp. 4*ca033107SNinad Palsule * 5*ca033107SNinad Palsule * IBM Flexible Service Interface Master 6*ca033107SNinad Palsule */ 7*ca033107SNinad Palsule #ifndef FSI_FSI_MASTER_H 8*ca033107SNinad Palsule #define FSI_FSI_MASTER_H 9*ca033107SNinad Palsule 10*ca033107SNinad Palsule #include "exec/memory.h" 11*ca033107SNinad Palsule #include "hw/qdev-core.h" 12*ca033107SNinad Palsule #include "hw/fsi/fsi.h" 13*ca033107SNinad Palsule #include "hw/fsi/cfam.h" 14*ca033107SNinad Palsule 15*ca033107SNinad Palsule #define TYPE_FSI_MASTER "fsi.master" 16*ca033107SNinad Palsule OBJECT_DECLARE_SIMPLE_TYPE(FSIMasterState, FSI_MASTER) 17*ca033107SNinad Palsule 18*ca033107SNinad Palsule #define FSI_MASTER_NR_REGS ((0x2e0 >> 2) + 1) 19*ca033107SNinad Palsule 20*ca033107SNinad Palsule typedef struct FSIMasterState { 21*ca033107SNinad Palsule DeviceState parent; 22*ca033107SNinad Palsule MemoryRegion iomem; 23*ca033107SNinad Palsule MemoryRegion opb2fsi; 24*ca033107SNinad Palsule 25*ca033107SNinad Palsule FSIBus bus; 26*ca033107SNinad Palsule 27*ca033107SNinad Palsule uint32_t regs[FSI_MASTER_NR_REGS]; 28*ca033107SNinad Palsule FSICFAMState cfam; 29*ca033107SNinad Palsule } FSIMasterState; 30*ca033107SNinad Palsule 31*ca033107SNinad Palsule 32*ca033107SNinad Palsule #endif /* FSI_FSI_H */ 33