GPIO API¶
4G LTE Module GPIO Mapping¶
GPIO Name |
EC600U |
EC200U |
N58 |
N716 |
L610 |
|---|---|---|---|---|---|
GPIO_0 |
Pin 61 |
Pin 27 |
Pin 50 |
Pin 99 |
Pin 27 |
GPIO_1 |
Pin 58 |
Pin 26 |
Pin 90 |
Pin 100 |
Pin 26 |
GPIO_2 |
Pin 59 |
Pin 24 |
Pin 80 |
Pin 101 |
Pin 24 |
GPIO_3 |
Pin 60 |
Pin 25 |
Pin 78 |
Pin 102 |
Pin 25 |
GPIO_4 |
Pin 69 |
Pin 13 |
Pin 96 |
Pin 54 |
Pin 13 |
GPIO_5 |
Pin 70 |
Pin 135 |
Pin 39 |
Pin 38 |
Pin 135 |
GPIO_6 |
– |
– |
– |
– |
– |
GPIO_7 |
Pin 118 |
Pin 133 |
Pin 25 |
Pin 89 |
Pin 133 |
GPIO_8 |
Pin 99 |
Pin 134 |
– |
– |
Pin 134 |
GPIO_9 |
Pin 98 |
Pin 132 |
Pin 2 |
Pin 45 |
Pin 132 |
GPIO_10 |
Pin 95 |
Pin 131 |
Pin 79 |
Pin 32 |
Pin 131 |
GPIO_11 |
Pin 119 |
Pin 130 |
Pin 83 |
Pin 21 |
Pin 130 |
GPIO_12 |
Pin 100 |
Pin 129 |
Pin 13 |
Pin 22 |
Pin 129 |
GPIO_13 |
Pin 54 |
Pin 5 |
– |
Pin 67 |
Pin 5 |
GPIO_14 |
Pin 57 |
Pin 141 |
Pin 82 |
Pin 71 |
Pin 141 |
GPIO_15 |
Pin 56 |
Pin 142 |
Pin 81 |
Pin 70 |
Pin 142 |
GPIO_16 |
Pin 11 |
Pin 41 |
Pin 59 |
Pin 122 |
Pin 41 |
GPIO_17 |
Pin 12 |
Pin 42 |
Pin 58 |
Pin 121 |
Pin 42 |
GPIO_18 |
Pin 120 |
Pin 61 |
Pin 54 |
Pin 115 |
Pin 61 |
GPIO_19 |
Pin 16 |
Pin 62 |
Pin 60 |
Pin 65 |
Pin 62 |
GPIO_20 |
Pin 10 |
Pin 63 |
Pin 61 |
Pin 106 |
Pin 63 |
GPIO_21 |
Pin 14 |
Pin 66 |
Pin 55 |
Pin 116 |
Pin 66 |
GPIO_22 |
Pin 15 |
Pin 6 |
Pin 56 |
Pin 114 |
Pin 6 |
GPIO_23 |
Pin 13 |
Pin 23 |
Pin 57 |
Pin 117 |
Pin 23 |
GPIO_24 |
Pin 48 |
Pin 33 |
Pin 5 |
Pin 52 |
Pin 33 |
GPIO_25 |
Pin 39 |
Pin 31 |
Pin 7 |
Pin 47 |
Pin 31 |
GPIO_26 |
Pin 40 |
Pin 30 |
Pin 8 |
Pin 48 |
Pin 30 |
GPIO_27 |
Pin 49 |
Pin 29 |
Pin 3 |
Pin 50 |
Pin 29 |
GPIO_28 |
Pin 50 |
Pin 28 |
Pin 4 |
Pin 51 |
Pin 28 |
GPIO_29 |
Pin 53 |
Pin 1 |
Pin 23 |
Pin 87 |
Pin 1 |
GPIO_30 |
Pin 52 |
Pin 2 |
Pin 22 |
Pin 86 |
Pin 2 |
GPIO_31 |
Pin 51 |
Pin 4 |
Pin 24 |
Pin 88 |
Pin 4 |
GSM/NB-IoT Module GPIO Mapping¶
GPIO Name |
MC20U Pin
|
M56 Pin |
MC60 Pin
|
M66 Pin |
BC20 Pin |
SIM868 Pin |
|---|---|---|---|---|---|---|
GPIO_0 |
Pin 47 |
Pin 12 |
Pin 47 |
Pin 16 |
Pin 2 |
Pin 1 |
GPIO_1 |
Pin 37 |
Pin 17 |
Pin 37 |
Pin 19 |
Pin 3 |
Pin 2 |
GPIO_2 |
Pin 35 |
Pin 24 |
Pin 35 |
Pin 20 |
Pin 4 |
Pin 3 |
GPIO_3 |
Pin 36 |
Pin 23 |
Pin 36 |
Pin 21 |
Pin 6 |
Pin 4 |
GPIO_4 |
Pin 38 |
Pin 26 |
Pin 38 |
Pin 22 |
Pin 7 |
Pin 5 |
GPIO_5 |
Pin 39 |
Pin 59 |
Pin 39 |
Pin 23 |
Pin 8 |
Pin 6 |
GPIO_6 |
Pin 59 |
Pin 4 |
Pin 59 |
Pin 28 |
Pin 9 |
Pin 7 |
GPIO_7 |
Pin 61 |
Pin 15 |
Pin 61 |
Pin 29 |
Pin 10 |
Pin 14 |
GPIO_8 |
Pin 62 |
Pin 27 |
Pin 62 |
Pin 30 |
Pin 24 |
Pin 15 |
GPIO_9 |
Pin 60 |
Pin 16 |
Pin 60 |
Pin 31 |
Pin 25 |
Pin 16 |
GPIO_10 |
Pin 3 |
Pin 78 |
Pin 7 |
Pin 32 |
Pin 28 |
Pin 17 |
GPIO_11 |
Pin 4 |
Pin 86 |
Pin 8 |
Pin 33 |
Pin 29 |
Pin 22 |
GPIO_12 |
Pin 7 |
Pin 87 |
Pin 9 |
Pin 15 |
Pin 30 |
Pin 23 |
GPIO_13 |
Pin 8 |
Pin 76 |
Pin 11 |
Pin 17 |
Pin 33 |
Pin 29 |
GPIO_14 |
Pin 9 |
Pin 77 |
Pin 12 |
Pin 18 |
Pin 34 |
Pin 41 |
GPIO_15 |
Pin 10 |
Pin 75 |
Pin 10 |
Pin 25 |
Pin 35 |
Pin 42 |
GPIO_16 |
Pin 13 |
Pin 44 |
Pin 57 |
Pin 38 |
Pin 36 |
Pin 46 |
GPIO_17 |
Pin 46 |
Pin 49 |
Pin 58 |
Pin 39 |
Pin 38 |
Pin 47 |
GPIO_18 |
Pin 55 |
Pin 88 |
Pin 63 |
– |
Pin 39 |
Pin 48 |
GPIO_19 |
Pin 63 |
Pin 45 |
Pin 64 |
– |
Pin 47 |
Pin 49 |
GPIO_20 |
Pin 66 |
Pin 3 |
Pin 65 |
– |
Pin 54 |
Pin 50 |
GPIO_21 |
Pin 56 |
Pin 1 |
Pin 46 |
– |
Pin 57 |
Pin 51 |
GPIO_22 |
Pin 57 |
Pin 53 |
Pin 34* |
– |
Pin 58 |
Pin 52 |
GPIO_23 |
Pin 58 |
Pin 48 |
Pin 33* |
– |
Pin 59 |
Pin 53 |
GPIO_24 |
Pin 64 |
Pin 28 |
Pin 24 |
– |
Pin 60 |
Pin 54 |
GPIO_25 |
Pin 65 |
Pin 89 |
Pin 25 |
– |
Pin 61 |
Pin 55 |
GPIO_26 |
Pin 33 |
Pin 36 |
Pin 30 |
– |
Pin 62 |
Pin 57 |
GPIO_27 |
Pin 34 |
Pin 25 |
Pin 29 |
– |
Pin 63 |
Pin 58 |
GPIO_28 |
Pin 24 |
Pin 40 |
Pin 19 |
– |
Pin 67 |
Pin 64 |
GPIO_29 |
Pin 25 |
Pin 41 |
Pin 21 |
– |
Pin 68 |
Pin 65 |
GPIO_30 |
Pin 30 |
Pin 2 |
Pin 20 |
– |
– |
– |
GPIO_31 |
Pin 29 |
Pin 13 |
Pin 28 |
– |
– |
– |
GPIO_32 |
Pin 19 |
Pin 62 |
– |
– |
– |
– |
GPIO_33 |
Pin 21 |
Pin 65 |
– |
– |
– |
– |
GPIO_34 |
Pin 20 |
Pin 64 |
– |
– |
– |
– |
GPIO_35 |
Pin 28 |
Pin 27 |
– |
– |
– |
– |
GPIO_36 |
Pin 67# |
Pin 66# |
– |
– |
– |
– |
GPIO_37 |
– |
Pin 60# |
– |
– |
– |
– |
GPIO_38 |
– |
Pin 19 |
– |
– |
– |
– |
GPIO_39 |
– |
Pin 29 |
– |
– |
– |
– |
GPIO_40 |
– |
Pin 30 |
– |
– |
– |
– |
GPIO_41 |
– |
Pin 34 |
– |
– |
– |
– |
GPIO_42 |
– |
Pin 35 |
– |
– |
– |
– |
GPIO_43 |
– |
Pin 52 |
– |
– |
– |
– |
GPIO_44 |
– |
Pin 58 |
– |
– |
– |
– |
GPIO_45 |
– |
Pin 69 |
– |
– |
– |
– |
GPIO_46 |
– |
Pin 70 |
– |
– |
– |
– |
GPIO_47 |
– |
Pin 71 |
– |
– |
– |
– |
GPIO_48 |
– |
Pin 80 |
– |
– |
– |
– |
GPIO_49 |
– |
Pin 81 |
– |
– |
– |
– |
GPIO_50 |
– |
Pin 82 |
– |
– |
– |
– |
GPIO_51 |
– |
Pin 31 |
– |
– |
– |
– |
API Reference¶
Header File¶
Functions¶
-
int
gpio_request(unsigned int ioname, int flags)¶ Request a GPIO
- Return
On success returns handle which can be used with other gpio APIs on failure negative error code is returned
- Parameters
ioname: name of GPIO from gpioname_eflags: ORed list of gpio initialization flags gpio_conf_e
-
int
gpio_free(int handle)¶ Free a previously requested gpio
- Return
0 on success, negative error code on failure
- Parameters
handle: Handle to gpio object returned by gpio_request
-
int
gpio_read(int handle)¶ Read input GPIO value
- Return
input gpio level gpio_level_e
- Parameters
handle: Handle to gpio object returned by gpio_request
-
int
gpio_write(int handle, int value)¶ Write output GPIO pin
- Return
0 on success, negative value on failure
- Parameters
handle: Handle to gpio object returned by gpio_requestvalue: gpio level to set gpio_level_e
-
int
gpio_setdir(int handle, int dir)¶ Set or change gpio direction
- Return
0 on success, negative value on failure
- Parameters
handle: Handle to gpio object returned by gpio_requestdir: New gpio configuration, ORed list of GPIO flags gpio_conf_e
-
int
gpio_settrigger(int handle, gpio_callback_f fn, int trigger_time, int flags)¶ Enable GPIO trigger
GPIO driver provide slow trigger option without debounce support to check and confirm active trigger. On active trigger, callback function is called with state of gpio. Triggers are only possible on gpio configured as inputs. If input level changes after first transition is detected and deounce time, internal debounce timer is reset for resampling of IO state.
- Return
0 on success, negative error code on failure
- Parameters
handle: Handle to gpio object returned by gpio_requestfn: Callback function of type gpio_callback_ftrigger_time: Debounce time or trigger delayflags: Type of trigger requested gpio_trigger_e
-
int
gpio_trigger_disable(int handle)¶ Disable GPIO trigger
- Return
0 on success, negative error code on failure
- Parameters
handle: Handle to gpio object returned by gpio_request
-
int
gpio_setuserdata(int handle, void *arg)¶ Assign user specific data or application context to GPIO object
- Return
0 on success, negative value on failure
- Parameters
handle: Handle to gpio object returned by gpio_requestarg: pointer to user data
-
void *
gpio_getuserdata(int handle)¶ Get user specific data or application context assigned to gpio object by gpio_setuserdata function
- Return
pointer to user data if data is assigned, NULL otherwise
- Parameters
handle: Handle to gpio object returned by gpio_request
-
int
gpio_readfast(int handle)¶ GPIO Fast read Use with valid IO handle only
- Return
input gpio level gpio_level_e
- Parameters
handle: Handle to gpio object returned by gpio_request
-
int
gpio_writefast(int handle, int value)¶ GPIO Fast write Use with valid IO handle only
- Return
0 on success, negative value on failure
- Parameters
handle: Handle to gpio object returned by gpio_requestvalue: gpio level to set gpio_level_e
Type Definitions¶
-
typedef void (*
gpio_callback_f)(int handle, int pin, int level)¶ GPIO Callback function prototype
- Parameters
handle:pin:level:
Enumerations¶
-
enum
gpio_level_e¶ GPIO Level
Values:
-
enumerator
GPIO_LEVEL_LOW¶ GPIO Low level
-
enumerator
GPIO_LEVEL_HIGH¶ GPIO High level
-
enumerator
-
enum
gpio_conf_e¶ GPIO Configuration Flags
Flags can be ORed together to configure a GPIO.
Values:
-
enumerator
GPIO_FLAG_INPUT= 0x00¶ Configure gpio as input
-
enumerator
GPIO_FLAG_OUTPUT= 0x01¶ Configure gpio as Output
-
enumerator
GPIO_FLAG_DEFHIGH= 0x02¶ Set default state to high during gpio_request
-
enumerator
GPIO_FLAG_DEFLOW= 0x00¶ Set default state to low during gpio_request
-
enumerator
GPIO_FLAG_PULLUP= 0x04¶ Enable weak pullup
-
enumerator
GPIO_FLAG_PULLDOWN= 0x08¶ Enable weak pulldown
-
enumerator
GPIO_FLAG_PULLSTRG= 0x10¶ This flag when combined with GPIO_FLAG_PULLUP/GPIO_FLAG_PULLDOWN enables strong pull-up/pull-down respectively.
-
enumerator
-
enum
gpio_trigger_e¶ GPIO Trigger Levels
Values:
-
enumerator
GPIO_TRIG_LOW= 1¶ Trigger High -> Low level transition
-
enumerator
GPIO_TRIG_HIGH¶ Trigger Low -> High level transition
-
enumerator
GPIO_TRIG_BOTH¶ Trigger on change of either level
-
enumerator
Note
Please refer header file for actual number of GPIOs available for respective board.
Header File¶
Enumerations¶
-
enum
gpioname_e¶ GPIO List Each GPIO can be configured for alternate function via Pinmux APIs, Check “See Also” section for more information
Values:
-
enumerator
GPIO_0¶ Pin 12
-
enumerator
GPIO_1¶ Pin 17
-
enumerator
GPIO_2¶ Pin 24
-
enumerator
GPIO_3¶ Pin 23
-
enumerator
GPIO_4¶ Pin 26
-
enumerator
GPIO_5¶ Pin 59
-
enumerator
GPIO_6¶ Pin 4
-
enumerator
GPIO_7¶ Pin 15
-
enumerator
GPIO_8¶ Pin 27
-
enumerator
GPIO_9¶ Pin 16
-
enumerator
GPIO_10¶ Pin 78
-
enumerator
GPIO_11¶ Pin 86
-
enumerator
GPIO_12¶ Pin 87
-
enumerator
GPIO_13¶ Pin 76
-
enumerator
GPIO_14¶ Pin 77
-
enumerator
GPIO_15¶ Pin 75
-
enumerator
GPIO_16¶ Pin 44
-
enumerator
GPIO_17¶ Pin 49
-
enumerator
GPIO_18¶ Pin 88
-
enumerator
GPIO_19¶ Pin 45
-
enumerator
GPIO_20¶ Pin 3
-
enumerator
GPIO_21¶ Pin 1
-
enumerator
GPIO_22¶ Pin 53
-
enumerator
GPIO_23¶ Pin 48
-
enumerator
GPIO_24¶ Pin 28
-
enumerator
GPIO_25¶ Pin 89
-
enumerator
GPIO_26¶ Pin 36
-
enumerator
GPIO_27¶ Pin 25
-
enumerator
GPIO_28¶ Pin 40
-
enumerator
GPIO_29¶ Pin 41
-
enumerator
GPIO_30¶ Pin 2
-
enumerator
GPIO_31¶ Pin 13
-
enumerator
GPIO_32¶ Pin 62
-
enumerator
GPIO_33¶ Pin 65
-
enumerator
GPIO_34¶ Pin 64
-
enumerator
GPIO_35¶ Pin 27
-
enumerator
GPIO_36¶ Pin 66 - Input Only
-
enumerator
GPIO_37¶ Pin 60 - Input Only
-
enumerator
GPIO_38¶ Pin 19
-
enumerator
GPIO_39¶ Pin 29
-
enumerator
GPIO_40¶ Pin 30
-
enumerator
GPIO_41¶ Pin 34
-
enumerator
GPIO_42¶ Pin 35
-
enumerator
GPIO_43¶ Pin 52
-
enumerator
GPIO_44¶ Pin 58
-
enumerator
GPIO_45¶ Pin 69
-
enumerator
GPIO_46¶ Pin 70
-
enumerator
GPIO_47¶ Pin 71
-
enumerator
GPIO_48¶ Pin 80
-
enumerator
GPIO_49¶ Pin 81
-
enumerator
GPIO_50¶ Pin 82
-
enumerator
GPIO_51¶ Pin 31
-
enumerator
GPIO_PIN_MAX¶
-
enumerator
