xref: /linux/include/linux/irqchip/arm-gic-common.h (revision 2b64b2ed277ff23e785fbdb65098ee7e1252d64f)
1 /*
2  * include/linux/irqchip/arm-gic-common.h
3  *
4  * Copyright (C) 2016 ARM Limited, All Rights Reserved.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10 #ifndef __LINUX_IRQCHIP_ARM_GIC_COMMON_H
11 #define __LINUX_IRQCHIP_ARM_GIC_COMMON_H
12 
13 #include <linux/types.h>
14 #include <linux/ioport.h>
15 
16 #define GICD_INT_DEF_PRI		0xa0
17 #define GICD_INT_DEF_PRI_X4		((GICD_INT_DEF_PRI << 24) |\
18 					(GICD_INT_DEF_PRI << 16) |\
19 					(GICD_INT_DEF_PRI << 8) |\
20 					GICD_INT_DEF_PRI)
21 
22 enum gic_type {
23 	GIC_V2,
24 	GIC_V3,
25 };
26 
27 struct gic_kvm_info {
28 	/* GIC type */
29 	enum gic_type	type;
30 	/* Virtual CPU interface */
31 	struct resource vcpu;
32 	/* Interrupt number */
33 	unsigned int	maint_irq;
34 	/* Virtual control interface */
35 	struct resource vctrl;
36 	/* vlpi support */
37 	bool		has_v4;
38 };
39 
40 const struct gic_kvm_info *gic_get_kvm_info(void);
41 
42 #endif /* __LINUX_IRQCHIP_ARM_GIC_COMMON_H */
43