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-01-13     weety     first version
9  */
10 
11 #ifndef __DM365_GPIO_H
12 #define __DM365_GPIO_H
13 #include <dm36x.h>
14 
15 #define GPIO(X)     (X)
16 
17 
18 #define get_io(r)           *((volatile u_int *)(TI81XX_L4_SLOW_IO_ADDRESS(r)))
19 #define set_io(r,v)     *((volatile u_int *)(TI81XX_L4_SLOW_IO_ADDRESS(r))) = (v)
20 #define and_io(r,v)     *((volatile u_int *)(TI81XX_L4_SLOW_IO_ADDRESS(r))) &= (v)
21 #define or_io(r,v)          *((volatile u_int *)(TI81XX_L4_SLOW_IO_ADDRESS(r))) |= (v)
22 
23 #define v_get_io(r)         *((volatile u_int *)(r))
24 #define v_set_io(r,v)       *((volatile u_int *)(r)) = (v)
25 #define v_and_io(r,v)       *((volatile u_int *)(r)) &= (v)
26 #define v_or_io(r,v)            *((volatile u_int *)(r)) |= (v)
27 
28 enum gpio_intr_mode
29 {
30     LEVELDETECT_LOW = 0,
31     LEVELDETECT_HIGH,
32     RISINGDETECT,
33     FALLINGDETECT,
34     EDGEDETECT  //both rising-edge and falling-edge detect
35 };
36 
37 enum gpio_intr_req
38 {
39     INTR_REQ_A = 0,
40     INTR_REQ_B
41 };
42 
43 enum gpio_intr_num
44 {
45     GPIOINT0A = 96,
46     GPIOINT0B,
47     GPIOINT1A,
48     GPIOINT1B,
49 };
50 
51 enum pin_func_mod
52 {
53     GPIO_MOD = 0x80,
54     SPI_MOD =0x01,
55     VP_MOD=0x04,
56     IIC_MOD=0x20
57 };
58 
59 #endif              /* __TI814X_GPIO_H */
60