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