xref: /openbmc/qemu/include/hw/i3c/dw-i3c.h (revision c52aaabd801db3b37b3d352fb76ffb7c03271b7a)
1*c52aaabdSJoe Komlodi /*
2*c52aaabdSJoe Komlodi  * DesignWare I3C Controller
3*c52aaabdSJoe Komlodi  *
4*c52aaabdSJoe Komlodi  * Copyright (C) 2021 ASPEED Technology Inc.
5*c52aaabdSJoe Komlodi  * Copyright (C) 2025 Google, LLC.
6*c52aaabdSJoe Komlodi  *
7*c52aaabdSJoe Komlodi  * SPDX-License-Identifier: GPL-2.0-or-later
8*c52aaabdSJoe Komlodi  */
9*c52aaabdSJoe Komlodi 
10*c52aaabdSJoe Komlodi #ifndef DW_I3C_H
11*c52aaabdSJoe Komlodi #define DW_I3C_H
12*c52aaabdSJoe Komlodi 
13*c52aaabdSJoe Komlodi #include "hw/sysbus.h"
14*c52aaabdSJoe Komlodi 
15*c52aaabdSJoe Komlodi #define TYPE_DW_I3C "dw.i3c"
16*c52aaabdSJoe Komlodi OBJECT_DECLARE_SIMPLE_TYPE(DWI3C, DW_I3C)
17*c52aaabdSJoe Komlodi 
18*c52aaabdSJoe Komlodi #define DW_I3C_NR_REGS (0x300 >> 2)
19*c52aaabdSJoe Komlodi 
20*c52aaabdSJoe Komlodi typedef struct DWI3C {
21*c52aaabdSJoe Komlodi     /* <private> */
22*c52aaabdSJoe Komlodi     SysBusDevice parent;
23*c52aaabdSJoe Komlodi 
24*c52aaabdSJoe Komlodi     /* <public> */
25*c52aaabdSJoe Komlodi     MemoryRegion mr;
26*c52aaabdSJoe Komlodi     qemu_irq irq;
27*c52aaabdSJoe Komlodi 
28*c52aaabdSJoe Komlodi     uint8_t id;
29*c52aaabdSJoe Komlodi     uint32_t regs[DW_I3C_NR_REGS];
30*c52aaabdSJoe Komlodi } DWI3C;
31*c52aaabdSJoe Komlodi 
32*c52aaabdSJoe Komlodi /* Extern for other controllers that use DesignWare I3C. */
33*c52aaabdSJoe Komlodi extern const VMStateDescription vmstate_dw_i3c;
34*c52aaabdSJoe Komlodi 
35*c52aaabdSJoe Komlodi #endif /* DW_I3C_H */
36