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