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
S20U Pin

M56 Pin

MC60 Pin
MC20 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

int gpio_free(int handle)

Free a previously requested gpio

Return

0 on success, negative error code on failure

Parameters

int gpio_read(int handle)

Read input GPIO value

Return

input gpio level gpio_level_e

Parameters

int gpio_write(int handle, int value)

Write output GPIO pin

Return

0 on success, negative value on failure

Parameters

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_request

  • dir: 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

int gpio_trigger_disable(int handle)

Disable GPIO trigger

Return

0 on success, negative error code on failure

Parameters

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_request

  • arg: 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

int gpio_readfast(int handle)

GPIO Fast read Use with valid IO handle only

Return

input gpio level gpio_level_e

Parameters

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

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

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.

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

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