Merge tag 'for-4.21' of git://git.armlinux.org.uk/~rmk/linux-arm
[linux-2.6-block.git] / include / linux / irqchip / arm-gic-common.h
CommitLineData
502d6df1
JG
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
2130b789
JT
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
502d6df1
JG
22enum gic_type {
23 GIC_V2,
1839e576 24 GIC_V3,
502d6df1
JG
25};
26
27struct 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;
4bdf5025
MZ
36 /* vlpi support */
37 bool has_v4;
502d6df1
JG
38};
39
40const struct gic_kvm_info *gic_get_kvm_info(void);
41
42#endif /* __LINUX_IRQCHIP_ARM_GIC_COMMON_H */