1*2874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 21cd8e506SKumar Gala /* 31cd8e506SKumar Gala * IPIC private definitions and structure. 41cd8e506SKumar Gala * 51cd8e506SKumar Gala * Maintainer: Kumar Gala <[email protected]> 61cd8e506SKumar Gala * 71cd8e506SKumar Gala * Copyright 2005 Freescale Semiconductor, Inc 81cd8e506SKumar Gala */ 91cd8e506SKumar Gala #ifndef __IPIC_H__ 101cd8e506SKumar Gala #define __IPIC_H__ 111cd8e506SKumar Gala 121cd8e506SKumar Gala #include <asm/ipic.h> 131cd8e506SKumar Gala 14b9f0f1bbSKim Phillips #define NR_IPIC_INTS 128 15b9f0f1bbSKim Phillips 16b9f0f1bbSKim Phillips /* External IRQS */ 17b9f0f1bbSKim Phillips #define IPIC_IRQ_EXT0 48 18b9f0f1bbSKim Phillips #define IPIC_IRQ_EXT1 17 19b9f0f1bbSKim Phillips #define IPIC_IRQ_EXT7 23 20b9f0f1bbSKim Phillips 21b9f0f1bbSKim Phillips /* Default Priority Registers */ 22f03ca957SLi Yang #define IPIC_PRIORITY_DEFAULT 0x05309770 231cd8e506SKumar Gala 241cd8e506SKumar Gala /* System Global Interrupt Configuration Register */ 251cd8e506SKumar Gala #define SICFR_IPSA 0x00010000 26f03ca957SLi Yang #define SICFR_IPSB 0x00020000 27f03ca957SLi Yang #define SICFR_IPSC 0x00040000 281cd8e506SKumar Gala #define SICFR_IPSD 0x00080000 291cd8e506SKumar Gala #define SICFR_MPSA 0x00200000 301cd8e506SKumar Gala #define SICFR_MPSB 0x00400000 311cd8e506SKumar Gala 321cd8e506SKumar Gala /* System External Interrupt Mask Register */ 331cd8e506SKumar Gala #define SEMSR_SIRQ0 0x00008000 341cd8e506SKumar Gala 351cd8e506SKumar Gala /* System Error Control Register */ 361cd8e506SKumar Gala #define SERCR_MCPR 0x00000001 371cd8e506SKumar Gala 381cd8e506SKumar Gala struct ipic { 391cd8e506SKumar Gala volatile u32 __iomem *regs; 40b9f0f1bbSKim Phillips 41b9f0f1bbSKim Phillips /* The remapper for this IPIC */ 42bae1d8f1SGrant Likely struct irq_domain *irqhost; 431cd8e506SKumar Gala }; 441cd8e506SKumar Gala 451cd8e506SKumar Gala struct ipic_info { 4677d4309eSLi Yang u8 ack; /* pending register offset from base if the irq 4777d4309eSLi Yang supports ack operation */ 481cd8e506SKumar Gala u8 mask; /* mask register offset from base */ 491cd8e506SKumar Gala u8 prio; /* priority register offset from base */ 501cd8e506SKumar Gala u8 force; /* force register offset from base */ 511cd8e506SKumar Gala u8 bit; /* register bit position (as per doc) 521cd8e506SKumar Gala bit mask = 1 << (31 - bit) */ 531cd8e506SKumar Gala u8 prio_mask; /* priority mask value */ 541cd8e506SKumar Gala }; 551cd8e506SKumar Gala 561cd8e506SKumar Gala #endif /* __IPIC_H__ */ 57