xref: /openbmc/qemu/include/hw/intc/goldfish_pic.h (revision 87855593)
1*87855593SLaurent Vivier /*
2*87855593SLaurent Vivier  * SPDX-License-Identifer: GPL-2.0-or-later
3*87855593SLaurent Vivier  *
4*87855593SLaurent Vivier  * Goldfish PIC
5*87855593SLaurent Vivier  *
6*87855593SLaurent Vivier  * (c) 2020 Laurent Vivier <laurent@vivier.eu>
7*87855593SLaurent Vivier  *
8*87855593SLaurent Vivier  */
9*87855593SLaurent Vivier 
10*87855593SLaurent Vivier #ifndef HW_INTC_GOLDFISH_PIC_H
11*87855593SLaurent Vivier #define HW_INTC_GOLDFISH_PIC_H
12*87855593SLaurent Vivier 
13*87855593SLaurent Vivier #define TYPE_GOLDFISH_PIC "goldfish_pic"
14*87855593SLaurent Vivier OBJECT_DECLARE_SIMPLE_TYPE(GoldfishPICState, GOLDFISH_PIC)
15*87855593SLaurent Vivier 
16*87855593SLaurent Vivier #define GOLDFISH_PIC_IRQ_NB 32
17*87855593SLaurent Vivier 
18*87855593SLaurent Vivier struct GoldfishPICState {
19*87855593SLaurent Vivier     SysBusDevice parent_obj;
20*87855593SLaurent Vivier 
21*87855593SLaurent Vivier     MemoryRegion iomem;
22*87855593SLaurent Vivier     qemu_irq irq;
23*87855593SLaurent Vivier 
24*87855593SLaurent Vivier     uint32_t pending;
25*87855593SLaurent Vivier     uint32_t enabled;
26*87855593SLaurent Vivier 
27*87855593SLaurent Vivier     /* statistics */
28*87855593SLaurent Vivier     uint64_t stats_irq_count[32];
29*87855593SLaurent Vivier     /* for tracing */
30*87855593SLaurent Vivier     uint8_t idx;
31*87855593SLaurent Vivier };
32*87855593SLaurent Vivier 
33*87855593SLaurent Vivier #endif
34