1 /* 2 * @ : Copyright (c) 2021 Phytium Information Technology, Inc. 3 * 4 * SPDX-License-Identifier: Apache-2.0. 5 * 6 * @Date: 2021-04-27 17:55:12 7 * @LastEditTime: 2021-04-30 14:38:45 8 * @Description: This files is for 9 * 10 * @Modify History: 11 * Ver Who Date Changes 12 * ----- ------ -------- -------------------------------------- 13 */ 14 15 #ifndef FT_BSP_GPIO_H 16 #define FT_BSP_GPIO_H 17 18 #ifdef __cplusplus 19 extern "C" 20 { 21 #endif 22 23 #include "ft_types.h" 24 #include "ft_gpio_hw.h" 25 26 /* gpio mode: gpio/int */ 27 #define GPIO_MODE_GPIO 0 28 #define GPIO_MODE_INT 1 29 30 /* define debug utilities */ 31 #define FT_GPIO_DEBUG_TAG "FT_GPIO" 32 #define FT_GPIO_ENABLE_DEBUG 33 #define FT_GPIO_ERROR(format, ...) FT_DEBUG_PRINT_E(FT_GPIO_DEBUG_TAG, format, ##__VA_ARGS__) 34 #ifdef FT_GPIO_ENABLE_DEBUG 35 #define FT_GPIO_DEBUG_I(format, ...) FT_DEBUG_PRINT_I(FT_GPIO_DEBUG_TAG, format, ##__VA_ARGS__) 36 #define FT_GPIO_DEBUG_W(format, ...) FT_DEBUG_PRINT_W(FT_GPIO_DEBUG_TAG, format, ##__VA_ARGS__) 37 #else 38 #define FT_GPIO_DEBUG_I(format, ...) 39 #define FT_GPIO_DEBUG_W(format, ...) 40 #endif 41 42 /** 43 * @name: FGpio_SetGroupModeA 44 * @msg: set gpio mode, polling or intr 45 * @return {*} 46 * @param {FT_IN u32} ctrlId 47 * @param {FT_IN u8} pin 48 * @param {FT_IN u32} mode 49 */ 50 void FGpio_SetGroupModeA(FT_IN u32 CtrlId, FT_IN u8 Pin, FT_IN u32 Mode); 51 /** 52 * @name: FGpio_ReadPinA 53 * @msg: get gpio pin status 54 * @return {*} 55 * @param {FT_IN u32} ctrlId 56 * @param {FT_IN u8} pin 57 */ 58 u32 FGpio_ReadPinA(FT_IN u32 CtrlId, FT_IN u8 Pin); 59 /** 60 * @name: FGpio_WritePinA 61 * @msg: set gpio pin status 62 * @return {*} 63 * @param {FT_IN u32} ctrlId 64 * @param {FT_IN u8} pin 65 * @param {FT_IN u8} onOff 66 */ 67 void FGpio_WritePinA(FT_IN u32 CtrlId, FT_IN u8 Pin, FT_IN u8 OnOff); 68 69 #ifdef __cplusplus 70 } 71 #endif 72 73 #endif 74