10f4fcf18SXiaojuan Yang /* SPDX-License-Identifier: GPL-2.0-or-later */ 20f4fcf18SXiaojuan Yang /* 30f4fcf18SXiaojuan Yang * LoongArch 7A1000 I/O interrupt controller definitions 40f4fcf18SXiaojuan Yang * 50f4fcf18SXiaojuan Yang * Copyright (c) 2021 Loongson Technology Corporation Limited 60f4fcf18SXiaojuan Yang */ 70f4fcf18SXiaojuan Yang 8*deeca9cbSBibo Mao #ifndef HW_LOONGARCH_PCH_PIC_H 9*deeca9cbSBibo Mao #define HW_LOONGARCH_PCH_PIC_H 10*deeca9cbSBibo Mao 11*deeca9cbSBibo Mao #include "hw/intc/loongarch_pic_common.h" 127a5951f6SMarkus Armbruster 130f4fcf18SXiaojuan Yang #define TYPE_LOONGARCH_PCH_PIC "loongarch_pch_pic" 140f4fcf18SXiaojuan Yang #define PCH_PIC_NAME(name) TYPE_LOONGARCH_PCH_PIC#name 150f4fcf18SXiaojuan Yang OBJECT_DECLARE_SIMPLE_TYPE(LoongArchPCHPIC, LOONGARCH_PCH_PIC) 160f4fcf18SXiaojuan Yang 170f4fcf18SXiaojuan Yang struct LoongArchPCHPIC { 180f4fcf18SXiaojuan Yang SysBusDevice parent_obj; 190f4fcf18SXiaojuan Yang qemu_irq parent_irq[64]; 200f4fcf18SXiaojuan Yang uint64_t int_mask; /*0x020 interrupt mask register*/ 210f4fcf18SXiaojuan Yang uint64_t htmsi_en; /*0x040 1=msi*/ 220f4fcf18SXiaojuan Yang uint64_t intedge; /*0x060 edge=1 level =0*/ 230f4fcf18SXiaojuan Yang uint64_t intclr; /*0x080 for clean edge int,set 1 clean,set 0 is noused*/ 240f4fcf18SXiaojuan Yang uint64_t auto_crtl0; /*0x0c0*/ 250f4fcf18SXiaojuan Yang uint64_t auto_crtl1; /*0x0e0*/ 260f4fcf18SXiaojuan Yang uint64_t last_intirr; /* edge detection */ 270f4fcf18SXiaojuan Yang uint64_t intirr; /* 0x380 interrupt request register */ 280f4fcf18SXiaojuan Yang uint64_t intisr; /* 0x3a0 interrupt service register */ 290f4fcf18SXiaojuan Yang /* 300f4fcf18SXiaojuan Yang * 0x3e0 interrupt level polarity selection 310f4fcf18SXiaojuan Yang * register 0 for high level trigger 320f4fcf18SXiaojuan Yang */ 330f4fcf18SXiaojuan Yang uint64_t int_polarity; 340f4fcf18SXiaojuan Yang 350f4fcf18SXiaojuan Yang uint8_t route_entry[64]; /*0x100 - 0x138*/ 360f4fcf18SXiaojuan Yang uint8_t htmsi_vector[64]; /*0x200 - 0x238*/ 370f4fcf18SXiaojuan Yang 380f4fcf18SXiaojuan Yang MemoryRegion iomem32_low; 390f4fcf18SXiaojuan Yang MemoryRegion iomem32_high; 400f4fcf18SXiaojuan Yang MemoryRegion iomem8; 41270950b4STianrui Zhao unsigned int irq_num; 420f4fcf18SXiaojuan Yang }; 43*deeca9cbSBibo Mao #endif /* HW_LOONGARCH_PCH_PIC_H */ 44