1 // Copyright (C) 2022 Beken Corporation 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 // 15 #pragma once 16 #include <common/bk_include.h> 17 #include <common/bk_err.h> 18 #include <driver/hal/hal_int_types.h> 19 20 #ifdef __cplusplus 21 extern "C" { 22 #endif 23 24 #define BK_ERR_INT_DEVICE_NONE (BK_ERR_INT_BASE - 1) /**< icu device number is invalid */ 25 #define BK_ERR_INT_NOT_EXIST (BK_ERR_INT_BASE - 2) /**< icu device number is invalid */ 26 27 #if CONFIG_SYSTEM_CTRL 28 typedef enum { 29 INT_SRC_UART1 = 0x00, 30 INT_SRC_UART2, 31 INT_SRC_I2C0, 32 INT_SRC_IRDA, 33 INT_SRC_I2S, 34 INT_SRC_I2C1, 35 INT_SRC_SPI, 36 INT_SRC_GPIO, 37 INT_SRC_TIMER, 38 INT_SRC_PWM, 39 INT_SRC_AUDIO, 40 INT_SRC_SARADC, 41 INT_SRC_SDIO, 42 INT_SRC_USB, 43 INT_SRC_FFT, 44 INT_SRC_GDMA, 45 INT_SRC_MODEM, 46 INT_SRC_MAC_TXRX_TIMER, 47 INT_SRC_MAC_TXRX_MISC, 48 INT_SRC_MAC_RX_TRIGGER, 49 INT_SRC_MAC_TX_TRIGGER, 50 INT_SRC_MAC_PROT_TRIGGER, 51 INT_SRC_MAC_GENERAL, 52 INT_SRC_SDIO_DMA, 53 INT_SRC_USB_PLUG_INOUT, 54 INT_SRC_SECURITY, 55 INT_SRC_MAC_WAKEUP, 56 INT_SRC_HSSPI_SLAVE, 57 INT_SRC_PLL_UNLOCK, 58 INT_SRC_JPEG_DEC, 59 INT_SRC_BLE, 60 INT_SRC_PSRAM, 61 INT_SRC_LA, 62 INT_SRC_BTDM, 63 INT_SRC_BT, 64 INT_SRC_UART3, 65 INT_SRC_I2C2, 66 INT_SRC_SPI2, 67 INT_SRC_SPI3, 68 INT_SRC_PWM2, 69 INT_SRC_USB2, 70 INT_SRC_MAILBOX0, 71 INT_SRC_MAILBOX1, 72 INT_SRC_BT_WDT, 73 INT_SRC_DSP_WDT, 74 INT_SRC_RTC, 75 INT_SRC_TOUCH, 76 INT_SRC_CEC, 77 INT_SRC_MODEM_RC, 78 INT_SRC_MAC_HSU, 79 INT_SRC_TIMER1, 80 INT_SRC_MAC_INTN_PHY, 81 INT_SRC_MAC_INT_GEN, 82 INT_SRC_MAC_INT_RESERVED0, //WIFI IP reserved it, not used in really product 83 INT_SRC_JPEG, 84 INT_SRC_JPEG_ENC = INT_SRC_JPEG, //add it for distinguish with INT_SRC_JPEG_ENC 85 INT_SRC_EIP130_SEC, 86 INT_SRC_EIP130, 87 INT_SRC_LCD, 88 INT_SRC_DMA2D, 89 INT_SRC_QSPI, 90 INT_SRC_CAN, 91 INT_SRC_SBC, 92 INT_SRC_BMC32, //Andes RISC-V 93 INT_SRC_BMC64, //Andes RISC-V 94 INT_SRC_NONE, 95 } icu_int_src_t; 96 #else 97 typedef enum { 98 INT_SRC_UART1 = 0x00, 99 INT_SRC_UART2, 100 INT_SRC_I2C0, 101 INT_SRC_IRDA, 102 INT_SRC_I2S, 103 INT_SRC_I2C1, 104 INT_SRC_SPI, 105 INT_SRC_GPIO, 106 INT_SRC_TIMER, 107 INT_SRC_PWM, 108 INT_SRC_AUDIO, 109 INT_SRC_SARADC, 110 INT_SRC_SDIO, 111 INT_SRC_USB, 112 INT_SRC_FFT, 113 INT_SRC_GDMA, 114 INT_SRC_MODEM, 115 INT_SRC_MAC_TXRX_TIMER, 116 INT_SRC_MAC_TXRX_MISC, 117 INT_SRC_MAC_RX_TRIGGER, 118 INT_SRC_MAC_TX_TRIGGER, 119 INT_SRC_MAC_PROT_TRIGGER, 120 INT_SRC_MAC_GENERAL, 121 INT_SRC_SDIO_DMA, 122 INT_SRC_USB_PLUG_INOUT, 123 INT_SRC_SECURITY, 124 INT_SRC_MAC_WAKEUP, 125 INT_SRC_HSSPI_SLAVE, 126 INT_SRC_PLL_UNLOCK, 127 INT_SRC_JPEG, 128 INT_SRC_BLE, 129 INT_SRC_PSRAM, 130 INT_SRC_LA, 131 INT_SRC_BTDM, 132 INT_SRC_BT, 133 INT_SRC_UART3, 134 INT_SRC_I2C2, 135 INT_SRC_SPI2, 136 INT_SRC_SPI3, 137 INT_SRC_PWM2, 138 INT_SRC_USB2, 139 INT_SRC_MAILBOX0, 140 INT_SRC_MAILBOX1, 141 INT_SRC_BT_WDT, 142 INT_SRC_DSP_WDT, 143 INT_SRC_RTC, 144 INT_SRC_TOUCH, 145 INT_SRC_CEC, 146 INT_SRC_MODEM_RC, 147 INT_SRC_MAC_HSU, 148 INT_SRC_NONE, 149 } icu_int_src_t; 150 #endif 151 152 typedef void (*int_mac_ps_callback_t)(uint32_t status); 153 154 #ifdef __cplusplus 155 } 156 #endif 157