1*00cc96f0SAndrew Jones /* 2*00cc96f0SAndrew Jones * Copyright (C) 2016, Red Hat Inc, Andrew Jones <drjones@redhat.com> 3*00cc96f0SAndrew Jones * 4*00cc96f0SAndrew Jones * This work is licensed under the terms of the GNU LGPL, version 2. 5*00cc96f0SAndrew Jones */ 6*00cc96f0SAndrew Jones #ifndef _ASMARM_GIC_H_ 7*00cc96f0SAndrew Jones #define _ASMARM_GIC_H_ 8*00cc96f0SAndrew Jones 9*00cc96f0SAndrew Jones #include <asm/gic-v2.h> 10*00cc96f0SAndrew Jones 11*00cc96f0SAndrew Jones /* Distributor registers */ 12*00cc96f0SAndrew Jones #define GICD_CTLR 0x0000 13*00cc96f0SAndrew Jones #define GICD_TYPER 0x0004 14*00cc96f0SAndrew Jones #define GICD_ISENABLER 0x0100 15*00cc96f0SAndrew Jones #define GICD_IPRIORITYR 0x0400 16*00cc96f0SAndrew Jones 17*00cc96f0SAndrew Jones #define GICD_TYPER_IRQS(typer) ((((typer) & 0x1f) + 1) * 32) 18*00cc96f0SAndrew Jones #define GICD_INT_EN_SET_SGI 0x0000ffff 19*00cc96f0SAndrew Jones #define GICD_INT_DEF_PRI_X4 0xa0a0a0a0 20*00cc96f0SAndrew Jones 21*00cc96f0SAndrew Jones /* CPU interface registers */ 22*00cc96f0SAndrew Jones #define GICC_CTLR 0x0000 23*00cc96f0SAndrew Jones #define GICC_PMR 0x0004 24*00cc96f0SAndrew Jones 25*00cc96f0SAndrew Jones #define GICC_INT_PRI_THRESHOLD 0xf0 26*00cc96f0SAndrew Jones 27*00cc96f0SAndrew Jones #ifndef __ASSEMBLY__ 28*00cc96f0SAndrew Jones 29*00cc96f0SAndrew Jones /* 30*00cc96f0SAndrew Jones * gic_init will try to find all known gics, and then 31*00cc96f0SAndrew Jones * initialize the gic data for the one found. 32*00cc96f0SAndrew Jones * returns 33*00cc96f0SAndrew Jones * 0 : no gic was found 34*00cc96f0SAndrew Jones * > 0 : the gic version of the gic found 35*00cc96f0SAndrew Jones */ 36*00cc96f0SAndrew Jones extern int gic_init(void); 37*00cc96f0SAndrew Jones 38*00cc96f0SAndrew Jones #endif /* !__ASSEMBLY__ */ 39*00cc96f0SAndrew Jones #endif /* _ASMARM_GIC_H_ */ 40