 bae1d8f199
			
		
	
	
	bae1d8f199
	
	
	
		
			
			This patch drops the powerpc-specific irq_host structures and uses the common irq_domain strucutres defined in linux/irqdomain.h. It also fixes all the users to use the new structure names. Renaming irq_host to irq_domain has been discussed for a long time, and this patch is a step in the process of generalizing the powerpc virq code to be usable by all architecture. An astute reader will notice that this patch actually removes the irq_host structure instead of renaming it. This is because the irq_domain structure already exists in include/linux/irqdomain.h and has the needed data members. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Milton Miller <miltonm@bga.com> Tested-by: Olof Johansson <olof@lixom.net>
		
			
				
	
	
		
			60 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			60 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_domain		*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__ */
 |