1249ad85aSXiaojuan Yang /* SPDX-License-Identifier: GPL-2.0-or-later */ 2249ad85aSXiaojuan Yang /* 3249ad85aSXiaojuan Yang * LoongArch 7A1000 I/O interrupt controller definitions 4249ad85aSXiaojuan Yang * 5249ad85aSXiaojuan Yang * Copyright (C) 2021 Loongson Technology Corporation Limited 6249ad85aSXiaojuan Yang */ 7249ad85aSXiaojuan Yang 8*7a5951f6SMarkus Armbruster #include "hw/sysbus.h" 9*7a5951f6SMarkus Armbruster 10249ad85aSXiaojuan Yang #define TYPE_LOONGARCH_PCH_MSI "loongarch_pch_msi" 11249ad85aSXiaojuan Yang OBJECT_DECLARE_SIMPLE_TYPE(LoongArchPCHMSI, LOONGARCH_PCH_MSI) 12249ad85aSXiaojuan Yang 13f4d10ce8STianrui Zhao /* MSI irq start from 32 to 255 */ 14f4d10ce8STianrui Zhao #define PCH_MSI_IRQ_START 32 15249ad85aSXiaojuan Yang #define PCH_MSI_IRQ_END 255 16f4d10ce8STianrui Zhao #define PCH_MSI_IRQ_NUM 224 17249ad85aSXiaojuan Yang 18249ad85aSXiaojuan Yang struct LoongArchPCHMSI { 19249ad85aSXiaojuan Yang SysBusDevice parent_obj; 206027d274STianrui Zhao qemu_irq *pch_msi_irq; 21249ad85aSXiaojuan Yang MemoryRegion msi_mmio; 22490c03abSMao Bibo /* irq base passed to upper extioi intc */ 23490c03abSMao Bibo unsigned int irq_base; 246027d274STianrui Zhao unsigned int irq_num; 25249ad85aSXiaojuan Yang }; 26