xref: /openbmc/qemu/include/hw/fsi/fsi-master.h (revision 2e50d22bfb403d1fb85788196815085ba45f777c)
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