2014-06-30 19:01:30 +04:00
/*
* Copyright ( C ) 2002 ARM Limited , All Rights Reserved .
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < http : //www.gnu.org/licenses/>.
*/
# ifndef _IRQ_GIC_COMMON_H
# define _IRQ_GIC_COMMON_H
# include <linux/of.h>
# include <linux/irqdomain.h>
2016-04-11 18:32:54 +03:00
# include <linux/irqchip/arm-gic-common.h>
2014-06-30 19:01:30 +04:00
2015-09-21 23:58:37 +03:00
struct gic_quirk {
const char * desc ;
2018-12-10 16:56:31 +03:00
const char * compatible ;
2017-10-17 19:55:55 +03:00
bool ( * init ) ( void * data ) ;
2015-09-21 23:58:37 +03:00
u32 iidr ;
u32 mask ;
} ;
2015-01-20 19:52:59 +03:00
int gic_configure_irq ( unsigned int irq , unsigned int type ,
2014-06-30 19:01:30 +04:00
void __iomem * base , void ( * sync_access ) ( void ) ) ;
void gic_dist_config ( void __iomem * base , int gic_irqs ,
void ( * sync_access ) ( void ) ) ;
void gic_cpu_config ( void __iomem * base , void ( * sync_access ) ( void ) ) ;
2015-09-21 23:58:37 +03:00
void gic_enable_quirks ( u32 iidr , const struct gic_quirk * quirks ,
void * data ) ;
2018-12-10 16:56:31 +03:00
void gic_enable_of_quirks ( const struct device_node * np ,
const struct gic_quirk * quirks , void * data ) ;
2014-06-30 19:01:30 +04:00
2016-04-11 18:32:54 +03:00
void gic_set_kvm_info ( const struct gic_kvm_info * info ) ;
2014-06-30 19:01:30 +04:00
# endif /* _IRQ_GIC_COMMON_H */