/* SPDX-License-Identifier: GPL-2.0-only */ /* * include/linux/irqchip/arm-gic-common.h * * Copyright (C) 2016 ARM Limited, All Rights Reserved. */ #ifndef __LINUX_IRQCHIP_ARM_GIC_COMMON_H #define __LINUX_IRQCHIP_ARM_GIC_COMMON_H #include <linux/types.h> #include <linux/ioport.h> #define GICD_INT_DEF_PRI 0xa0 #define GICD_INT_DEF_PRI_X4 ((GICD_INT_DEF_PRI << 24) |\ (GICD_INT_DEF_PRI << 16) |\ (GICD_INT_DEF_PRI << 8) |\ GICD_INT_DEF_PRI) enum gic_type { GIC_V2, GIC_V3, }; struct gic_kvm_info { /* GIC type */ enum gic_type type; /* Virtual CPU interface */ struct resource vcpu; /* Interrupt number */ unsigned int maint_irq; /* Virtual control interface */ struct resource vctrl; /* vlpi support */ bool has_v4; }; const struct gic_kvm_info *gic_get_kvm_info(void); struct irq_domain; struct fwnode_handle; int gicv2m_init(struct fwnode_handle *parent_handle, struct irq_domain *parent); #endif /* __LINUX_IRQCHIP_ARM_GIC_COMMON_H */ |