sdk-ameba-v4.0b-gcc/component/soc/realtek/8711b/fwlib/include/rtl8711b_vector.h
Tautvydas Belgeras 60a7afcc83 initial commit
2018-06-05 16:16:17 +03:00

176 lines
7.5 KiB
C

/**
******************************************************************************
* @file rtl8711b_vector.h
* @author
* @version V1.0.0
* @date 2016-05-17
* @brief This file contains all the functions prototypes for the IRQ firmware
* library.
******************************************************************************
* @attention
*
* This module is a confidential and proprietary property of RealTek and
* possession or use of this module requires written permission of RealTek.
*
* Copyright(c) 2016, Realtek Semiconductor Corporation. All rights reserved.
******************************************************************************
*/
#ifndef _RTL8710B_VECTOR_TABLE_H_
#define _RTL8710B_VECTOR_TABLE_H_
/** @addtogroup AmebaZ_Platform
* @{
*/
/** @defgroup IRQ
* @brief IRQ modules
* @{
*/
/** @addtogroup IRQ
* @verbatim
*****************************************************************************************
* Introduction
*****************************************************************************************
* IRQ table, please refer to IRQ Exported Constants->IRQn_enum->IRQn
*
*****************************************************************************************
* how to use
*****************************************************************************************
* 1. register/unregister IRQ use: InterruptRegister/InterruptUnRegister
* 2. enable/disable IRQ use: InterruptEn/InterruptDis
*
*****************************************************************************************
* @endverbatim
*/
/* Exported types ------------------------------------------------------------*/
/** @defgroup IRQ_Exported_Types IRQ Exported Types
* @{
*/
typedef s32 IRQn_Type;
typedef void (*HAL_VECTOR_FUN) (void);
typedef u32 (*IRQ_FUN)(void *Data);
/**
* @}
*/
/* Exported constants --------------------------------------------------------*/
/** @defgroup IRQ_Exported_Constants IRQ Exported Constants
* @{
*/
/** @defgroup IRQn_enum
* @{
*/
enum IRQn {
/****** Cortex-M4 Processor Exceptions Numbers ********/
NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */
HardFault_IRQn = -13, /*!< 3 Hard Fault, all classes of Fault */
MemoryManagement_IRQn = -12, /*!< 4 Cortex-M3 Memory Management Interrupt */
BusFault_IRQn = -11, /*!< 5 Cortex-M3 Bus Fault Interrupt */
UsageFault_IRQn = -10, /*!< 6 Cortex-M3 Usage Fault Interrupt */
SVCall_IRQn = -5, /*!< 11 Cortex-M3 SV Call Interrupt */
DebugMonitor_IRQn = -4, /*!< 12 Cortex-M3 Debug Monitor Interrupt */
PendSV_IRQn = -2, /*!< 14 Cortex-M3 Pend SV Interrupt */
SysTick_IRQn = -1, /*!< 15 Cortex-M3 System Tick Interrupt */
/****** RTL8710B Specific Interrupt Numbers ************/
SYSTEM_ON_IRQ = 0, /*!< 16 SYS Interrupt for wakeup from power save */
WDG_IRQ = 1, /*!< 17 Watch dog global insterrupt */
TIMER0_IRQ = 2, /*!< 18 Timer0 global interrupt */
TIMER1_IRQ = 3, /*!< 19 Timer1 global interrupt */
TIMER2_IRQ = 4, /*!< 20 Timer2 global interrupt */
TIMER3_IRQ = 5, /*!< 21 Timer3 global interrupt */
SPI0_IRQ = 6, /*!< 22 SPI0 global interrupt for communication spi */
GPIO_IRQ = 7, /*!< 23 GPIO portA global interrupt */
UART0_IRQ = 8, /*!< 24 UART0 global interrupt */
SPI_FLASH_IRQ = 9, /*!< 25 SPI Flash global interrupt */
UART1_IRQ = 10, /*!< 26 UART1 global interrupt */
TIMER4_IRQ = 11, /*!< 27 Timer4 global interrupt */
SDIO_DEVICE_IRQ = 12, /*!< 28 SDIO device global interrupt */
I2S0_PCM0_IRQ = 13, /*!< 29 I2S0 global interrupt */
TIMER5_IRQ = 14, /*!< 30 Timer5 global interrupt */
WL_DMA_IRQ = 15, /*!< 31 Wlan Host global interrupt */
WL_PROTOCOL_IRQ = 16, /*!< 32 Wlan Firmware Wlan global interrupt */
CRYPTO_IRQ = 17, /*!< 33 IPsec global interrupt */
SPI1_IRQ = 18, /*!< 34 SPI1 global interrupt for communication spi */
PERIPHERAL_IRQ = 19, /*!< 35 not used */
GDMA0_CHANNEL0_IRQ = 20, /*!< 36 GDMA0 channel 0 global interrupt */
GDMA0_CHANNEL1_IRQ = 21, /*!< 37 GDMA0 channel 1 global interrupt */
GDMA0_CHANNEL2_IRQ = 22, /*!< 38 GDMA0 channel 2 global interrupt */
GDMA0_CHANNEL3_IRQ = 23, /*!< 39 GDMA0 channel 3 global interrupt */
GDMA0_CHANNEL4_IRQ = 24, /*!< 40 GDMA0 channel 4 global interrupt */
GDMA0_CHANNEL5_IRQ = 25, /*!< 41 GDMA0 channel 5 global interrupt */
I2C0_IRQ = 26, /*!< 42 I2C0 global interrupt */
I2C1_IRQ = 27, /*!< 43 I2C1 global interrupt */
UART_LOG_IRQ = 28, /*!< 44 log uart intr */
ADC_IRQ = 29, /*!< 45 adc intr */
RDP_IRQ = 30, /*!< 46 cpu rdp protection interrupt */
RTC_IRQ = 31, /*!< 47 rtc timer interrupt */
GDMA1_CHANNEL0_IRQ = 32, /*!< 48 GDMA1 channel 0 global interrupt */
GDMA1_CHANNEL1_IRQ = 33, /*!< 49 GDMA1 channel 1 global interrupt */
GDMA1_CHANNEL2_IRQ = 34, /*!< 50 GDMA1 channel 2 global interrupt */
GDMA1_CHANNEL3_IRQ = 35, /*!< 51 GDMA1 channel 3 global interrupt */
GDMA1_CHANNEL4_IRQ = 36, /*!< 52 GDMA1 channel 4 global interrupt */
GDMA1_CHANNEL5_IRQ = 37, /*!< 53 GDMA1 channel 5 global interrupt */
USB_IRQ = 38, /*!< 54 USOC interrupt */
RXI300_IRQ = 39, /*!< 55 RXI300 interrupt */
USB_SIE_IRQ = 40, /*!< 56 USB SIE interrupt */
};
/**
* @}
*/
/**
* @}
*/
/* Exported functions --------------------------------------------------------*/
/** @defgroup IRQ_Exported_Functions IRQ Exported Functions
* @{
*/
extern _LONG_CALL_ void VECTOR_TableInit(u32 StackP);
extern _LONG_CALL_ void VECTOR_TableInitForOS(void *PortSVC, void *PortPendSVH, void *PortSysTick);
extern _LONG_CALL_ BOOL VECTOR_IrqRegister(IRQ_FUN IrqFun, IRQn_Type IrqNum, u32 Data, u32 Priority);
extern _LONG_CALL_ BOOL VECTOR_IrqUnRegister(IRQn_Type IrqNum);
extern _LONG_CALL_ void VECTOR_IrqEn(IRQn_Type IrqNum, u32 Priority);
extern _LONG_CALL_ void VECTOR_IrqDis(IRQn_Type IrqNum);
#define InterruptForOSInit VECTOR_TableInitForOS
#define InterruptRegister VECTOR_IrqRegister
#define InterruptUnRegister VECTOR_IrqUnRegister
#define InterruptEn VECTOR_IrqEn
#define InterruptDis VECTOR_IrqDis
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/* Other Definitions --------------------------------------------------------*/
extern IRQ_FUN UserIrqFunTable[64];
extern u32 UserIrqDataTable[64];
extern HAL_VECTOR_FUN NewVectorTable[];
#define PERIPHERAL_IRQ_STATUS 0x04
#define PERIPHERAL_IRQ_MODE 0x08
#define PERIPHERAL_IRQ_EN 0x0C
#define LP_PERI_EXT_IRQ_STATUS 0x24
#define LP_PERI_EXT_IRQ_MODE 0x28
#define LP_PERI_EXT_IRQ_EN 0x2C
#define PERIPHERAL_IRQ_ALL_LEVEL 0
#endif //_RTL8710B_VECTOR_TABLE_H_
/******************* (C) COPYRIGHT 2016 Realtek Semiconductor *****END OF FILE****/