1
2
3
4
5
6
7 #ifndef __LINUX_IRQCHIP_ARM_GIC_COMMON_H
8 #define __LINUX_IRQCHIP_ARM_GIC_COMMON_H
9
10 #include <linux/types.h>
11 #include <linux/ioport.h>
12
13 #define GICD_INT_DEF_PRI 0xa0
14 #define GICD_INT_DEF_PRI_X4 ((GICD_INT_DEF_PRI << 24) |\
15 (GICD_INT_DEF_PRI << 16) |\
16 (GICD_INT_DEF_PRI << 8) |\
17 GICD_INT_DEF_PRI)
18
19 enum gic_type {
20 GIC_V2,
21 GIC_V3,
22 };
23
24 struct gic_kvm_info {
25
26 enum gic_type type;
27
28 struct resource vcpu;
29
30 unsigned int maint_irq;
31
32 struct resource vctrl;
33
34 bool has_v4;
35 };
36
37 const struct gic_kvm_info *gic_get_kvm_info(void);
38
39 struct irq_domain;
40 struct fwnode_handle;
41 int gicv2m_init(struct fwnode_handle *parent_handle,
42 struct irq_domain *parent);
43
44 #endif