blob: 6262838585637b34f2a0544abb8cc8c3b9086120 [file] [log] [blame]
Thomas Gleixnerd2912cb2019-06-04 10:11:33 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Julien Grall502d6df2016-04-11 16:32:54 +01002/*
3 * include/linux/irqchip/arm-gic-common.h
4 *
5 * Copyright (C) 2016 ARM Limited, All Rights Reserved.
Julien Grall502d6df2016-04-11 16:32:54 +01006 */
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
Julien Thierry2130b782018-08-28 16:51:18 +010013#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
Julien Grall502d6df2016-04-11 16:32:54 +010019enum gic_type {
20 GIC_V2,
Julien Grall1839e572016-04-11 16:32:57 +010021 GIC_V3,
Julien Grall502d6df2016-04-11 16:32:54 +010022};
23
24struct gic_kvm_info {
25 /* GIC type */
26 enum gic_type type;
27 /* Virtual CPU interface */
28 struct resource vcpu;
29 /* Interrupt number */
30 unsigned int maint_irq;
31 /* Virtual control interface */
32 struct resource vctrl;
Marc Zyngier4bdf5022017-06-25 14:10:46 +010033 /* vlpi support */
34 bool has_v4;
Julien Grall502d6df2016-04-11 16:32:54 +010035};
36
37const struct gic_kvm_info *gic_get_kvm_info(void);
38
39#endif /* __LINUX_IRQCHIP_ARM_GIC_COMMON_H */