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