6a01f23033
[Mike Frysinger <vapier.adi@gmail.com>: - handle bf531/bf532/bf534/bf536 variants in ipipe.h - cleanup IPIPE logic for bfin_set_irq_handler() - cleanup ipipe asm code a bit and add missing ENDPROC() - simplify IPIPE code in trap_c - unify some of the IPIPE code and fix style - simplify DO_IRQ_L1 handling with ipipe code - revert IRQ_SW_INT# addition from ipipe merge - remove duplicate get_{c,s}clk() prototypes ] Signed-off-by: Yi Li <yi.li@analog.com> Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org>
174 lines
5.3 KiB
C
174 lines
5.3 KiB
C
/*
|
|
* File: include/asm-blackfin/mach-bf533/defBF532.h
|
|
* Based on:
|
|
* Author:
|
|
*
|
|
* Created:
|
|
* Description:
|
|
*
|
|
* Rev:
|
|
*
|
|
* Modified:
|
|
*
|
|
* Bugs: Enter bugs at http://blackfin.uclinux.org/
|
|
*
|
|
* 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, or (at your option)
|
|
* any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; see the file COPYING.
|
|
* If not, write to the Free Software Foundation,
|
|
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
#ifndef _BF533_IRQ_H_
|
|
#define _BF533_IRQ_H_
|
|
|
|
/*
|
|
* Interrupt source definitions
|
|
Event Source Core Event Name
|
|
Core Emulation **
|
|
Events (highest priority) EMU 0
|
|
Reset RST 1
|
|
NMI NMI 2
|
|
Exception EVX 3
|
|
Reserved -- 4
|
|
Hardware Error IVHW 5
|
|
Core Timer IVTMR 6 *
|
|
PLL Wakeup Interrupt IVG7 7
|
|
DMA Error (generic) IVG7 8
|
|
PPI Error Interrupt IVG7 9
|
|
SPORT0 Error Interrupt IVG7 10
|
|
SPORT1 Error Interrupt IVG7 11
|
|
SPI Error Interrupt IVG7 12
|
|
UART Error Interrupt IVG7 13
|
|
RTC Interrupt IVG8 14
|
|
DMA0 Interrupt (PPI) IVG8 15
|
|
DMA1 (SPORT0 RX) IVG9 16
|
|
DMA2 (SPORT0 TX) IVG9 17
|
|
DMA3 (SPORT1 RX) IVG9 18
|
|
DMA4 (SPORT1 TX) IVG9 19
|
|
DMA5 (PPI) IVG10 20
|
|
DMA6 (UART RX) IVG10 21
|
|
DMA7 (UART TX) IVG10 22
|
|
Timer0 IVG11 23
|
|
Timer1 IVG11 24
|
|
Timer2 IVG11 25
|
|
PF Interrupt A IVG12 26
|
|
PF Interrupt B IVG12 27
|
|
DMA8/9 Interrupt IVG13 28
|
|
DMA10/11 Interrupt IVG13 29
|
|
Watchdog Timer IVG13 30
|
|
|
|
Softirq IVG14 31
|
|
System Call --
|
|
(lowest priority) IVG15 32 *
|
|
*/
|
|
#define SYS_IRQS 31
|
|
#define NR_PERI_INTS 24
|
|
|
|
/* The ABSTRACT IRQ definitions */
|
|
/** the first seven of the following are fixed, the rest you change if you need to **/
|
|
#define IRQ_EMU 0 /*Emulation */
|
|
#define IRQ_RST 1 /*reset */
|
|
#define IRQ_NMI 2 /*Non Maskable */
|
|
#define IRQ_EVX 3 /*Exception */
|
|
#define IRQ_UNUSED 4 /*- unused interrupt*/
|
|
#define IRQ_HWERR 5 /*Hardware Error */
|
|
#define IRQ_CORETMR 6 /*Core timer */
|
|
|
|
#define IRQ_PLL_WAKEUP 7 /*PLL Wakeup Interrupt */
|
|
#define IRQ_DMA_ERROR 8 /*DMA Error (general) */
|
|
#define IRQ_PPI_ERROR 9 /*PPI Error Interrupt */
|
|
#define IRQ_SPORT0_ERROR 10 /*SPORT0 Error Interrupt */
|
|
#define IRQ_SPORT1_ERROR 11 /*SPORT1 Error Interrupt */
|
|
#define IRQ_SPI_ERROR 12 /*SPI Error Interrupt */
|
|
#define IRQ_UART0_ERROR 13 /*UART Error Interrupt */
|
|
#define IRQ_RTC 14 /*RTC Interrupt */
|
|
#define IRQ_PPI 15 /*DMA0 Interrupt (PPI) */
|
|
#define IRQ_SPORT0_RX 16 /*DMA1 Interrupt (SPORT0 RX) */
|
|
#define IRQ_SPORT0_TX 17 /*DMA2 Interrupt (SPORT0 TX) */
|
|
#define IRQ_SPORT1_RX 18 /*DMA3 Interrupt (SPORT1 RX) */
|
|
#define IRQ_SPORT1_TX 19 /*DMA4 Interrupt (SPORT1 TX) */
|
|
#define IRQ_SPI 20 /*DMA5 Interrupt (SPI) */
|
|
#define IRQ_UART0_RX 21 /*DMA6 Interrupt (UART RX) */
|
|
#define IRQ_UART0_TX 22 /*DMA7 Interrupt (UART TX) */
|
|
#define IRQ_TIMER0 23 /*Timer 0 */
|
|
#define IRQ_TIMER1 24 /*Timer 1 */
|
|
#define IRQ_TIMER2 25 /*Timer 2 */
|
|
#define IRQ_PROG_INTA 26 /*Programmable Flags A (8) */
|
|
#define IRQ_PROG_INTB 27 /*Programmable Flags B (8) */
|
|
#define IRQ_MEM_DMA0 28 /*DMA8/9 Interrupt (Memory DMA Stream 0) */
|
|
#define IRQ_MEM_DMA1 29 /*DMA10/11 Interrupt (Memory DMA Stream 1) */
|
|
#define IRQ_WATCH 30 /*Watch Dog Timer */
|
|
|
|
#define IRQ_PF0 33
|
|
#define IRQ_PF1 34
|
|
#define IRQ_PF2 35
|
|
#define IRQ_PF3 36
|
|
#define IRQ_PF4 37
|
|
#define IRQ_PF5 38
|
|
#define IRQ_PF6 39
|
|
#define IRQ_PF7 40
|
|
#define IRQ_PF8 41
|
|
#define IRQ_PF9 42
|
|
#define IRQ_PF10 43
|
|
#define IRQ_PF11 44
|
|
#define IRQ_PF12 45
|
|
#define IRQ_PF13 46
|
|
#define IRQ_PF14 47
|
|
#define IRQ_PF15 48
|
|
|
|
#define GPIO_IRQ_BASE IRQ_PF0
|
|
|
|
#define NR_IRQS (IRQ_PF15+1)
|
|
|
|
#define IVG7 7
|
|
#define IVG8 8
|
|
#define IVG9 9
|
|
#define IVG10 10
|
|
#define IVG11 11
|
|
#define IVG12 12
|
|
#define IVG13 13
|
|
#define IVG14 14
|
|
#define IVG15 15
|
|
|
|
/* IAR0 BIT FIELDS*/
|
|
#define RTC_ERROR_POS 28
|
|
#define UART_ERROR_POS 24
|
|
#define SPORT1_ERROR_POS 20
|
|
#define SPI_ERROR_POS 16
|
|
#define SPORT0_ERROR_POS 12
|
|
#define PPI_ERROR_POS 8
|
|
#define DMA_ERROR_POS 4
|
|
#define PLLWAKE_ERROR_POS 0
|
|
|
|
/* IAR1 BIT FIELDS*/
|
|
#define DMA7_UARTTX_POS 28
|
|
#define DMA6_UARTRX_POS 24
|
|
#define DMA5_SPI_POS 20
|
|
#define DMA4_SPORT1TX_POS 16
|
|
#define DMA3_SPORT1RX_POS 12
|
|
#define DMA2_SPORT0TX_POS 8
|
|
#define DMA1_SPORT0RX_POS 4
|
|
#define DMA0_PPI_POS 0
|
|
|
|
/* IAR2 BIT FIELDS*/
|
|
#define WDTIMER_POS 28
|
|
#define MEMDMA1_POS 24
|
|
#define MEMDMA0_POS 20
|
|
#define PFB_POS 16
|
|
#define PFA_POS 12
|
|
#define TIMER2_POS 8
|
|
#define TIMER1_POS 4
|
|
#define TIMER0_POS 0
|
|
|
|
#endif /* _BF533_IRQ_H_ */
|