61 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * IPIC private definitions and structure.
 | |
|  *
 | |
|  * Maintainer: Kumar Gala <galak@kernel.crashing.org>
 | |
|  *
 | |
|  * Copyright 2005 Freescale Semiconductor, Inc
 | |
|  *
 | |
|  * This program is free software; you can redistribute  it and/or modify it
 | |
|  * under  the terms of  the GNU General  Public License as published by the
 | |
|  * Free Software Foundation;  either version 2 of the  License, or (at your
 | |
|  * option) any later version.
 | |
|  */
 | |
| #ifndef __IPIC_H__
 | |
| #define __IPIC_H__
 | |
| 
 | |
| #include <asm/ipic.h>
 | |
| 
 | |
| #define NR_IPIC_INTS 128
 | |
| 
 | |
| /* External IRQS */
 | |
| #define IPIC_IRQ_EXT0 48
 | |
| #define IPIC_IRQ_EXT1 17
 | |
| #define IPIC_IRQ_EXT7 23
 | |
| 
 | |
| /* Default Priority Registers */
 | |
| #define IPIC_PRIORITY_DEFAULT 0x05309770
 | |
| 
 | |
| /* System Global Interrupt Configuration Register */
 | |
| #define	SICFR_IPSA	0x00010000
 | |
| #define	SICFR_IPSB	0x00020000
 | |
| #define	SICFR_IPSC	0x00040000
 | |
| #define	SICFR_IPSD	0x00080000
 | |
| #define	SICFR_MPSA	0x00200000
 | |
| #define	SICFR_MPSB	0x00400000
 | |
| 
 | |
| /* System External Interrupt Mask Register */
 | |
| #define	SEMSR_SIRQ0	0x00008000
 | |
| 
 | |
| /* System Error Control Register */
 | |
| #define SERCR_MCPR	0x00000001
 | |
| 
 | |
| struct ipic {
 | |
| 	volatile u32 __iomem	*regs;
 | |
| 
 | |
| 	/* The remapper for this IPIC */
 | |
| 	struct irq_host		*irqhost;
 | |
| };
 | |
| 
 | |
| struct ipic_info {
 | |
| 	u8	ack;		/* pending register offset from base if the irq
 | |
| 				   supports ack operation */
 | |
| 	u8	mask;		/* mask register offset from base */
 | |
| 	u8	prio;		/* priority register offset from base */
 | |
| 	u8	force;		/* force register offset from base */
 | |
| 	u8	bit;		/* register bit position (as per doc)
 | |
| 				   bit mask = 1 << (31 - bit) */
 | |
| 	u8	prio_mask;	/* priority mask value */
 | |
| };
 | |
| 
 | |
| #endif /* __IPIC_H__ */
 |