Ultibo API
C/C++ API for Ultibo Core
Loading...
Searching...
No Matches
gpio.h
Go to the documentation of this file.
1/*
2 * This file is part of the Ultibo project, https://ultibo.org/
3 *
4 * The MIT License (MIT)
5 *
6 * Copyright (c) 2026 Garry Wood <garry@softoz.com.au>
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a copy
9 * of this software and associated documentation files (the "Software"), to deal
10 * in the Software without restriction, including without limitation the rights
11 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 * copies of the Software, and to permit persons to whom the Software is
13 * furnished to do so, subject to the following conditions:
14 *
15 * The above copyright notice and this permission notice shall be included in
16 * all copies or substantial portions of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 * THE SOFTWARE.
25 */
26#ifndef _ULTIBO_GPIO_H
27#define _ULTIBO_GPIO_H
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
33#include "ultibo/globaltypes.h"
34#include "ultibo/globalconst.h"
35#include "ultibo/devices.h"
36
38#define GPIO_NAME_PREFIX "GPIO"
39
41#define GPIO_TYPE_NONE 0
42
43#define GPIO_TYPE_MAX 0
44
46#define GPIO_STATE_DISABLED 0
47#define GPIO_STATE_ENABLED 1
48
49#define GPIO_STATE_MAX 1
50
52#define GPIO_FLAG_NONE 0x00000000
53#define GPIO_FLAG_PULL_UP 0x00000001
54#define GPIO_FLAG_PULL_DOWN 0x00000002
55#define GPIO_FLAG_TRIGGER_LOW 0x00000004
56#define GPIO_FLAG_TRIGGER_HIGH 0x00000008
57#define GPIO_FLAG_TRIGGER_RISING 0x00000010
58#define GPIO_FLAG_TRIGGER_FALLING 0x00000020
59#define GPIO_FLAG_TRIGGER_EDGE 0x00000040
60#define GPIO_FLAG_TRIGGER_ASYNC 0x00000080
61
63#define GPIO_EVENT_FLAG_NONE 0x00000000
64#define GPIO_EVENT_FLAG_REPEAT 0x00000001
65#define GPIO_EVENT_FLAG_INTERRUPT 0x00000002
66 // Caution: Events called by the interrupt handler must obey interrupt
67 // rules with regard to locks, memory allocation and latency
68
70
74{
75 uint32_t flags;
76 uint32_t pinmin;
77 uint32_t pinmax;
78 uint32_t pincount;
79 uint32_t functionmin;
80 uint32_t functionmax;
81 uint32_t functioncount;
82};
83
85typedef struct _GPIO_DEVICE GPIO_DEVICE;
86typedef struct _GPIO_PIN GPIO_PIN;
87
89typedef struct _GPIO_EVENT GPIO_EVENT;
99
102{
104 uint32_t pin;
105 uint32_t flags;
106 uint32_t trigger;
107 uint32_t count;
110};
111
113typedef uint32_t STDCALL (*gpio_enumerate_cb)(GPIO_DEVICE *gpio, void *data);
115typedef uint32_t STDCALL (*gpio_notification_cb)(DEVICE *device, void *data, uint32_t notification);
116
118typedef uint32_t STDCALL (*gpio_device_start_proc)(GPIO_DEVICE *gpio);
119typedef uint32_t STDCALL (*gpio_device_stop_proc)(GPIO_DEVICE *gpio);
120
121typedef uint32_t STDCALL (*gpio_device_read_proc)(GPIO_DEVICE *gpio, uint32_t reg);
122typedef void STDCALL (*gpio_device_write_proc)(GPIO_DEVICE *gpio, uint32_t reg, uint32_t value);
123
124typedef uint32_t STDCALL (*gpio_device_input_get_proc)(GPIO_DEVICE *gpio, uint32_t pin);
125typedef uint32_t STDCALL (*gpio_device_input_wait_proc)(GPIO_DEVICE *gpio, uint32_t pin, uint32_t trigger, uint32_t timeout);
126typedef uint32_t STDCALL (*gpio_device_input_event_proc)(GPIO_DEVICE *gpio, uint32_t pin, uint32_t trigger, uint32_t flags, uint32_t timeout, gpio_event_cb callback, void *data);
127typedef uint32_t STDCALL (*gpio_device_input_cancel_proc)(GPIO_DEVICE *gpio, uint32_t pin);
128
129typedef uint32_t STDCALL (*gpio_device_output_set_proc)(GPIO_DEVICE *gpio, uint32_t pin, uint32_t level);
130
131typedef uint32_t STDCALL (*gpio_device_pull_get_proc)(GPIO_DEVICE *gpio, uint32_t pin);
132typedef uint32_t STDCALL (*gpio_device_pull_select_proc)(GPIO_DEVICE *gpio, uint32_t pin, uint32_t mode);
133
134typedef uint32_t STDCALL (*gpio_device_function_get_proc)(GPIO_DEVICE *gpio, uint32_t pin);
135typedef uint32_t STDCALL (*gpio_device_function_select_proc)(GPIO_DEVICE *gpio, uint32_t pin, uint32_t mode);
136
138
174
176typedef struct _GPIO_INFO GPIO_INFO;
178{
180 uint32_t pin;
181 uint32_t func;
182 uint32_t pull;
183 uint32_t trigger;
184};
185
187static const GPIO_INFO GPIO_INFO_UNKNOWN = {
188 NULL,
193
195
202
209
216uint32_t STDCALL gpio_device_read(GPIO_DEVICE *gpio, uint32_t reg);
217
224void STDCALL gpio_device_write(GPIO_DEVICE *gpio, uint32_t reg, uint32_t value);
225
232uint32_t STDCALL gpio_device_input_get(GPIO_DEVICE *gpio, uint32_t pin);
233
242uint32_t STDCALL gpio_device_input_wait(GPIO_DEVICE *gpio, uint32_t pin, uint32_t trigger, uint32_t timeout);
243
256uint32_t STDCALL gpio_device_input_event(GPIO_DEVICE *gpio, uint32_t pin, uint32_t trigger, uint32_t flags, uint32_t timeout, gpio_event_cb callback, void *data);
257
264uint32_t STDCALL gpio_device_input_cancel(GPIO_DEVICE *gpio, uint32_t pin);
265
273uint32_t STDCALL gpio_device_output_set(GPIO_DEVICE *gpio, uint32_t pin, uint32_t level);
274
284uint32_t STDCALL gpio_device_level_get(GPIO_DEVICE *gpio, uint32_t pin);
285
296uint32_t STDCALL gpio_device_level_set(GPIO_DEVICE *gpio, uint32_t pin, uint32_t level);
297
304uint32_t STDCALL gpio_device_pull_get(GPIO_DEVICE *gpio, uint32_t pin);
305
313uint32_t STDCALL gpio_device_pull_select(GPIO_DEVICE *gpio, uint32_t pin, uint32_t mode);
314
321uint32_t STDCALL gpio_device_function_get(GPIO_DEVICE *gpio, uint32_t pin);
322
330uint32_t STDCALL gpio_device_function_select(GPIO_DEVICE *gpio, uint32_t pin, uint32_t mode);
331
340
348
354
361
368
375
382
389
396
403
410uint32_t STDCALL gpio_device_enumerate(gpio_enumerate_cb callback, void *data);
411
420uint32_t STDCALL gpio_device_notification(GPIO_DEVICE *gpio, gpio_notification_cb callback, void *data, uint32_t notification, uint32_t flags);
421
423
427uint32_t STDCALL gpio_get_count(void);
428
433
438
443
447uint32_t STDCALL gpio_type_to_string(uint32_t gpiotype, char *string, uint32_t len);
448
452uint32_t STDCALL gpio_state_to_string(uint32_t gpiostate, char *string, uint32_t len);
453
459GPIO_EVENT * STDCALL gpio_device_create_event(GPIO_DEVICE *gpio, GPIO_PIN *pin, gpio_event_cb callback, void *data, uint32_t timeout);
460
467
474
481
482uint32_t STDCALL gpio_pin_to_string(uint32_t pin, char *string, uint32_t len);
483uint32_t STDCALL gpio_level_to_string(uint32_t level, char *string, uint32_t len);
484uint32_t STDCALL gpio_trigger_to_string(uint32_t trigger, char *string, uint32_t len);
485
486uint32_t STDCALL gpio_pull_to_string(uint32_t value, char *string, uint32_t len);
487uint32_t STDCALL gpio_function_to_string(uint32_t value, char *string, uint32_t len);
488
489#ifdef __cplusplus
490}
491#endif
492
493#endif // _ULTIBO_GPIO_H
struct _DEVICE DEVICE
Definition devices.h:373
#define GPIO_PIN_UNKNOWN
Definition globalconst.h:1373
#define GPIO_FUNCTION_UNKNOWN
Returned by GPIOFunctionGet on error (eg device does not support reading the function state).
Definition globalconst.h:1385
#define GPIO_PULL_UNKNOWN
Returned by GPIOPullGet on error (eg device does not support reading the PullUp/Down state).
Definition globalconst.h:1398
#define GPIO_TRIGGER_UNKNOWN
Passed to GPIO callback event when device does not support determining the trigger source.
Definition globalconst.h:1410
HANDLE EVENT_HANDLE
Definition globaltypes.h:117
#define STDCALL
Definition globaltypes.h:45
HANDLE MUTEX_HANDLE
Definition globaltypes.h:105
uint32_t STDCALL gpio_device_start(GPIO_DEVICE *gpio)
Start the specified GPIO device and enable access.
GPIO_DEVICE *STDCALL gpio_device_create_ex(uint32_t size)
Create a new GPIO entry.
uint32_t STDCALL gpio_device_deregister(GPIO_DEVICE *gpio)
Deregister a GPIO from the GPIO table.
uint32_t STDCALL(* gpio_device_input_event_proc)(GPIO_DEVICE *gpio, uint32_t pin, uint32_t trigger, uint32_t flags, uint32_t timeout, gpio_event_cb callback, void *data)
Definition gpio.h:126
uint32_t STDCALL gpio_device_notification(GPIO_DEVICE *gpio, gpio_notification_cb callback, void *data, uint32_t notification, uint32_t flags)
Register a notification for GPIO device changes.
GPIO_DEVICE *STDCALL gpio_device_find_by_name(const char *name)
Find a GPIO device by name in the GPIO table.
uint32_t STDCALL gpio_trigger_to_string(uint32_t trigger, char *string, uint32_t len)
uint32_t STDCALL gpio_state_to_string(uint32_t gpiostate, char *string, uint32_t len)
Convert a GPIO state value to a string.
uint32_t STDCALL(* gpio_notification_cb)(DEVICE *device, void *data, uint32_t notification)
Definition gpio.h:115
uint32_t STDCALL gpio_device_output_set(GPIO_DEVICE *gpio, uint32_t pin, uint32_t level)
Set the state of a output pin on the specified GPIO device.
uint32_t STDCALL gpio_device_input_cancel(GPIO_DEVICE *gpio, uint32_t pin)
Cancel a previously scheduled event callback function for an input pin on the specified GPIO device.
uint32_t STDCALL gpio_device_input_get(GPIO_DEVICE *gpio, uint32_t pin)
Get the current state of an input pin on the specified GPIO device.
uint32_t STDCALL gpio_level_to_string(uint32_t level, char *string, uint32_t len)
uint32_t STDCALL gpio_pin_to_string(uint32_t pin, char *string, uint32_t len)
uint32_t STDCALL gpio_device_get_properties(GPIO_DEVICE *gpio, GPIO_PROPERTIES *properties)
Get the properties for the specified GPIO device.
uint32_t STDCALL gpio_get_count(void)
Get the current GPIO count.
uint32_t STDCALL(* gpio_device_function_get_proc)(GPIO_DEVICE *gpio, uint32_t pin)
Definition gpio.h:134
uint32_t STDCALL(* gpio_device_stop_proc)(GPIO_DEVICE *gpio)
Definition gpio.h:119
uint32_t STDCALL gpio_device_pull_get(GPIO_DEVICE *gpio, uint32_t pin)
Get the current pull state of a pin on the specified GPIO device.
uint32_t STDCALL gpio_function_to_string(uint32_t value, char *string, uint32_t len)
uint32_t STDCALL(* gpio_device_input_wait_proc)(GPIO_DEVICE *gpio, uint32_t pin, uint32_t trigger, uint32_t timeout)
Definition gpio.h:125
uint32_t STDCALL gpio_device_pull_select(GPIO_DEVICE *gpio, uint32_t pin, uint32_t mode)
Change the pull state of a pin on the specified GPIO device.
struct _GPIO_EVENT GPIO_EVENT
Definition gpio.h:89
uint32_t STDCALL gpio_device_register_event(GPIO_DEVICE *gpio, GPIO_PIN *pin, GPIO_EVENT *event)
Register an event in the event list of the supplied Pin.
uint32_t STDCALL gpio_device_level_get(GPIO_DEVICE *gpio, uint32_t pin)
Get the current level (state) of a pin on the specified GPIO device.
GPIO_DEVICE *STDCALL gpio_device_get_default(void)
Get the current default GPIO device.
uint32_t STDCALL(* gpio_device_start_proc)(GPIO_DEVICE *gpio)
Definition gpio.h:118
uint32_t STDCALL(* gpio_device_function_select_proc)(GPIO_DEVICE *gpio, uint32_t pin, uint32_t mode)
Definition gpio.h:135
uint32_t STDCALL gpio_device_deregister_event(GPIO_DEVICE *gpio, GPIO_PIN *pin, GPIO_EVENT *event)
Deregister an event from the event list of the supplied Pin.
uint32_t STDCALL gpio_device_read(GPIO_DEVICE *gpio, uint32_t reg)
Perform a direct read from a register of the specified GPIO device.
uint32_t STDCALL(* gpio_device_input_cancel_proc)(GPIO_DEVICE *gpio, uint32_t pin)
Definition gpio.h:127
uint32_t STDCALL gpio_device_function_select(GPIO_DEVICE *gpio, uint32_t pin, uint32_t mode)
Change the function of a pin on the specified GPIO device.
uint32_t STDCALL(* gpio_enumerate_cb)(GPIO_DEVICE *gpio, void *data)
Definition gpio.h:113
uint32_t STDCALL(* gpio_device_output_set_proc)(GPIO_DEVICE *gpio, uint32_t pin, uint32_t level)
Definition gpio.h:129
GPIO_DEVICE *STDCALL gpio_device_find_by_description(const char *description)
Find a GPIO device by description in the GPIO table.
void STDCALL(* gpio_device_write_proc)(GPIO_DEVICE *gpio, uint32_t reg, uint32_t value)
Definition gpio.h:122
GPIO_EVENT *STDCALL gpio_device_create_event(GPIO_DEVICE *gpio, GPIO_PIN *pin, gpio_event_cb callback, void *data, uint32_t timeout)
Create a new event using the supplied parameters.
uint32_t STDCALL gpio_device_stop(GPIO_DEVICE *gpio)
Stop the specified GPIO device and disable access.
uint32_t STDCALL(* gpio_device_read_proc)(GPIO_DEVICE *gpio, uint32_t reg)
Definition gpio.h:121
struct _GPIO_DEVICE GPIO_DEVICE
Forward declared for GPIOPin.
Definition gpio.h:85
GPIO_DEVICE *STDCALL gpio_device_find(uint32_t gpioid)
Find a GPIO device by ID in the GPIO table.
struct _GPIO_INFO GPIO_INFO
Definition gpio.h:176
struct _GPIO_PROPERTIES GPIO_PROPERTIES
Definition gpio.h:72
uint32_t STDCALL gpio_device_input_event(GPIO_DEVICE *gpio, uint32_t pin, uint32_t trigger, uint32_t flags, uint32_t timeout, gpio_event_cb callback, void *data)
Schedule a function to be called when the state of a input pin changes on the specified GPIO device.
struct _GPIO_PIN GPIO_PIN
Forward declared for GPIOEvent.
Definition gpio.h:86
uint32_t STDCALL gpio_device_register(GPIO_DEVICE *gpio)
Register a new GPIO in the GPIO table.
uint32_t STDCALL(* gpio_device_pull_get_proc)(GPIO_DEVICE *gpio, uint32_t pin)
Definition gpio.h:131
uint32_t STDCALL gpio_device_level_set(GPIO_DEVICE *gpio, uint32_t pin, uint32_t level)
Set the level (state) of a pin on the specified GPIO device.
GPIO_DEVICE *STDCALL gpio_device_check(GPIO_DEVICE *gpio)
Check if the supplied GPIO is in the GPIO table.
uint32_t STDCALL(* gpio_device_get_properties_proc)(GPIO_DEVICE *gpio, GPIO_PROPERTIES *properties)
Definition gpio.h:137
uint32_t STDCALL gpio_device_function_get(GPIO_DEVICE *gpio, uint32_t pin)
Get the current function of a pin on the specified GPIO device.
uint32_t STDCALL gpio_device_set_default(GPIO_DEVICE *gpio)
Set the current default GPIO device.
uint32_t STDCALL gpio_device_enumerate(gpio_enumerate_cb callback, void *data)
Enumerate all GPIO devices in the GPIO table.
uint32_t STDCALL gpio_type_to_string(uint32_t gpiotype, char *string, uint32_t len)
Convert a GPIO type value to a string.
uint32_t STDCALL gpio_pull_to_string(uint32_t value, char *string, uint32_t len)
uint32_t STDCALL gpio_device_destroy_event(GPIO_DEVICE *gpio, GPIO_EVENT *event)
Destroy an existing event.
uint32_t STDCALL(* gpio_device_pull_select_proc)(GPIO_DEVICE *gpio, uint32_t pin, uint32_t mode)
Definition gpio.h:132
uint32_t STDCALL(* gpio_device_input_get_proc)(GPIO_DEVICE *gpio, uint32_t pin)
Definition gpio.h:124
void STDCALL gpio_device_write(GPIO_DEVICE *gpio, uint32_t reg, uint32_t value)
Perform a direct write to a register of the specified GPIO device.
uint32_t STDCALL gpio_device_destroy(GPIO_DEVICE *gpio)
Destroy an existing GPIO entry.
GPIO_DEVICE *STDCALL gpio_device_create(void)
Create a new GPIO entry.
uint32_t STDCALL gpio_device_input_wait(GPIO_DEVICE *gpio, uint32_t pin, uint32_t trigger, uint32_t timeout)
Wait for the state of a input pin to change on the specified GPIO device.
uint32_t STDCALL gpio_device_properties(GPIO_DEVICE *gpio, GPIO_PROPERTIES *properties)
Get the properties for the specified GPIO device.
void STDCALL(* gpio_event_cb)(void *data, uint32_t pin, uint32_t trigger)
Definition platform.h:298
Definition gpio.h:140
GPIO_PROPERTIES properties
Device properties.
Definition gpio.h:164
gpio_device_write_proc devicewrite
A Device specific DeviceWrite method implementing the standard GPIO device interface (Or nil if the d...
Definition gpio.h:149
GPIO_DEVICE * next
Next entry in GPIO table.
Definition gpio.h:172
MUTEX_HANDLE lock
Device lock.
Definition gpio.h:161
gpio_device_pull_select_proc devicepullselect
A Device specific DevicePullSelect method implementing the standard GPIO device interface (Or nil if ...
Definition gpio.h:156
gpio_device_input_get_proc deviceinputget
A Device specific DeviceInputGet method implementing the standard GPIO device interface (Mandatory).
Definition gpio.h:150
uint32_t waitcount
Definition gpio.h:168
gpio_device_pull_get_proc devicepullget
A Device specific DevicePullGet method implementing the standard GPIO device interface (Or nil if the...
Definition gpio.h:155
gpio_device_input_wait_proc deviceinputwait
A Device specific DeviceInputWait method implementing the standard GPIO device interface (Or nil if t...
Definition gpio.h:151
DEVICE device
The Device entry for this GPIO.
Definition gpio.h:142
GPIO_DEVICE * prev
Previous entry in GPIO table.
Definition gpio.h:171
uint32_t gpioid
Unique Id of this GPIO in the GPIO table.
Definition gpio.h:144
GPIO_PIN * pins
Device pins.
Definition gpio.h:163
gpio_device_start_proc devicestart
A Device specific DeviceStart method implementing the standard GPIO device interface (Mandatory).
Definition gpio.h:146
uint32_t eventcount
Definition gpio.h:169
uint32_t getcount
Definition gpio.h:166
uint32_t setcount
Definition gpio.h:167
uint32_t gpiostate
GPIO state (eg GPIO_STATE_ENABLED).
Definition gpio.h:145
gpio_device_function_get_proc devicefunctionget
A Device specific DeviceFunctionGet method implementing the standard GPIO device interface (Or nil if...
Definition gpio.h:157
gpio_device_get_properties_proc devicegetproperties
A Device specific DeviceGetProperties method implementing the standard GPIO device interface (Or nil ...
Definition gpio.h:159
gpio_device_input_event_proc deviceinputevent
A Device specific DeviceInputEvent method implementing the standard GPIO device interface (Or nil if ...
Definition gpio.h:152
void * address
Device register base address.
Definition gpio.h:162
gpio_device_input_cancel_proc deviceinputcancel
A Device specific DeviceInputCancel method implementing the standard GPIO device interface (Or nil if...
Definition gpio.h:153
gpio_device_stop_proc devicestop
A Device specific DeviceStop method implementing the standard GPIO device interface (Mandatory).
Definition gpio.h:147
gpio_device_output_set_proc deviceoutputset
A Device specific DeviceOutputSet method implementing the standard GPIO device interface (Mandatory).
Definition gpio.h:154
gpio_device_read_proc deviceread
A Device specific DeviceRead method implementing the standard GPIO device interface (Or nil if the de...
Definition gpio.h:148
gpio_device_function_select_proc devicefunctionselect
A Device specific DeviceFunctionSelect method implementing the standard GPIO device interface (Or nil...
Definition gpio.h:158
Definition gpio.h:91
GPIO_PIN * pin
GPIO Pin this event belongs to.
Definition gpio.h:92
gpio_event_cb callback
Callback function to call when trigger occurs.
Definition gpio.h:93
void * data
Pointer to pass to the callback function when trigger occurs.
Definition gpio.h:94
uint32_t timeout
Timeout in milliseconds for this callback (or INFINITE for no timeout).
Definition gpio.h:95
GPIO_EVENT * prev
Previous event in the list.
Definition gpio.h:96
GPIO_EVENT * next
Next event in the list.
Definition gpio.h:97
Definition gpio.h:178
GPIO_DEVICE * gpio
Device for this GPIO pin.
Definition gpio.h:179
uint32_t pin
Pin number (eg GPIO_PIN_59).
Definition gpio.h:180
uint32_t func
Function value (or GPIO_FUNCTION_UNKNOWN).
Definition gpio.h:181
uint32_t trigger
Trigger value (or GPIO_TRIGGER_UNKNOWN).
Definition gpio.h:183
uint32_t pull
Pull Up/Down value (or GPIO_PULL_UNKNOWN).
Definition gpio.h:182
Definition gpio.h:102
GPIO_DEVICE * gpio
GPIO device this pin belongs to.
Definition gpio.h:103
uint32_t pin
Pin number of this pin on the device (May be used by drivers for internal numbering).
Definition gpio.h:104
uint32_t flags
Current flags for this pin (eg GPIO_EVENT_FLAG_REPEAT).
Definition gpio.h:105
uint32_t count
Count of threads and events waiting for the trigger.
Definition gpio.h:107
uint32_t trigger
Current trigger value for this pin (or GPIO_TRIGGER_NONE if no triggers current).
Definition gpio.h:106
EVENT_HANDLE event
Event for threads waiting for the trigger.
Definition gpio.h:108
GPIO_EVENT * events
List of events waiting for the trigger.
Definition gpio.h:109
Definition gpio.h:74
uint32_t pinmin
Definition gpio.h:76
uint32_t functionmax
Definition gpio.h:80
uint32_t flags
Device flags (eg GPIO_FLAG_TRIGGER_HIGH).
Definition gpio.h:75
uint32_t functionmin
Definition gpio.h:79
uint32_t pinmax
Definition gpio.h:77
uint32_t pincount
Definition gpio.h:78
uint32_t functioncount
Definition gpio.h:81