linux/include/linux/irqchip/arm-gic-common.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * include/linux/irqchip/arm-gic-common.h
   4 *
   5 * Copyright (C) 2016 ARM Limited, All Rights Reserved.
   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
  19enum gic_type {
  20        GIC_V2,
  21        GIC_V3,
  22};
  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;
  33        /* vlpi support */
  34        bool            has_v4;
  35};
  36
  37const struct gic_kvm_info *gic_get_kvm_info(void);
  38
  39struct irq_domain;
  40struct fwnode_handle;
  41int gicv2m_init(struct fwnode_handle *parent_handle,
  42                struct irq_domain *parent);
  43
  44#endif /* __LINUX_IRQCHIP_ARM_GIC_COMMON_H */
  45