xref: /openbmc/qemu/include/hw/intc/m68k_irqc.h (revision 4a6a6cb60de80e9e90d9915abfec8d3d9fcc157c)
12fde99eeSLaurent Vivier /*
265b4c8c7SPhilippe Mathieu-Daudé  * SPDX-License-Identifier: GPL-2.0-or-later
32fde99eeSLaurent Vivier  *
42fde99eeSLaurent Vivier  * QEMU Motorola 680x0 IRQ Controller
52fde99eeSLaurent Vivier  *
62fde99eeSLaurent Vivier  * (c) 2020 Laurent Vivier <laurent@vivier.eu>
72fde99eeSLaurent Vivier  *
82fde99eeSLaurent Vivier  */
92fde99eeSLaurent Vivier 
102fde99eeSLaurent Vivier #ifndef M68K_IRQC_H
112fde99eeSLaurent Vivier #define M68K_IRQC_H
122fde99eeSLaurent Vivier 
132fde99eeSLaurent Vivier #include "hw/sysbus.h"
142fde99eeSLaurent Vivier 
152fde99eeSLaurent Vivier #define TYPE_M68K_IRQC "m68k-irq-controller"
162fde99eeSLaurent Vivier #define M68K_IRQC(obj) OBJECT_CHECK(M68KIRQCState, (obj), \
172fde99eeSLaurent Vivier                                     TYPE_M68K_IRQC)
182fde99eeSLaurent Vivier 
192fde99eeSLaurent Vivier #define M68K_IRQC_AUTOVECTOR_BASE 25
202fde99eeSLaurent Vivier 
212fde99eeSLaurent Vivier enum {
222fde99eeSLaurent Vivier     M68K_IRQC_LEVEL_1 = 0,
232fde99eeSLaurent Vivier     M68K_IRQC_LEVEL_2,
242fde99eeSLaurent Vivier     M68K_IRQC_LEVEL_3,
252fde99eeSLaurent Vivier     M68K_IRQC_LEVEL_4,
262fde99eeSLaurent Vivier     M68K_IRQC_LEVEL_5,
272fde99eeSLaurent Vivier     M68K_IRQC_LEVEL_6,
282fde99eeSLaurent Vivier     M68K_IRQC_LEVEL_7,
292fde99eeSLaurent Vivier };
302fde99eeSLaurent Vivier #define M68K_IRQC_LEVEL_NUM (M68K_IRQC_LEVEL_7 - M68K_IRQC_LEVEL_1 + 1)
312fde99eeSLaurent Vivier 
322fde99eeSLaurent Vivier typedef struct M68KIRQCState {
332fde99eeSLaurent Vivier     SysBusDevice parent_obj;
342fde99eeSLaurent Vivier 
352fde99eeSLaurent Vivier     uint8_t ipr;
36*b8fc6195SPhilippe Mathieu-Daudé     ArchCPU *cpu;
372fde99eeSLaurent Vivier 
382fde99eeSLaurent Vivier     /* statistics */
392fde99eeSLaurent Vivier     uint64_t stats_irq_count[M68K_IRQC_LEVEL_NUM];
402fde99eeSLaurent Vivier } M68KIRQCState;
412fde99eeSLaurent Vivier 
422fde99eeSLaurent Vivier #endif
43