2008-11-18 12:48:22 +03:00
/*
2009-09-24 18:11:24 +04:00
* Set up the interrupt priorities
2008-11-18 12:48:22 +03:00
*
2009-09-24 18:11:24 +04:00
* Copyright 2008 Analog Devices Inc .
2008-11-18 12:48:22 +03:00
*
2009-09-24 18:11:24 +04:00
* Licensed under the GPL - 2 or later .
2008-11-18 12:48:22 +03:00
*/
# include <linux/module.h>
# include <linux/irq.h>
# include <asm/blackfin.h>
void __init program_IAR ( void )
{
/* Program the IAR0 Register with the configured priority */
bfin_write_SIC_IAR0 ( ( ( CONFIG_IRQ_PLL_WAKEUP - 7 ) < < IRQ_PLL_WAKEUP_POS ) |
( ( CONFIG_IRQ_DMA0_ERROR - 7 ) < < IRQ_DMA0_ERROR_POS ) |
( ( CONFIG_IRQ_PPI_ERROR - 7 ) < < IRQ_PPI_ERROR_POS ) |
( ( CONFIG_IRQ_SPORT0_ERROR - 7 ) < < IRQ_SPORT0_ERROR_POS ) |
( ( CONFIG_IRQ_SPORT1_ERROR - 7 ) < < IRQ_SPORT1_ERROR_POS ) |
( ( CONFIG_IRQ_SPI0_ERROR - 7 ) < < IRQ_SPI0_ERROR_POS ) |
( ( CONFIG_IRQ_UART0_ERROR - 7 ) < < IRQ_UART0_ERROR_POS ) |
( ( CONFIG_IRQ_RTC - 7 ) < < IRQ_RTC_POS ) ) ;
bfin_write_SIC_IAR1 ( ( ( CONFIG_IRQ_PPI - 7 ) < < IRQ_PPI_POS ) |
( ( CONFIG_IRQ_SPORT0_RX - 7 ) < < IRQ_SPORT0_RX_POS ) |
( ( CONFIG_IRQ_SPORT0_TX - 7 ) < < IRQ_SPORT0_TX_POS ) |
( ( CONFIG_IRQ_SPORT1_RX - 7 ) < < IRQ_SPORT1_RX_POS ) |
( ( CONFIG_IRQ_SPORT1_TX - 7 ) < < IRQ_SPORT1_TX_POS ) |
( ( CONFIG_IRQ_SPI0 - 7 ) < < IRQ_SPI0_POS ) |
( ( CONFIG_IRQ_UART0_RX - 7 ) < < IRQ_UART0_RX_POS ) |
( ( CONFIG_IRQ_UART0_TX - 7 ) < < IRQ_UART0_TX_POS ) ) ;
2009-01-07 18:14:39 +03:00
bfin_write_SIC_IAR2 ( ( ( CONFIG_IRQ_TIMER0 - 7 ) < < IRQ_TIMER0_POS ) |
( ( CONFIG_IRQ_TIMER1 - 7 ) < < IRQ_TIMER1_POS ) |
( ( CONFIG_IRQ_TIMER2 - 7 ) < < IRQ_TIMER2_POS ) |
2008-11-18 12:48:22 +03:00
( ( CONFIG_IRQ_PORTF_INTA - 7 ) < < IRQ_PORTF_INTA_POS ) |
( ( CONFIG_IRQ_PORTF_INTB - 7 ) < < IRQ_PORTF_INTB_POS ) |
( ( CONFIG_IRQ_MEM0_DMA0 - 7 ) < < IRQ_MEM0_DMA0_POS ) |
( ( CONFIG_IRQ_MEM0_DMA1 - 7 ) < < IRQ_MEM0_DMA1_POS ) |
( ( CONFIG_IRQ_WATCH - 7 ) < < IRQ_WATCH_POS ) ) ;
bfin_write_SIC_IAR3 ( ( ( CONFIG_IRQ_DMA1_ERROR - 7 ) < < IRQ_DMA1_ERROR_POS ) |
( ( CONFIG_IRQ_SPORT2_ERROR - 7 ) < < IRQ_SPORT2_ERROR_POS ) |
( ( CONFIG_IRQ_SPORT3_ERROR - 7 ) < < IRQ_SPORT3_ERROR_POS ) |
( ( CONFIG_IRQ_SPI1_ERROR - 7 ) < < IRQ_SPI1_ERROR_POS ) |
( ( CONFIG_IRQ_SPI2_ERROR - 7 ) < < IRQ_SPI2_ERROR_POS ) |
( ( CONFIG_IRQ_UART1_ERROR - 7 ) < < IRQ_UART1_ERROR_POS ) |
( ( CONFIG_IRQ_UART2_ERROR - 7 ) < < IRQ_UART2_ERROR_POS ) ) ;
bfin_write_SIC_IAR4 ( ( ( CONFIG_IRQ_CAN_ERROR - 7 ) < < IRQ_CAN_ERROR_POS ) |
( ( CONFIG_IRQ_SPORT2_RX - 7 ) < < IRQ_SPORT2_RX_POS ) |
( ( CONFIG_IRQ_SPORT2_TX - 7 ) < < IRQ_SPORT2_TX_POS ) |
( ( CONFIG_IRQ_SPORT3_RX - 7 ) < < IRQ_SPORT3_RX_POS ) |
( ( CONFIG_IRQ_SPORT3_TX - 7 ) < < IRQ_SPORT3_TX_POS ) |
( ( CONFIG_IRQ_SPI1 - 7 ) < < IRQ_SPI1_POS ) ) ;
bfin_write_SIC_IAR5 ( ( ( CONFIG_IRQ_SPI2 - 7 ) < < IRQ_SPI2_POS ) |
( ( CONFIG_IRQ_UART1_RX - 7 ) < < IRQ_UART1_RX_POS ) |
( ( CONFIG_IRQ_UART1_TX - 7 ) < < IRQ_UART1_TX_POS ) |
( ( CONFIG_IRQ_UART2_RX - 7 ) < < IRQ_UART2_RX_POS ) |
( ( CONFIG_IRQ_UART2_TX - 7 ) < < IRQ_UART2_TX_POS ) |
( ( CONFIG_IRQ_TWI0 - 7 ) < < IRQ_TWI0_POS ) |
( ( CONFIG_IRQ_TWI1 - 7 ) < < IRQ_TWI1_POS ) |
( ( CONFIG_IRQ_CAN_RX - 7 ) < < IRQ_CAN_RX_POS ) ) ;
bfin_write_SIC_IAR6 ( ( ( CONFIG_IRQ_CAN_TX - 7 ) < < IRQ_CAN_TX_POS ) |
( ( CONFIG_IRQ_MEM1_DMA0 - 7 ) < < IRQ_MEM1_DMA0_POS ) |
( ( CONFIG_IRQ_MEM1_DMA1 - 7 ) < < IRQ_MEM1_DMA1_POS ) ) ;
SSYNC ( ) ;
}