/* This file is part of the libopencm3 project.
 *
 * It was generated by the irq2nvic_h script.
 */

#ifndef LIBOPENCM3_EFM32GG_NVIC_H
#define LIBOPENCM3_EFM32GG_NVIC_H

#include <libopencm3/cm3/nvic.h>

/** @defgroup CM3_nvic_defines_EFM32GG User interrupts for EFM32 Giant Gecko series
    @ingroup CM3_nvic_defines

    @{*/

#define NVIC_DMA_IRQ 0
#define NVIC_GPIO_EVEN_IRQ 1
#define NVIC_TIMER0_IRQ 2
#define NVIC_USART0_RX_IRQ 3
#define NVIC_USART0_TX_IRQ 4
#define NVIC_USB_IRQ 5
#define NVIC_ACMP01_IRQ 6
#define NVIC_ADC0_IRQ 7
#define NVIC_DAC0_IRQ 8
#define NVIC_I2C0_IRQ 9
#define NVIC_I2C1_IRQ 10
#define NVIC_GPIO_ODD_IRQ 11
#define NVIC_TIMER1_IRQ 12
#define NVIC_TIMER2_IRQ 13
#define NVIC_TIMER3_IRQ 14
#define NVIC_USART1_RX_IRQ 15
#define NVIC_USART1_TX_IRQ 16
#define NVIC_LESENSE_IRQ 17
#define NVIC_USART2_RX_IRQ 18
#define NVIC_USART2_TX_IRQ 19
#define NVIC_UART0_RX_IRQ 20
#define NVIC_UART0_TX_IRQ 21
#define NVIC_UART1_RX_IRQ 22
#define NVIC_UART1_TX_IRQ 23
#define NVIC_LEUART0_IRQ 24
#define NVIC_LEUART1_IRQ 25
#define NVIC_LETIMER0_IRQ 26
#define NVIC_PCNT0_IRQ 27
#define NVIC_PCNT1_IRQ 28
#define NVIC_PCNT2_IRQ 29
#define NVIC_RTC_IRQ 30
#define NVIC_BURTC_IRQ 31
#define NVIC_CMU_IRQ 32
#define NVIC_VCMP_IRQ 33
#define NVIC_LCD_IRQ 34
#define NVIC_MSC_IRQ 35
#define NVIC_AES_IRQ 36
#define NVIC_EBI_IRQ 37

#define NVIC_IRQ_COUNT 38

/**@}*/

/** @defgroup CM3_nvic_isrprototypes_EFM32GG User interrupt service routines (ISR) prototypes for EFM32 Giant Gecko series
    @ingroup CM3_nvic_isrprototypes

    @{*/

BEGIN_DECLS

void WEAK dma_isr(void);
void WEAK gpio_even_isr(void);
void WEAK timer0_isr(void);
void WEAK usart0_rx_isr(void);
void WEAK usart0_tx_isr(void);
void WEAK usb_isr(void);
void WEAK acmp01_isr(void);
void WEAK adc0_isr(void);
void WEAK dac0_isr(void);
void WEAK i2c0_isr(void);
void WEAK i2c1_isr(void);
void WEAK gpio_odd_isr(void);
void WEAK timer1_isr(void);
void WEAK timer2_isr(void);
void WEAK timer3_isr(void);
void WEAK usart1_rx_isr(void);
void WEAK usart1_tx_isr(void);
void WEAK lesense_isr(void);
void WEAK usart2_rx_isr(void);
void WEAK usart2_tx_isr(void);
void WEAK uart0_rx_isr(void);
void WEAK uart0_tx_isr(void);
void WEAK uart1_rx_isr(void);
void WEAK uart1_tx_isr(void);
void WEAK leuart0_isr(void);
void WEAK leuart1_isr(void);
void WEAK letimer0_isr(void);
void WEAK pcnt0_isr(void);
void WEAK pcnt1_isr(void);
void WEAK pcnt2_isr(void);
void WEAK rtc_isr(void);
void WEAK burtc_isr(void);
void WEAK cmu_isr(void);
void WEAK vcmp_isr(void);
void WEAK lcd_isr(void);
void WEAK msc_isr(void);
void WEAK aes_isr(void);
void WEAK ebi_isr(void);

END_DECLS

/**@}*/

#endif /* LIBOPENCM3_EFM32GG_NVIC_H */
