RUI3 (RAK Unified Interface 3) - RAK4631
udrv_gpio.h
Go to the documentation of this file.
1 
9 #ifndef __UDRV_GPIO_H__
10 #define __UDRV_GPIO_H__
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 #include <stdint.h>
17 #include "pin_define.h"
18 
19 typedef void (*gpio_isr_func) (uint32_t irq_num);
20 
21 typedef enum
22 {
25 } gpio_dir_t;
26 
27 typedef enum
28 {
33 } gpio_pull_t;
34 
35 //typedef enum
36 //{
37 // GPIO_DRIVING_WEAK = 0, /**< GPIO weak driving strenght */
38 // GPIO_DRIVING_STRONG = 1 /**< GPIO strong driving streght */
39 //} gpio_driving_strengh_t;
40 
41 typedef enum
42 {
45 } gpio_logic_t;
46 
47 
48 typedef enum
49 {
56 
66 void udrv_gpio_init(uint32_t pin, gpio_dir_t dir, gpio_pull_t pull, gpio_logic_t logic);
67 
75 void udrv_gpio_set_dir(uint32_t pin, gpio_dir_t dir);
76 
84 void udrv_gpio_set_pull(uint32_t pin, gpio_pull_t pull);
85 
93 void udrv_gpio_set_logic(uint32_t pin, gpio_logic_t logic);
94 
103 gpio_logic_t udrv_gpio_get_logic(uint32_t pin);
104 
111 void udrv_gpio_toggle_logic(uint32_t pin);
112 
121 
131 int32_t udrv_gpio_register_isr(uint32_t pin, gpio_isr_func handler);
132 
139 void udrv_gpio_intc_clear(uint32_t pin);
140 
147 void udrv_gpio_set_wakeup_enable(uint32_t pin);
148 
155 void udrv_gpio_set_wakeup_disable(uint32_t pin);
156 
162 
170 
175 void udrv_gpio_suspend();
176 
181 void udrv_gpio_resume();
182 
183 void udrv_gpio_handler_handler (void *pdata);
184 
185 #ifdef __cplusplus
186 }
187 #endif
188 
189 #endif // __UDRV_GPIO_H__
gpio_dir_t
Definition: udrv_gpio.h:21
gpio_intc_trigger_mode_t
Definition: udrv_gpio.h:48
Definition: udrv_gpio.h:54
void udrv_gpio_resume()
Resume GPIO hardware after leaving sleep mode.
void udrv_gpio_set_dir(uint32_t pin, gpio_dir_t dir)
Set GPIO direction.
Definition: udrv_gpio.h:30
void udrv_gpio_set_wakeup_enable(uint32_t pin)
Enable GPIO wake up pmu.
Definition: udrv_gpio.h:32
void udrv_gpio_intc_clear(uint32_t pin)
clear the interrupt trigger.
Definition: udrv_gpio.h:24
void udrv_gpio_handler_handler(void *pdata)
Definition: udrv_gpio.h:53
gpio_logic_t
Definition: udrv_gpio.h:41
int32_t udrv_gpio_register_isr(uint32_t pin, gpio_isr_func handler)
Setting an interrupt handler that interrupt occurs.
void udrv_gpio_toggle_logic(uint32_t pin)
Toggle GPIO output logic.
void udrv_gpio_set_logic(uint32_t pin, gpio_logic_t logic)
Setup GPIO output logic.
void udrv_gpio_set_wakeup_mode(gpio_intc_trigger_mode_t mode)
Set the wakeup trigger mode.
Definition: udrv_gpio.h:52
Definition: udrv_gpio.h:44
gpio_logic_t udrv_gpio_get_logic(uint32_t pin)
Get GPIO logic status.
Definition: udrv_gpio.h:43
void udrv_gpio_set_wakeup_disable(uint32_t pin)
Disable GPIO wake up pmu.
Definition: udrv_gpio.h:50
void udrv_gpio_set_wakeup_disable_all(void)
Disable all GPIO wake up pmu.
void udrv_gpio_set_pull(uint32_t pin, gpio_pull_t pull)
Setup GPIO input pull down or pull up or none.
void udrv_gpio_intc_trigger_mode(uint32_t pin, gpio_intc_trigger_mode_t mode)
Setting gpio interrupt trigger mode.
Definition: udrv_gpio.h:31
void udrv_gpio_init(uint32_t pin, gpio_dir_t dir, gpio_pull_t pull, gpio_logic_t logic)
Initialize a GPIO pin.
Definition: udrv_gpio.h:51
gpio_pull_t
Definition: udrv_gpio.h:27
void(* gpio_isr_func)(uint32_t irq_num)
Definition: udrv_gpio.h:19
Definition: udrv_gpio.h:23
Definition: udrv_gpio.h:29
void udrv_gpio_suspend()
Suspend GPIO hardware before entering sleep mode.