Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Copyright (C) 2002 ARM Limited, All Rights Reserved.
0004  */
0005 
0006 #ifndef _IRQ_GIC_COMMON_H
0007 #define _IRQ_GIC_COMMON_H
0008 
0009 #include <linux/of.h>
0010 #include <linux/irqdomain.h>
0011 #include <linux/irqchip/arm-gic-common.h>
0012 
0013 struct gic_quirk {
0014     const char *desc;
0015     const char *compatible;
0016     bool (*init)(void *data);
0017     u32 iidr;
0018     u32 mask;
0019 };
0020 
0021 int gic_configure_irq(unsigned int irq, unsigned int type,
0022                        void __iomem *base, void (*sync_access)(void));
0023 void gic_dist_config(void __iomem *base, int gic_irqs,
0024              void (*sync_access)(void));
0025 void gic_cpu_config(void __iomem *base, int nr, void (*sync_access)(void));
0026 void gic_enable_quirks(u32 iidr, const struct gic_quirk *quirks,
0027         void *data);
0028 void gic_enable_of_quirks(const struct device_node *np,
0029               const struct gic_quirk *quirks, void *data);
0030 
0031 #endif /* _IRQ_GIC_COMMON_H */