1502d6df1SJulien Grall /* 2502d6df1SJulien Grall * include/linux/irqchip/arm-gic-common.h 3502d6df1SJulien Grall * 4502d6df1SJulien Grall * Copyright (C) 2016 ARM Limited, All Rights Reserved. 5502d6df1SJulien Grall * 6502d6df1SJulien Grall * This program is free software; you can redistribute it and/or modify 7502d6df1SJulien Grall * it under the terms of the GNU General Public License version 2 as 8502d6df1SJulien Grall * published by the Free Software Foundation. 9502d6df1SJulien Grall */ 10502d6df1SJulien Grall #ifndef __LINUX_IRQCHIP_ARM_GIC_COMMON_H 11502d6df1SJulien Grall #define __LINUX_IRQCHIP_ARM_GIC_COMMON_H 12502d6df1SJulien Grall 13502d6df1SJulien Grall #include <linux/types.h> 14502d6df1SJulien Grall #include <linux/ioport.h> 15502d6df1SJulien Grall 16*2130b789SJulien Thierry #define GICD_INT_DEF_PRI 0xa0 17*2130b789SJulien Thierry #define GICD_INT_DEF_PRI_X4 ((GICD_INT_DEF_PRI << 24) |\ 18*2130b789SJulien Thierry (GICD_INT_DEF_PRI << 16) |\ 19*2130b789SJulien Thierry (GICD_INT_DEF_PRI << 8) |\ 20*2130b789SJulien Thierry GICD_INT_DEF_PRI) 21*2130b789SJulien Thierry 22502d6df1SJulien Grall enum gic_type { 23502d6df1SJulien Grall GIC_V2, 241839e576SJulien Grall GIC_V3, 25502d6df1SJulien Grall }; 26502d6df1SJulien Grall 27502d6df1SJulien Grall struct gic_kvm_info { 28502d6df1SJulien Grall /* GIC type */ 29502d6df1SJulien Grall enum gic_type type; 30502d6df1SJulien Grall /* Virtual CPU interface */ 31502d6df1SJulien Grall struct resource vcpu; 32502d6df1SJulien Grall /* Interrupt number */ 33502d6df1SJulien Grall unsigned int maint_irq; 34502d6df1SJulien Grall /* Virtual control interface */ 35502d6df1SJulien Grall struct resource vctrl; 364bdf5025SMarc Zyngier /* vlpi support */ 374bdf5025SMarc Zyngier bool has_v4; 38502d6df1SJulien Grall }; 39502d6df1SJulien Grall 40502d6df1SJulien Grall const struct gic_kvm_info *gic_get_kvm_info(void); 41502d6df1SJulien Grall 42502d6df1SJulien Grall #endif /* __LINUX_IRQCHIP_ARM_GIC_COMMON_H */ 43