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