• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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