GPIO API
========
.. |br| raw:: html
Logicrom provide access to complete GPIO available on wireless modules which are
generally not available with standard vendor SDK.
Example Usage
-------------
.. code-block:: c
#include
/* GPIO Configure as output */
int handle = gpio_request(GPIO_0, GPIO_FLAG_OUTPUT | GPIO_FLAG_DEFHIGH);
/* GPIO Write */
gpio_write(handle, GPIO_LEVEL_HIGH);
/* Fast GPIO access */
gpio_writefast(handle, GPIO_LEVEL_LOW);
/* Change direction */
gpio_setdir(handle, GPIO_FLAG_INPUT | GPIO_FLAG_PULLUP);
/* GPIO Read */
level = gpio_read(handle);
/* Fast GPIO read */
level = gpio_readfast(handle);
/* GPIO input trigger */
gpio_trigger_enable(handle, gpio_trigger_callback, 500, GPIO_TRIG_BOTH);
Application Example
-------------------
.. raw:: html
waybyte/example-gpio
4G LTE Module GPIO Mapping
--------------------------
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO Name | EC600U | EC200U | N58 | N716 | L610 | EG915U |
+============+===========+===========+==========+==========+==========+===========+
| GPIO_0 | Pin 61 | Pin 27 | Pin 50 | Pin 99 | Pin 27 | Pin 4 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_1 | Pin 58 | Pin 26 | Pin 90 | Pin 100 | Pin 26 | Pin 5 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_2 | Pin 59 | Pin 24 | Pin 80 | Pin 101 | Pin 24 | Pin 6 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_3 | Pin 60 | Pin 25 | Pin 78 | Pin 102 | Pin 25 | Pin 7 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_4 | Pin 69 | Pin 13 | Pin 96 | Pin 54 | Pin 13 | Pin 1 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_5 | Pin 70 | Pin 135 | Pin 39 | Pin 38 | Pin 135 | Pin 20 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_6 | -- | -- | -- | -- | -- | -- |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_7 | Pin 118 | Pin 133 | Pin 25 | Pin 89 | Pin 133 | Pin 65 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_8 | Pin 99 | Pin 134 | -- | -- | Pin 134 | Pin 104 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_9 | Pin 98 | Pin 132 | Pin 2 | Pin 45 | Pin 132 | Pin 11 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_10 | Pin 95 | Pin 131 | Pin 79 | Pin 32 | Pin 131 | Pin 12 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_11 | Pin 119 | Pin 130 | Pin 83 | Pin 21 | Pin 130 | Pin 13 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_12 | Pin 100 | Pin 129 | Pin 13 | Pin 22 | Pin 129 | Pin 14 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_13 | Pin 54 | Pin 5 | -- | Pin 67 | Pin 5 | Pin 21 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_14 | Pin 57 | Pin 141 | Pin 82 | Pin 71 | Pin 141 | Pin 40 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_15 | Pin 56 | Pin 142 | Pin 81 | Pin 70 | Pin 142 | Pin 41 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_16 | Pin 11 | Pin 41 | Pin 59 | Pin 122 | Pin 41 | Pin 103 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_17 | Pin 12 | Pin 42 | Pin 58 | Pin 121 | Pin 42 | Pin 114 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_18 | Pin 120 | Pin 61 | Pin 54 | Pin 115 | Pin 61 | Pin 111 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_19 | Pin 16 | Pin 62 | Pin 60 | Pin 65 | Pin 62 | Pin 115 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_20 | Pin 10 | Pin 63 | Pin 61 | Pin 106 | Pin 63 | Pin 95 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_21 | Pin 14 | Pin 66 | Pin 55 | Pin 116 | Pin 66 | Pin 97 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_22 | Pin 15 | Pin 6 | Pin 56 | Pin 114 | Pin 6 | Pin 98 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_23 | Pin 13 | Pin 23 | Pin 57 | Pin 117 | Pin 23 | Pin 78 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_24 | Pin 48 | Pin 33 | Pin 5 | Pin 52 | Pin 33 | Pin 38 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_25 | Pin 39 | Pin 31 | Pin 7 | Pin 47 | Pin 31 | Pin 30 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_26 | Pin 40 | Pin 30 | Pin 8 | Pin 48 | Pin 30 | Pin 39 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_27 | Pin 49 | Pin 29 | Pin 3 | Pin 50 | Pin 29 | Pin 18 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_28 | Pin 50 | Pin 28 | Pin 4 | Pin 51 | Pin 28 | Pin 19 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_29 | Pin 53 | Pin 1 | Pin 23 | Pin 87 | Pin 1 | Pin 84 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_30 | Pin 52 | Pin 2 | Pin 22 | Pin 86 | Pin 2 | Pin 86 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_31 | Pin 51 | Pin 4 | Pin 24 | Pin 88 | Pin 4 | Pin 85 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_0_ALT | Pin 66 | Pin 125 | Pin 68 | Pin 92 | Pin 125 | Pin 116 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_1_ALT | Pin 63 | Pin 124 | Pin 67 | Pin 90 | Pin 124 | Pin 106 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_2_ALT | Pin 67 | Pin 123 | Pin 66 | Pin 93 | Pin 123 | Pin 105 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_3_ALT | Pin 65 | Pin 122 | Pin 65 | Pin 91 | Pin 122 | Pin 16 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_4_ALT | Pin 137 | Pin 121 | Pin 73 | Pin 94 | Pin 121 | Pin 108 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_5_ALT | Pin 62 | Pin 119 | Pin 64 | Pin 96 | Pin 119 | Pin 92 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_9_ALT | Pin 1 | Pin 40 | Pin 84 | Pin 6 | Pin 40 | Pin 26 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_10_ALT| Pin 4 | Pin 37 | Pin 87 | Pin 7 | Pin 37 | Pin 25 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_11_ALT| Pin 3 | Pin 38 | Pin 86 | Pin 5 | Pin 38 | Pin 64 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_12_ALT| Pin 2 | Pin 39 | Pin 85 | Pin 4 | Pin 39 | Pin 88 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_18_ALT| Pin 34 | Pin 65 | Pin 51 | Pin 56 | Pin 65 | Pin 37 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_19_ALT| Pin 33 | Pin 64 | Pin 52 | Pin 57 | Pin 64 | Pin 36 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_20_ALT| Pin 123 | Pin 136 | Pin 70 | Pin 12 | Pin 136 | Pin 28 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_21_ALT| Pin 124 | Pin 139 | Pin 69 | Pin 11 | Pin 139 | Pin 27 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_22_ALT| Pin 122 | Pin 126 | Pin 71 | Pin 13 | Pin 126 | Pin 83 |
+------------+-----------+-----------+----------+----------+----------+-----------+
| GPIO_23_ALT| Pin 121 | Pin 127 | Pin 72 | Pin 14 | Pin 127 | Pin 42 |
+------------+-----------+-----------+----------+----------+----------+-----------+
.. note:: Only one pin can be configured at a time for GPIO function between GPIO_x and GPIO_x_ALT.
For example, if GPIO_0_ALT is configured as GPIO, GPIO_1 pin cannot be used as GPIO.
GSM/NB-IoT Module GPIO Mapping
------------------------------
RDA8955 based modules
^^^^^^^^^^^^^^^^^^^^^
+------------+------------+------------+----------+
| GPIO Name | M590 Pin | MC65 Pin | A9 Pin |
+============+============+============+==========+
| GPIO_0 | Pin 7 | Pin 33 | Pin 53 |
+------------+------------+------------+----------+
| GPIO_1 | Pin 8 | Pin 34 | Pin 54 |
+------------+------------+------------+----------+
| GPIO_2 | Pin 41 | Pin 38 | Pin 52 |
+------------+------------+------------+----------+
| GPIO_3 | Pin 42 | Pin 39 | Pin 51 |
+------------+------------+------------+----------+
| GPIO_4 | Pin 59 | Pin 24 | Pin 49 |
+------------+------------+------------+----------+
| GPIO_5 | Pin 58 | Pin 25 | Pin 50 |
+------------+------------+------------+----------+
| GPIO_6 | Pin 60 | Pin 35 | Pin 48 |
+------------+------------+------------+----------+
| GPIO_7 | Pin 61 | Pin 36 | Pin 47 |
+------------+------------+------------+----------+
| GPIO_8 | Pin 35 | Pin 8 | Pin 8 |
+------------+------------+------------+----------+
| GPIO_9 | Pin 34 | Pin 7 | Pin 7 |
+------------+------------+------------+----------+
| GPIO_10 | Pin 33 | Pin 9 | Pin 6 |
+------------+------------+------------+----------+
| GPIO_11 | Pin 32 | Pin 10 | Pin 5 |
+------------+------------+------------+----------+
| GPIO_12 | Pin 31 | Pin 11 | Pin 4 |
+------------+------------+------------+----------+
| GPIO_13 | Pin 30 | Pin 12 | Pin 3 |
+------------+------------+------------+----------+
| GPIO_14 | Pin 56 | Pin 59 | Pin 20 |
+------------+------------+------------+----------+
| GPIO_15 | Pin 55 | Pin 61 | Pin 19 |
+------------+------------+------------+----------+
| GPIO_16 | Pin 53 | Pin 62 | Pin 23 |
+------------+------------+------------+----------+
| GPIO_17 | Pin 54 | Pin 60 | Pin 21 |
+------------+------------+------------+----------+
| GPIO_18 | Pin 57 | -- | Pin 22 |
+------------+------------+------------+----------+
| GPIO_19 | Pin 23 | Pin 56 | Pin 1 |
+------------+------------+------------+----------+
| GPIO_20 | Pin 24 | Pin 65 | Pin 2 |
+------------+------------+------------+----------+
| GPIO_21 | Pin 25 | Pin 64 | -- |
+------------+------------+------------+----------+
| GPIO_22 | Pin 26 | Pin 57 | -- |
+------------+------------+------------+----------+
| GPIO_23 | Pin 27 | Pin 58 | -- |
+------------+------------+------------+----------+
| GPIO_24 | Pin 28 | Pin 63 | -- |
+------------+------------+------------+----------+
| GPIO_25 | Pin 10 | -- | Pin 32 |
+------------+------------+------------+----------+
| GPIO_26 | -- | -- | Pin 25 |
+------------+------------+------------+----------+
| GPIO_27 | -- | -- | Pin 26 |
+------------+------------+------------+----------+
| GPIO_28 | -- | -- | Pin 30 |
+------------+------------+------------+----------+
| GPIO_29 | Pin 9 | -- | Pin 24 |
+------------+------------+------------+----------+
| GPIO_30 | Pin 5 | Pin 28 | Pin 31 |
+------------+------------+------------+----------+
| GPIO_31 | Pin 17 | Pin 47 | Pin 16 |
+------------+------------+------------+----------+
| GPIO_32 | Pin 50 | Pin 37 | -- |
+------------+------------+------------+----------+
| GPIO_33 | Pin 66 | -- | -- |
+------------+------------+------------+----------+
| GPIO_34 | Pin 64 | Pin 46 | -- |
+------------+------------+------------+----------+
| GPIO_35 | Pin 63 | Pin 30 | Pin 38 |
+------------+------------+------------+----------+
| GPIO_36 | Pin 62 | Pin 29 | Pin 37 |
+------------+------------+------------+----------+
MT2503/MT6261/MT2625 based modules
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+------------+------------------+-----------+-----------------+-----------+------------+------------+
| GPIO Name | MC20U Pin | M56 Pin | MC60 Pin | M66 Pin | BC20 Pin | SIM868 |
| | | | |br| MC20 Pin | | | 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
-------------
.. include:: /inc/gpio.inc
.. note:: Please refer header file for actual number of GPIOs available for respective board.
.. include:: /inc/def_gpio.inc