2 * Copyright (C) 2017 C-SKY Microsystems Co., Ltd. All rights reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 /******************************************************************************
19 * @brief source file for the interrupt server route
22 ******************************************************************************/
23 #include <drv_common.h>
26 #ifndef CONFIG_KERNEL_NONE
27 #include <csi_kernel.h>
30 extern void dw_usart_irqhandler(int32_t idx);
31 extern void dw_timer_irqhandler(int32_t idx);
32 extern void dw_gpio_irqhandler(int32_t idx);
33 extern void dw_iic_irqhandler(int32_t idx);
34 extern void ck_rtc_irqhandler(int32_t idx);
35 extern void dw_spi_irqhandler(int32_t idx);
36 extern void dw_wdt_irqhandler(int32_t idx);
37 extern void ck_dma_irqhandler(int32_t idx);
38 extern void ck_aes_irqhandler(int32_t idx);
39 extern void ck_sha_irqhandler(int32_t idx);
42 ({ unsigned int __v = (*(volatile unsigned int *) (addr)); __v; })
44 #ifndef CONFIG_KERNEL_NONE
45 #define CSI_INTRPT_ENTER() csi_kernel_intrpt_enter()
46 #define CSI_INTRPT_EXIT() csi_kernel_intrpt_exit()
48 #define CSI_INTRPT_ENTER()
49 #define CSI_INTRPT_EXIT()
52 ATTRIBUTE_ISR void CORET_IRQHandler(void)
57 #if defined(CONFIG_USART)
58 ATTRIBUTE_ISR void USART0_IRQHandler(void)
61 dw_usart_irqhandler(0);
65 ATTRIBUTE_ISR void USART1_IRQHandler(void)
68 dw_usart_irqhandler(1);
72 ATTRIBUTE_ISR void USART2_IRQHandler(void)
75 dw_usart_irqhandler(2);
79 ATTRIBUTE_ISR void USART3_IRQHandler(void)
82 dw_usart_irqhandler(3);
88 #if defined(CONFIG_TIMER)
89 ATTRIBUTE_ISR void TIMA0_IRQHandler(void)
92 dw_timer_irqhandler(0);
96 ATTRIBUTE_ISR void TIMA1_IRQHandler(void)
99 dw_timer_irqhandler(1);
102 ATTRIBUTE_ISR void TIMB0_IRQHandler(void)
105 dw_timer_irqhandler(2);
109 ATTRIBUTE_ISR void TIMB1_IRQHandler(void)
112 dw_timer_irqhandler(3);
118 #if defined(CONFIG_GPIO)
120 ATTRIBUTE_ISR void GPIOA_IRQHandler(void)
123 dw_gpio_irqhandler(0);
127 ATTRIBUTE_ISR void GPIOB_IRQHandler(void)
130 dw_gpio_irqhandler(1);
135 #if defined(CONFIG_IIC)
136 ATTRIBUTE_ISR void I2C0_IRQHandler(void)
139 dw_iic_irqhandler(0);
143 ATTRIBUTE_ISR void I2C1_IRQHandler(void)
146 dw_iic_irqhandler(1);
151 #if defined(CONFIG_RTC)
153 ATTRIBUTE_ISR void RTC_IRQHandler(void)
156 ck_rtc_irqhandler(0);
162 #if defined(CONFIG_AES)
164 ATTRIBUTE_ISR void AES_IRQHandler(void)
167 ck_aes_irqhandler(0);
173 #if defined(CONFIG_SHA)
175 ATTRIBUTE_ISR void SHA_IRQHandler(void)
178 ck_sha_irqhandler(0);
184 #if defined(CONFIG_SPI) && defined(CONFIG_GPIO)
185 ATTRIBUTE_ISR void SPI0_IRQHandler(void)
188 dw_spi_irqhandler(0);
192 ATTRIBUTE_ISR void SPI1_IRQHandler(void)
195 dw_spi_irqhandler(1);
200 #if defined(CONFIG_WDT)
201 ATTRIBUTE_ISR void WDT_IRQHandler(void)
204 dw_wdt_irqhandler(0);
209 #if defined(CONFIG_DMAC)
210 ATTRIBUTE_ISR void DMAC_IRQHandler(void)
213 ck_dma_irqhandler(0);