mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	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__ */
 |