162306a36Sopenharmony_ci/*
262306a36Sopenharmony_ci * EHV_PIC private definitions and structure.
362306a36Sopenharmony_ci *
462306a36Sopenharmony_ci * Copyright 2008-2010 Freescale Semiconductor, Inc.
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * This file is licensed under the terms of the GNU General Public License
762306a36Sopenharmony_ci * version 2.  This program is licensed "as is" without any warranty of any
862306a36Sopenharmony_ci * kind, whether express or implied.
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci#ifndef __EHV_PIC_H__
1162306a36Sopenharmony_ci#define __EHV_PIC_H__
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#include <linux/irq.h>
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#define NR_EHV_PIC_INTS 1024
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci#define EHV_PIC_INFO(name) EHV_PIC_##name
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#define EHV_PIC_VECPRI_POLARITY_NEGATIVE 0
2062306a36Sopenharmony_ci#define EHV_PIC_VECPRI_POLARITY_POSITIVE 1
2162306a36Sopenharmony_ci#define EHV_PIC_VECPRI_SENSE_EDGE 0
2262306a36Sopenharmony_ci#define EHV_PIC_VECPRI_SENSE_LEVEL 0x2
2362306a36Sopenharmony_ci#define EHV_PIC_VECPRI_POLARITY_MASK 0x1
2462306a36Sopenharmony_ci#define EHV_PIC_VECPRI_SENSE_MASK 0x2
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_cistruct ehv_pic {
2762306a36Sopenharmony_ci	/* The remapper for this EHV_PIC */
2862306a36Sopenharmony_ci	struct irq_domain	*irqhost;
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci	/* The "linux" controller struct */
3162306a36Sopenharmony_ci	struct irq_chip	hc_irq;
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci	/* core int flag */
3462306a36Sopenharmony_ci	int coreint_flag;
3562306a36Sopenharmony_ci};
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_civoid ehv_pic_init(void);
3862306a36Sopenharmony_ciunsigned int ehv_pic_get_irq(void);
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci#endif /* __EHV_PIC_H__ */
41