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 8249ad85aSXiaojuan Yang #define TYPE_LOONGARCH_PCH_MSI "loongarch_pch_msi" 9249ad85aSXiaojuan Yang OBJECT_DECLARE_SIMPLE_TYPE(LoongArchPCHMSI, LOONGARCH_PCH_MSI) 10249ad85aSXiaojuan Yang 11*f4d10ce8STianrui Zhao /* MSI irq start from 32 to 255 */ 12*f4d10ce8STianrui Zhao #define PCH_MSI_IRQ_START 32 13249ad85aSXiaojuan Yang #define PCH_MSI_IRQ_END 255 14*f4d10ce8STianrui Zhao #define PCH_MSI_IRQ_NUM 224 15249ad85aSXiaojuan Yang 16249ad85aSXiaojuan Yang struct LoongArchPCHMSI { 17249ad85aSXiaojuan Yang SysBusDevice parent_obj; 186027d274STianrui Zhao qemu_irq *pch_msi_irq; 19249ad85aSXiaojuan Yang MemoryRegion msi_mmio; 20490c03abSMao Bibo /* irq base passed to upper extioi intc */ 21490c03abSMao Bibo unsigned int irq_base; 226027d274STianrui Zhao unsigned int irq_num; 23249ad85aSXiaojuan Yang }; 24