1 /*
2  * Copyright (c) 2006-2021, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date               Author             Notes
8  * 2011-08-08     lgnq                first version
9  * 2015-07-06     chinesebear      modified for loongson 1c
10  */
11 
12 #ifndef __LS1C_H__
13 #define __LS1C_H__
14 
15 #include <gs232.h>
16 
17 #define LS1C_ACPI_IRQ    0
18 #define LS1C_HPET_IRQ    1
19 //#define LS1C_UART0_IRQ    3  // linux使用3,v1.4版本之前1c分配有问题,建议使用2,以确保正确
20 #define LS1C_UART1_IRQ   4
21 #define LS1C_UART2_IRQ   5
22 #define LS1C_CAN0_IRQ    6
23 #define LS1C_CAN1_IRQ    7
24 #define LS1C_SPI0_IRQ    8
25 #define LS1C_SPI1_IRQ    9
26 #define LS1C_AC97_IRQ    10
27 #define LS1C_MS_IRQ      11
28 #define LS1C_KB_IRQ      12
29 #define LS1C_DMA0_IRQ    13
30 #define LS1C_DMA1_IRQ    14
31 #define LS1C_DMA2_IRQ    15
32 #define LS1C_NAND_IRQ    16
33 #define LS1C_PWM0_IRQ    17
34 #define LS1C_PWM1_IRQ    18
35 #define LS1C_PWM2_IRQ    19
36 #define LS1C_PWM3_IRQ    20
37 #define LS1C_RTC_INT0_IRQ  21
38 #define LS1C_RTC_INT1_IRQ  22
39 #define LS1C_RTC_INT2_IRQ  23
40 #define LS1C_UART3_IRQ   29
41 #define LS1C_ADC_IRQ     30
42 #define LS1C_SDIO_IRQ    31
43 
44 
45 #define LS1C_EHCI_IRQ   (32+0)
46 #define LS1C_OHCI_IRQ   (32+1)
47 #define LS1C_OTG_IRQ    (32+2)
48 #define LS1C_MAC_IRQ    (32+3)
49 #define LS1C_CAM_IRQ    (32+4)
50 #define LS1C_UART4_IRQ  (32+5)
51 #define LS1C_UART5_IRQ  (32+6)
52 #define LS1C_UART6_IRQ  (32+7)
53 #define LS1C_UART7_IRQ  (32+8)
54 #define LS1C_UART8_IRQ  (32+9)
55 #define LS1C_UART9_IRQ  (32+13)
56 #define LS1C_UART10_IRQ (32+14)
57 #define LS1C_UART11_IRQ (32+15)
58 #define LS1C_I2C2_IRQ   (32+17)
59 #define LS1C_I2C1_IRQ   (32+18)
60 #define LS1C_I2C0_IRQ   (32+19)
61 
62 
63 #define LS1C_GPIO_IRQ       64
64 #define LS1C_GPIO_FIRST_IRQ 64
65 #define LS1C_GPIO_IRQ_COUNT 96
66 #define LS1C_GPIO_LAST_IRQ  (LS1C_GPIO_FIRST_IRQ + LS1C_GPIO_IRQ_COUNT-1)
67 
68 
69 #define LS1C_LAST_IRQ 159
70 #define LS1C_INTREG_BASE 0xbfd01040
71 
72 // 将1c的中断分为五组,每组32个
73 #define LS1C_NR_IRQS    (32*5)
74 
75 
76 // GPIO引脚到中断号之间的转换
77 #define LS1C_GPIO_TO_IRQ(GPIOn)     (LS1C_GPIO_FIRST_IRQ + (GPIOn))
78 #define LS1C_IRQ_TO_GPIO(IRQn)      ((IRQn) - LS1C_GPIO_FIRST_IRQ)
79 
80 #endif
81 
82