xref: /openbmc/qemu/include/hw/intc/goldfish_pic.h (revision 7a5951f6)
187855593SLaurent Vivier /*
265b4c8c7SPhilippe Mathieu-Daudé  * SPDX-License-Identifier: GPL-2.0-or-later
387855593SLaurent Vivier  *
487855593SLaurent Vivier  * Goldfish PIC
587855593SLaurent Vivier  *
687855593SLaurent Vivier  * (c) 2020 Laurent Vivier <laurent@vivier.eu>
787855593SLaurent Vivier  *
887855593SLaurent Vivier  */
987855593SLaurent Vivier 
1087855593SLaurent Vivier #ifndef HW_INTC_GOLDFISH_PIC_H
1187855593SLaurent Vivier #define HW_INTC_GOLDFISH_PIC_H
1287855593SLaurent Vivier 
13*7a5951f6SMarkus Armbruster #include "hw/sysbus.h"
14*7a5951f6SMarkus Armbruster 
1587855593SLaurent Vivier #define TYPE_GOLDFISH_PIC "goldfish_pic"
1687855593SLaurent Vivier OBJECT_DECLARE_SIMPLE_TYPE(GoldfishPICState, GOLDFISH_PIC)
1787855593SLaurent Vivier 
1887855593SLaurent Vivier #define GOLDFISH_PIC_IRQ_NB 32
1987855593SLaurent Vivier 
2087855593SLaurent Vivier struct GoldfishPICState {
2187855593SLaurent Vivier     SysBusDevice parent_obj;
2287855593SLaurent Vivier 
2387855593SLaurent Vivier     MemoryRegion iomem;
2487855593SLaurent Vivier     qemu_irq irq;
2587855593SLaurent Vivier 
2687855593SLaurent Vivier     uint32_t pending;
2787855593SLaurent Vivier     uint32_t enabled;
2887855593SLaurent Vivier 
2987855593SLaurent Vivier     /* statistics */
3087855593SLaurent Vivier     uint64_t stats_irq_count[32];
3187855593SLaurent Vivier     /* for tracing */
3287855593SLaurent Vivier     uint8_t idx;
3387855593SLaurent Vivier };
3487855593SLaurent Vivier 
3587855593SLaurent Vivier #endif
36