18#ifndef __VSF_TEMPLATE_GPIO_H__
19#define __VSF_TEMPLATE_GPIO_H__
39#ifndef VSF_GPIO_CFG_MULTI_CLASS
40# define VSF_GPIO_CFG_MULTI_CLASS ENABLED
50#if defined(VSF_HW_GPIO_PORT_COUNT) && !defined(VSF_HW_GPIO_PORT_MASK)
51# define VSF_HW_GPIO_PORT_MASK VSF_HAL_COUNT_TO_MASK(VSF_HW_GPIO_PORT_COUNT)
61#if defined(VSF_HW_GPIO_PORT_MASK) && !defined(VSF_HW_GPIO_PORT_COUNT)
62# define VSF_HW_GPIO_PORT_COUNT VSF_HAL_MASK_TO_COUNT(VSF_HW_GPIO_PORT_MASK)
72#if defined(VSF_HW_GPIO_PIN_COUNT) && !defined(VSF_HW_GPIO_PIN_MASK)
73# define VSF_HW_GPIO_PIN_MASK VSF_HAL_COUNT_TO_MASK(VSF_HW_GPIO_PIN_COUNT)
83#if defined(VSF_HW_GPIO_PIN_MASK) && !defined(VSF_HW_GPIO_PIN_COUNT)
84# define VSF_HW_GPIO_PIN_COUNT VSF_HAL_MASK_TO_COUNT(VSF_HW_GPIO_PIN_MASK)
94#ifdef VSF_HW_GPIO_PORT_COUNT
95# define VSF_HW_GPIO_COUNT VSF_HW_GPIO_PORT_COUNT
105#ifdef VSF_HW_GPIO_PORT_MASK
106# define VSF_HW_GPIO_MASK VSF_HW_GPIO_PORT_MASK
117#if !defined(VSF_GPIO_CFG_PORT0) && (VSF_HW_GPIO_PORT_MASK & (1ul << 0))
118# define VSF_GPIO_CFG_PORT0 ENABLED
121#if !defined(VSF_GPIO_CFG_PORT1) && (VSF_HW_GPIO_PORT_MASK & (1ul << 1))
122# define VSF_GPIO_CFG_PORT1 ENABLED
125#if !defined(VSF_GPIO_CFG_PORT2) && (VSF_HW_GPIO_PORT_MASK & (1ul << 2))
126# define VSF_GPIO_CFG_PORT2 ENABLED
129#if !defined(VSF_GPIO_CFG_PORT3) && (VSF_HW_GPIO_PORT_MASK & (1ul << 3))
130# define VSF_GPIO_CFG_PORT3 ENABLED
133#if !defined(VSF_GPIO_CFG_PORT4) && (VSF_HW_GPIO_PORT_MASK & (1ul << 4))
134# define VSF_GPIO_CFG_PORT4 ENABLED
137#if !defined(VSF_GPIO_CFG_PORT5) && (VSF_HW_GPIO_PORT_MASK & (1ul << 5))
138# define VSF_GPIO_CFG_PORT5 ENABLED
141#if !defined(VSF_GPIO_CFG_PORT6) && (VSF_HW_GPIO_PORT_MASK & (1ul << 6))
142# define VSF_GPIO_CFG_PORT6 ENABLED
145#if !defined(VSF_GPIO_CFG_PORT7) && (VSF_HW_GPIO_PORT_MASK & (1ul << 7))
146# define VSF_GPIO_CFG_PORT7 ENABLED
149#if !defined(VSF_GPIO_CFG_PORT8) && (VSF_HW_GPIO_PORT_MASK & (1ul << 8))
150# define VSF_GPIO_CFG_PORT8 ENABLED
153#if !defined(VSF_GPIO_CFG_PORT9) && (VSF_HW_GPIO_PORT_MASK & (1ul << 9))
154# define VSF_GPIO_CFG_PORT9 ENABLED
157#if !defined(VSF_GPIO_CFG_PORT10) && (VSF_HW_GPIO_PORT_MASK & (1ul << 10))
158# define VSF_GPIO_CFG_PORT10 ENABLED
161#if !defined(VSF_GPIO_CFG_PORT11) && (VSF_HW_GPIO_PORT_MASK & (1ul << 11))
162# define VSF_GPIO_CFG_PORT11 ENABLED
165#if !defined(VSF_GPIO_CFG_PORT12) && (VSF_HW_GPIO_PORT_MASK & (1ul << 12))
166# define VSF_GPIO_CFG_PORT12 ENABLED
169#if !defined(VSF_GPIO_CFG_PORT13) && (VSF_HW_GPIO_PORT_MASK & (1ul << 13))
170# define VSF_GPIO_CFG_PORT13 ENABLED
173#if !defined(VSF_GPIO_CFG_PORT14) && (VSF_HW_GPIO_PORT_MASK & (1ul << 14))
174# define VSF_GPIO_CFG_PORT14 ENABLED
177#if !defined(VSF_GPIO_CFG_PORT15) && (VSF_HW_GPIO_PORT_MASK & (1ul << 15))
178# define VSF_GPIO_CFG_PORT15 ENABLED
184#ifndef VSF_GPIO_CFG_PIN_COUNT
185# if defined(VSF_HW_GPIO_PIN_COUNT) && (VSF_HW_GPIO_PIN_COUNT > 32)
186# define VSF_GPIO_CFG_PIN_COUNT 64
187# define VSF_GPIO_CFG_PIN_MASK 0xFFFFFFFFFFFFFFFF
188# elif defined(VSF_HW_GPIO_PIN_MASK) && (VSF_HW_GPIO_PIN_MASK & 0xFFFFFFFF00000000)
189# define VSF_GPIO_CFG_PIN_COUNT 64
190# define VSF_GPIO_CFG_PIN_MASK 0xFFFFFFFFFFFFFFFF
192# define VSF_GPIO_CFG_PIN_COUNT 32
193# define VSF_GPIO_CFG_PIN_MASK 0xFFFFFFFF
220#ifndef VSF_GPIO_CFG_PREFIX
221# if VSF_GPIO_CFG_MULTI_CLASS == ENABLED
222# define VSF_GPIO_CFG_PREFIX vsf
223# elif defined(VSF_HW_GPIO_PIN_MASK) && (VSF_HW_GPIO_PIN_MASK != 0)
224# define VSF_GPIO_CFG_PREFIX vsf_hw
226# define VSF_GPIO_CFG_PREFIX vsf
237#ifndef VSF_GPIO_CFG_REIMPLEMENT_TYPE_MODE
238# define VSF_GPIO_CFG_REIMPLEMENT_TYPE_MODE DISABLED
248#ifndef VSF_GPIO_CFG_FUNCTION_RENAME
249# define VSF_GPIO_CFG_FUNCTION_RENAME ENABLED
256#ifndef VSF_GPIO_CFG_REIMPLEMENT_TYPE_CFG
257# define VSF_GPIO_CFG_REIMPLEMENT_TYPE_CFG DISABLED
263#ifndef VSF_GPIO_CFG_REIMPLEMENT_TYPE_CAPABILITY
264# define VSF_GPIO_CFG_REIMPLEMENT_TYPE_CAPABILITY DISABLED
290#ifndef __VSF_GPIO_CFG_SUPPORT_STANDARD_OPTIONAL
291# define __VSF_GPIO_CFG_SUPPORT_STANDARD_OPTIONAL DISABLED
294#ifndef VSF_GPIO_CFG_INHERIT_HAL_CAPABILITY
295# define VSF_GPIO_CFG_INHERIT_HAL_CAPABILITY ENABLED
308#ifndef VSF_GPIO_CFG_REIMPLEMENT_TYPE_CTRL
309# define VSF_GPIO_CFG_REIMPLEMENT_TYPE_CTRL DISABLED
314#define __VSF_GPIO_PORT_PIN_NUM(__PIN_NUM, __PORT_NUM, __PORT_CHAR) \
315 VSF_P ## __PORT_NUM ## _ ## __PIN_NUM = ((VSF_PORT ## __PORT_NUM) << 8) | __PIN_NUM,\
316 VSF_P ## __PORT_CHAR ## __PIN_NUM = ((VSF_PORT ## __PORT_NUM) << 8) | __PIN_NUM,
318#define VSF_GPIO_APIS(__prefix_name) \
319 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_gpio_capability_t, gpio, capability, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr) \
320 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, gpio, port_config_pins, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_pin_mask_t pin_mask, vsf_gpio_cfg_t * cfg_ptr) \
321 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, gpio, get_pin_configuration, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, uint16_t pin_index, vsf_gpio_cfg_t * cfg_ptr) \
322 __VSF_HAL_TEMPLATE_API(__prefix_name, void, gpio, set_direction, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_pin_mask_t pin_mask, vsf_gpio_pin_mask_t direction_mask) \
323 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_gpio_pin_mask_t, gpio, get_direction, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_pin_mask_t pin_mask) \
324 __VSF_HAL_TEMPLATE_API(__prefix_name, void, gpio, set_input, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_pin_mask_t pin_mask) \
325 __VSF_HAL_TEMPLATE_API(__prefix_name, void, gpio, set_output, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_pin_mask_t pin_mask) \
326 __VSF_HAL_TEMPLATE_API(__prefix_name, void, gpio, switch_direction, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_pin_mask_t pin_mask) \
327 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_gpio_pin_mask_t, gpio, read, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr) \
328 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_gpio_pin_mask_t, gpio, read_output_register, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr) \
329 __VSF_HAL_TEMPLATE_API(__prefix_name, void, gpio, write, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_pin_mask_t pin_mask, vsf_gpio_pin_mask_t value) \
330 __VSF_HAL_TEMPLATE_API(__prefix_name, void, gpio, set, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_pin_mask_t pin_mask) \
331 __VSF_HAL_TEMPLATE_API(__prefix_name, void, gpio, clear, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_pin_mask_t pin_mask) \
332 __VSF_HAL_TEMPLATE_API(__prefix_name, void, gpio, toggle, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_pin_mask_t pin_mask) \
333 __VSF_HAL_TEMPLATE_API(__prefix_name, void, gpio, output_and_set, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_pin_mask_t pin_mask) \
334 __VSF_HAL_TEMPLATE_API(__prefix_name, void, gpio, output_and_clear, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_pin_mask_t pin_mask) \
335 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, gpio, exti_irq_config, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_exti_irq_cfg_t *irq_cfg_ptr) \
336 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, gpio, exti_irq_get_configuration, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_exti_irq_cfg_t *irq_cfg_ptr) \
337 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, gpio, exti_irq_enable, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_pin_mask_t pin_mask) \
338 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, gpio, exti_irq_disable, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_pin_mask_t pin_mask) \
339 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_gpio_pin_mask_t, gpio, exti_irq_clear, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_pin_mask_t pin_mask) \
340 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, gpio, ctrl, VSF_MCONNECT(__prefix_name, _t) *gpio_ptr, vsf_gpio_ctrl_t ctrl, void* param)
344#ifndef vsf_gpio_pin_mask_t
345# if defined(VSF_HW_GPIO_PIN_COUNT) && (VSF_HW_GPIO_PIN_COUNT > 32)
347# elif defined(VSF_HW_GPIO_PIN_MASK) && (VSF_HW_GPIO_PIN_MASK & 0xFFFFFFFF00000000)
352# define vsf_gpio_pin_mask_t vsf_gpio_pin_mask_t
355#ifndef vsf_gpio_alternate_function_t
357# define vsf_gpio_alternate_function_t vsf_gpio_alternate_function_t
360#if VSF_GPIO_CFG_REIMPLEMENT_TYPE_MODE == DISABLED
597#ifndef VSF_GPIO_MODE_AF_MASK
602#ifdef VSF_GPIO_AF_OUTPUT_PUSH_PULL
605#ifdef VSF_GPIO_AF_OUTPUT_OPEN_DRAIN
608#ifdef VSF_GPIO_AF_INPUT
614#ifndef VSF_GPIO_MODE_MASK
637#ifdef VSF_GPIO_INVERT_INPUT
638 | VSF_GPIO_INVERT_INPUT
640#ifdef VSF_GPIO_DRIVE_STRENGTH_MASK
643#ifdef VSF_GPIO_SPEED_MASK
648#if VSF_GPIO_CFG_REIMPLEMENT_TYPE_CFG == DISABLED
695#if VSF_GPIO_CFG_REIMPLEMENT_TYPE_CAPABILITY == DISABLED
697#if VSF_GPIO_CFG_INHERIT_HAL_CAPABILITY == ENABLED
795#if VSF_GPIO_CFG_REIMPLEMENT_TYPE_CTRL == DISABLED
828#undef __VSF_HAL_TEMPLATE_API
829#define __VSF_HAL_TEMPLATE_API VSF_HAL_TEMPLATE_API_FP
835#if VSF_GPIO_CFG_MULTI_CLASS == ENABLED
850#if VSF_HW_GPIO_PORT_COUNT > 0
851typedef enum vsf_gpio_port_no_t {
852#if defined(VSF_GPIO_CFG_PORT0)
855#if defined(VSF_GPIO_CFG_PORT1)
858#if defined(VSF_GPIO_CFG_PORT2)
861#if defined(VSF_GPIO_CFG_PORT3)
864#if defined(VSF_GPIO_CFG_PORT4)
867#if defined(VSF_GPIO_CFG_PORT5)
870#if defined(VSF_GPIO_CFG_PORT6)
873#if defined(VSF_GPIO_CFG_PORT7)
876#if defined(VSF_GPIO_CFG_PORT8)
879#if defined(VSF_GPIO_CFG_PORT9)
882#if defined(VSF_GPIO_CFG_PORT10)
885#if defined(VSF_GPIO_CFG_PORT11)
888#if defined(VSF_GPIO_CFG_PORT12)
891#if defined(VSF_GPIO_CFG_PORT13)
894#if defined(VSF_GPIO_CFG_PORT14)
897#if defined(VSF_GPIO_CFG_PORT15)
900#if defined(VSF_GPIO_CFG_PORT0)
901 VSF_PORTA = VSF_PORT0,
903#if defined(VSF_GPIO_CFG_PORT1)
904 VSF_PORTB = VSF_PORT1,
906#if defined(VSF_GPIO_CFG_PORT2)
907 VSF_PORTC = VSF_PORT2,
909#if defined(VSF_GPIO_CFG_PORT3)
910 VSF_PORTD = VSF_PORT3,
912#if defined(VSF_GPIO_CFG_PORT4)
913 VSF_PORTE = VSF_PORT4,
915#if defined(VSF_GPIO_CFG_PORT5)
916 VSF_PORTF = VSF_PORT5,
918#if defined(VSF_GPIO_CFG_PORT6)
919 VSF_PORTG = VSF_PORT6,
921#if defined(VSF_GPIO_CFG_PORT7)
922 VSF_PORTH = VSF_PORT7,
924#if defined(VSF_GPIO_CFG_PORT8)
925 VSF_PORTI = VSF_PORT8,
927#if defined(VSF_GPIO_CFG_PORT9)
928 VSF_PORTJ = VSF_PORT9,
930#if defined(VSF_GPIO_CFG_PORT10)
931 VSF_PORTK = VSF_PORT10,
933#if defined(VSF_GPIO_CFG_PORT11)
934 VSF_PORTL = VSF_PORT11,
936#if defined(VSF_GPIO_CFG_PORT12)
937 VSF_PORTM = VSF_PORT12,
939#if defined(VSF_GPIO_CFG_PORT13)
940 VSF_PORTN = VSF_PORT13,
942#if defined(VSF_GPIO_CFG_PORT14)
943 VSF_PORTO = VSF_PORT14,
945#if defined(VSF_GPIO_CFG_PORT15)
946 VSF_PORTP = VSF_PORT15,
950typedef enum vsf_gpio_port_pin_no_t {
951#if defined(VSF_GPIO_CFG_PORT0)
954#if defined(VSF_GPIO_CFG_PORT1)
957#if defined(VSF_GPIO_CFG_PORT2)
960#if defined(VSF_GPIO_CFG_PORT3)
963#if defined(VSF_GPIO_CFG_PORT4)
966#if defined(VSF_GPIO_CFG_PORT5)
969#if defined(VSF_GPIO_CFG_PORT6)
972#if defined(VSF_GPIO_CFG_PORT7)
975#if defined(VSF_GPIO_CFG_PORT8)
978#if defined(VSF_GPIO_CFG_PORT9)
981#if defined(VSF_GPIO_CFG_PORT10)
984#if defined(VSF_GPIO_CFG_PORT11)
987#if defined(VSF_GPIO_CFG_PORT12)
990#if defined(VSF_GPIO_CFG_PORT13)
993#if defined(VSF_GPIO_CFG_PORT14)
996#if defined(VSF_GPIO_CFG_PORT15)
999} vsf_gpio_port_pin_no_t;
1063#if __VSF_GPIO_CFG_SUPPORT_STANDARD_OPTIONAL
1446 return port_pin_index >> 8;
1451 return port_pin_index & 0xFF;
1465#if VSF_GPIO_CFG_FUNCTION_RENAME == ENABLED
1466# define __vsf_gpio_t VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_t)
1467# define vsf_gpio_capability(__GPIO) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_capability) ((__vsf_gpio_t *)(__GPIO))
1468# define vsf_gpio_port_config_pins(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_port_config_pins) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1469# define vsf_gpio_get_pin_configuration(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_get_pin_configuration) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1470# define vsf_gpio_set_direction(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_set_direction) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1471# define vsf_gpio_get_direction(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_get_direction) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1472# define vsf_gpio_set_input(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_set_input) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1473# define vsf_gpio_set_output(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_set_output) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1474# define vsf_gpio_switch_direction(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_switch_direction) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1475# define vsf_gpio_read(__GPIO) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_read) ((__vsf_gpio_t *)(__GPIO))
1476# define vsf_gpio_read_output_register(__GPIO) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_read_output_register) ((__vsf_gpio_t *)(__GPIO))
1477# define vsf_gpio_write(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_write) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1478# define vsf_gpio_set(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_set) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1479# define vsf_gpio_clear(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_clear) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1480# define vsf_gpio_output_and_set(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_output_and_set) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1481# define vsf_gpio_output_and_clear(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_output_and_clear) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1482# define vsf_gpio_toggle(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_toggle) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1483# define vsf_gpio_exti_irq_config(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_exti_irq_config) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1484# define vsf_gpio_exti_irq_get_configuration(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_exti_irq_get_configuration) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1485# define vsf_gpio_exti_irq_enable(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_exti_irq_enable) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1486# define vsf_gpio_exti_irq_disable(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_exti_irq_disable) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1487# define vsf_gpio_exti_irq_clear(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_exti_irq_clear) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1488# define vsf_gpio_ctrl(__GPIO, ...) VSF_MCONNECT(VSF_GPIO_CFG_PREFIX, _gpio_ctrl) ((__vsf_gpio_t *)(__GPIO), ##__VA_ARGS__)
1493#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 0)
1495# define VSF_PIN0_MASK (1 << VSF_PIN0)
1498#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 1)
1500# define VSF_PIN1_MASK (1 << VSF_PIN1)
1503#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 2)
1505# define VSF_PIN2_MASK (1 << VSF_PIN2)
1508#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 3)
1510# define VSF_PIN3_MASK (1 << VSF_PIN3)
1513#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 4)
1515# define VSF_PIN4_MASK (1 << VSF_PIN4)
1518#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 5)
1520# define VSF_PIN5_MASK (1 << VSF_PIN5)
1523#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 6)
1525# define VSF_PIN6_MASK (1 << VSF_PIN6)
1528#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 7)
1530# define VSF_PIN7_MASK (1 << VSF_PIN7)
1533#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 8)
1535# define VSF_PIN8_MASK (1 << VSF_PIN8)
1538#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 9)
1540# define VSF_PIN9_MASK (1 << VSF_PIN9)
1543#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 10)
1544# define VSF_PIN10 10
1545# define VSF_PIN10_MASK (1 << VSF_PIN10)
1548#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 11)
1549# define VSF_PIN11 11
1550# define VSF_PIN11_MASK (1 << VSF_PIN11)
1553#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 12)
1554# define VSF_PIN12 12
1555# define VSF_PIN12_MASK (1 << VSF_PIN12)
1558#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 13)
1559# define VSF_PIN13 13
1560# define VSF_PIN13_MASK (1 << VSF_PIN13)
1563#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 14)
1564# define VSF_PIN14 14
1565# define VSF_PIN14_MASK (1 << VSF_PIN14)
1568#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 15)
1569# define VSF_PIN15 15
1570# define VSF_PIN15_MASK (1 << VSF_PIN15)
1573#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 16)
1574# define VSF_PIN16 16
1575# define VSF_PIN16_MASK (1 << VSF_PIN16)
1578#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 17)
1579# define VSF_PIN17 17
1580# define VSF_PIN17_MASK (1 << VSF_PIN17)
1583#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 18)
1584# define VSF_PIN18 18
1585# define VSF_PIN18_MASK (1 << VSF_PIN18)
1588#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 19)
1589# define VSF_PIN19 19
1590# define VSF_PIN19_MASK (1 << VSF_PIN19)
1593#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 20)
1594# define VSF_PIN20 20
1595# define VSF_PIN20_MASK (1 << VSF_PIN20)
1598#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 21)
1599# define VSF_PIN21 21
1600# define VSF_PIN21_MASK (1 << VSF_PIN21)
1603#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 22)
1604# define VSF_PIN22 22
1605# define VSF_PIN22_MASK (1 << VSF_PIN22)
1608#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 23)
1609# define VSF_PIN23 23
1610# define VSF_PIN23_MASK (1 << VSF_PIN23)
1613#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 24)
1614# define VSF_PIN24 24
1615# define VSF_PIN24_MASK (1 << VSF_PIN24)
1618#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 25)
1619# define VSF_PIN25 25
1620# define VSF_PIN25_MASK (1 << VSF_PIN25)
1623#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 26)
1624# define VSF_PIN26 26
1625# define VSF_PIN26_MASK (1 << VSF_PIN26)
1628#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 27)
1629# define VSF_PIN27 27
1630# define VSF_PIN27_MASK (1 << VSF_PIN27)
1633#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 28)
1634# define VSF_PIN28 28
1635# define VSF_PIN28_MASK (1 << VSF_PIN28)
1638#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 29)
1639# define VSF_PIN29 29
1640# define VSF_PIN29_MASK (1 << VSF_PIN29)
1643#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 30)
1644# define VSF_PIN30 30
1645# define VSF_PIN30_MASK (1 << VSF_PIN30)
1648#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 31)
1649# define VSF_PIN31 31
1650# define VSF_PIN31_MASK (1 << VSF_PIN31)
1653#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 32)
1654# define VSF_PIN32 32
1655# define VSF_PIN32_MASK (1 << VSF_PIN32)
1658#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 33)
1659# define VSF_PIN33 33
1660# define VSF_PIN33_MASK (1 << VSF_PIN33)
1663#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 34)
1664# define VSF_PIN34 34
1665# define VSF_PIN34_MASK (1 << VSF_PIN34)
1668#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 35)
1669# define VSF_PIN35 35
1670# define VSF_PIN35_MASK (1 << VSF_PIN35)
1673#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 36)
1674# define VSF_PIN36 36
1675# define VSF_PIN36_MASK (1 << VSF_PIN36)
1678#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 37)
1679# define VSF_PIN37 37
1680# define VSF_PIN37_MASK (1 << VSF_PIN37)
1683#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 38)
1684# define VSF_PIN38 38
1685# define VSF_PIN38_MASK (1 << VSF_PIN38)
1688#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 39)
1689# define VSF_PIN39 39
1690# define VSF_PIN39_MASK (1 << VSF_PIN39)
1693#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 40)
1694# define VSF_PIN40 40
1695# define VSF_PIN40_MASK (1 << VSF_PIN40)
1698#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 41)
1699# define VSF_PIN41 41
1700# define VSF_PIN41_MASK (1 << VSF_PIN41)
1703#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 42)
1704# define VSF_PIN42 42
1705# define VSF_PIN42_MASK (1 << VSF_PIN42)
1708#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 43)
1709# define VSF_PIN43 43
1710# define VSF_PIN43_MASK (1 << VSF_PIN43)
1713#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 44)
1714# define VSF_PIN44 44
1715# define VSF_PIN44_MASK (1 << VSF_PIN44)
1718#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 45)
1719# define VSF_PIN45 45
1720# define VSF_PIN45_MASK (1 << VSF_PIN45)
1723#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 46)
1724# define VSF_PIN46 46
1725# define VSF_PIN46_MASK (1 << VSF_PIN46)
1728#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 47)
1729# define VSF_PIN47 47
1730# define VSF_PIN47_MASK (1 << VSF_PIN47)
1733#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 48)
1734# define VSF_PIN48 48
1735# define VSF_PIN48_MASK (1 << VSF_PIN48)
1738#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 49)
1739# define VSF_PIN49 49
1740# define VSF_PIN49_MASK (1 << VSF_PIN49)
1743#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 50)
1744# define VSF_PIN50 50
1745# define VSF_PIN50_MASK (1 << VSF_PIN50)
1748#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 51)
1749# define VSF_PIN51 51
1750# define VSF_PIN51_MASK (1 << VSF_PIN51)
1753#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 52)
1754# define VSF_PIN52 52
1755# define VSF_PIN52_MASK (1 << VSF_PIN52)
1758#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 53)
1759# define VSF_PIN53 53
1760# define VSF_PIN53_MASK (1 << VSF_PIN53)
1763#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 54)
1764# define VSF_PIN54 54
1765# define VSF_PIN54_MASK (1 << VSF_PIN54)
1768#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 55)
1769# define VSF_PIN55 55
1770# define VSF_PIN55_MASK (1 << VSF_PIN55)
1773#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 56)
1774# define VSF_PIN56 56
1775# define VSF_PIN56_MASK (1 << VSF_PIN56)
1778#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 57)
1779# define VSF_PIN57 57
1780# define VSF_PIN57_MASK (1 << VSF_PIN57)
1783#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 58)
1784# define VSF_PIN58 58
1785# define VSF_PIN58_MASK (1 << VSF_PIN58)
1788#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 59)
1789# define VSF_PIN59 59
1790# define VSF_PIN59_MASK (1 << VSF_PIN59)
1793#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 60)
1794# define VSF_PIN60 60
1795# define VSF_PIN60_MASK (1 << VSF_PIN60)
1798#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 61)
1799# define VSF_PIN61 61
1800# define VSF_PIN61_MASK (1 << VSF_PIN61)
1803#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 62)
1804# define VSF_PIN62 62
1805# define VSF_PIN62_MASK (1 << VSF_PIN62)
1808#if VSF_GPIO_CFG_PIN_MASK & (0x01ul << 63)
1809# define VSF_PIN63 63
1810# define VSF_PIN63_MASK (1 << VSF_PIN63)
vsf_err_t
Definition __type.h:42
vsf_gpio_mode_t
Definition gpio.h:31
@ VSF_GPIO_AF
Definition gpio.h:46
#define VSF_GPIO_AF_INPUT
Definition gpio.h:96
#define VSF_GPIO_DRIVE_STRENGTH_MASK
Definition gpio.h:112
#define VSF_GPIO_AF_OUTPUT_PUSH_PULL
Definition gpio.h:94
#define VSF_GPIO_AF_OUTPUT_OPEN_DRAIN
Definition gpio.h:95
#define VSF_GPIO_SPEED_MASK
Definition gpio.h:86
vsf_arch_prio_t
Definition cortex_a_generic.h:85
#define K(t, v)
Definition keyboard.h:40
unsigned short uint16_t
Definition stdint.h:7
unsigned char uint_fast8_t
Definition stdint.h:23
unsigned uint32_t
Definition stdint.h:9
unsigned long long uint64_t
Definition stdint.h:11
unsigned char uint8_t
Definition stdint.h:5
Definition vsf_template_gpio.h:696
uint8_t support_output_and_clear
Support for atomic output and clear operations. Prevents signal glitches when switching from input to...
Definition vsf_template_gpio.h:731
uint8_t pin_count
Total number of pins in hardware. Includes all pins, even those that cannot be configured as GPIO....
Definition vsf_template_gpio.h:773
uint8_t support_interrupt
Support for external interrupt functionality. When set, the GPIO pins can be configured to generate i...
Definition vsf_template_gpio.h:761
uint8_t can_read_in_alternate_mode
Indicates whether vsf_gpio_read is valid in alternate function mode. When set, reading pin state is s...
Definition vsf_template_gpio.h:751
vsf_gpio_pin_mask_t pin_mask
Available pin mask indicating which pins can be used as GPIO. Common bit patterns include:
Definition vsf_template_gpio.h:791
inherit(vsf_peripheral_capability_t) uint8_t is_async uint8_t support_output_and_set
Flag indicating if GPIO operations are asynchronous. When set, operations are only guaranteed to be s...
Definition vsf_template_gpio.h:698
uint8_t can_read_in_gpio_output_mode
Indicates whether vsf_gpio_read is valid when configured as GPIO output mode. When set,...
Definition vsf_template_gpio.h:741
gpio configuration
Definition vsf_template_gpio.h:665
vsf_gpio_alternate_function_t alternate_function
alternate function is only valid in GPIO_AF mode
Definition vsf_template_gpio.h:668
vsf_gpio_mode_t mode
Definition vsf_template_gpio.h:666
Definition vsf_template_gpio.h:658
vsf_gpio_exti_isr_handler_t * handler_fn
Definition vsf_template_gpio.h:659
vsf_arch_prio_t prio
Definition vsf_template_gpio.h:661
void * target_ptr
Definition vsf_template_gpio.h:660
Definition vsf_template_gpio.h:826
Definition vsf_template_gpio.h:672
vsf_gpio_alternate_function_t alternate_function
alternate function is only valid in GPIO_AF mode
Definition vsf_template_gpio.h:679
uint16_t port_pin_index
Definition vsf_template_gpio.h:673
vsf_gpio_mode_t mode
Definition vsf_template_gpio.h:677
Definition vsf_template_gpio.h:685
vsf_gpio_mode_t mode
Definition vsf_template_gpio.h:690
uint16_t port_index
Definition vsf_template_gpio.h:686
vsf_gpio_pin_mask_t pin_mask
Definition vsf_template_gpio.h:687
vsf_gpio_alternate_function_t alternate_function
alternate function is only valid in GPIO_AF mode
Definition vsf_template_gpio.h:692
Definition vsf_template_gpio.h:844
const vsf_gpio_op_t * op
Definition vsf_template_gpio.h:845
Definition vsf_template_hal_driver.h:204
void vsf_gpio_exti_isr_handler_t(void *target_ptr, vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
Definition gpio.h:113
vsf_gpio_mode_t
Definition gpio.h:90
uint32_t vsf_gpio_pin_mask_t
Definition gpio.h:75
vk_av_control_value_t value
Definition vsf_audio.h:171
#define VSF_MREPEAT(__COUNT, __MACRO, __PARAM)
Definition vsf_repeat_macro.h:51
void vsf_gpio_exti_isr_handler_t(void *target_ptr, vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
External interrupt callback function for gpio.
Definition vsf_template_gpio.h:653
void vsf_gpio_set_direction(vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask, vsf_gpio_pin_mask_t direction_mask)
**
Definition gpio_common.c:54
void vsf_gpio_write(vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask, vsf_gpio_pin_mask_t value)
set the value of one or more of the gpio instances
Definition gpio_common.c:117
void vsf_gpio_clear(vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
Set the value of one or more pins of the gpio instance to low.
Definition gpio_common.c:135
void vsf_gpio_set_output(vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
Set the direction of one or more pins of the gpio instance to output.
Definition gpio_common.c:81
@ VSF_GPIO_EXTI_MODE_MASK
Definition vsf_template_gpio.h:627
@ VSF_GPIO_MODE_MASK
Definition vsf_template_gpio.h:615
@ VSF_GPIO_MODE_AF_MASK
Definition vsf_template_gpio.h:598
@ VSF_GPIO_PULL_UP_DOWN_MASK
Definition vsf_template_gpio.h:623
@ VSF_GPIO_MODE_ALL_BITS_MASK
Definition vsf_template_gpio.h:634
@ VSF_GPIO_FLOATING
Definition vsf_template_gpio.h:595
#define vsf_gpio_alternate_function_t
Definition vsf_template_gpio.h:357
void vsf_gpio_output_and_set(vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
Set the direction of one or more pins of the gpio instance to output high.
Definition gpio_common.c:153
vsf_err_t vsf_gpio_port_config_pins(vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask, vsf_gpio_cfg_t *cfg_ptr)
Configure one or more pins of the gpio instance.
Definition gpio_common.c:35
vsf_err_t vsf_gpio_exti_irq_get_configuration(vsf_gpio_t *gpio_ptr, vsf_gpio_exti_irq_cfg_t *cfg_ptr)
Get the current external interrupt configuration of the gpio instance.
Definition gpio_common.c:190
#define VSF_GPIO_CFG_PIN_COUNT
Definition vsf_template_gpio.h:192
vsf_err_t vsf_gpio_ctrl(vsf_gpio_t *gpio_ptr, vsf_gpio_ctrl_t ctrl, void *param)
Calls the specified GPIO command.
Definition gpio_common.c:227
vsf_err_t vsf_gpio_exti_irq_enable(vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
Enable interrupt of one or more pins.
Definition gpio_common.c:200
struct vsf_gpio_capability_t vsf_gpio_capability_t
vsf_err_t vsf_gpio_exti_irq_config(vsf_gpio_t *gpio_ptr, vsf_gpio_exti_irq_cfg_t *cfg_ptr)
Configure external interrupt of the gpio instance.
Definition gpio_common.c:180
uint16_t vsf_gpio_alternate_function_t
Definition vsf_template_gpio.h:356
vsf_gpio_capability_t vsf_gpio_capability(vsf_gpio_t *gpio_ptr)
Get the capability of gpio instance.
Definition gpio_common.c:171
vsf_gpio_pin_mask_t vsf_gpio_read(vsf_gpio_t *gpio_ptr)
Read the values of all pins of the gpio instance.
Definition gpio_common.c:99
struct vsf_gpio_exti_irq_cfg_t vsf_gpio_exti_irq_cfg_t
#define __VSF_GPIO_PORT_PIN_NUM(__PIN_NUM, __PORT_NUM, __PORT_CHAR)
Definition vsf_template_gpio.h:314
#define vsf_gpio_pin_mask_t
Definition vsf_template_gpio.h:352
void vsf_gpio_toggle(vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
Toggle the value of one or more pins of the gpio instance.
Definition gpio_common.c:144
struct vsf_gpio_cfg_t vsf_gpio_cfg_t
gpio configuration
vsf_gpio_pin_mask_t vsf_gpio_read_output_register(vsf_gpio_t *gpio_ptr)
Read the output register values of all pins of the gpio instance.
Definition gpio_common.c:108
vsf_err_t vsf_gpio_exti_irq_disable(vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
Disable interrupt of one or more pins.
Definition gpio_common.c:209
#define VSF_GPIO_APIS(__prefix_name)
Definition vsf_template_gpio.h:318
void vsf_gpio_output_and_clear(vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
Set the direction of one or more pins of the gpio instance to output low.
Definition gpio_common.c:162
vsf_gpio_mode_t
Predefined VSF GPIO modes that can be reimplemented in specific hal drivers.
Definition vsf_template_gpio.h:407
@ VSF_GPIO_NO_PULL_UP_DOWN
Set GPIO pin to Alternative Function mode. Configures pin for peripheral-specific functions like UART...
Definition vsf_template_gpio.h:495
@ VSF_GPIO_EXTI_MODE_HIGH_LEVEL
Detect interrupts on high signal level.
Definition vsf_template_gpio.h:539
@ VSF_GPIO_OUTPUT_PUSH_PULL
Set GPIO pin as general-purpose push-pull output. Selects GPIO for the alternative function.
Definition vsf_template_gpio.h:438
@ VSF_GPIO_EXTI
Set GPIO pin as external interrupt IO. Configures the pin to detect and generate interrupts on signal...
Definition vsf_template_gpio.h:458
@ VSF_GPIO_EXTI_MODE_LOW_LEVEL
Detect interrupts on low signal level.
Definition vsf_template_gpio.h:531
@ VSF_GPIO_EXTI_MODE_NONE
No external interrupt detection enabled.
Definition vsf_template_gpio.h:523
@ VSF_GPIO_EXTI_MODE_RISING
Detect interrupts on rising edge of signal.
Definition vsf_template_gpio.h:547
@ VSF_GPIO_EXTI_MODE_RISING_FALLING
Detect interrupts on both rising and falling edges.
Definition vsf_template_gpio.h:563
@ VSF_GPIO_PULL_UP
Enable internal pull-up resistor. Independent of IO direction and alternative function.
Definition vsf_template_gpio.h:505
@ VSF_GPIO_INPUT
Set the GPIO pin as general-purpose input. Selects GPIO for the alternative function....
Definition vsf_template_gpio.h:418
@ VSF_GPIO_ANALOG
Set the GPIO pin as analog IO (input or output). Selects analog or GPIO as an alternative function an...
Definition vsf_template_gpio.h:428
@ VSF_GPIO_EXTI_MODE_FALLING
Detect interrupts on falling edge of signal.
Definition vsf_template_gpio.h:555
@ VSF_GPIO_OUTPUT_OPEN_DRAIN
Set GPIO pin as general-purpose open-drain output. Selects GPIO for the alternative function.
Definition vsf_template_gpio.h:448
@ VSF_GPIO_PULL_DOWN
Enable internal pull-down resistor. Independent of IO direction and alternative function.
Definition vsf_template_gpio.h:515
vsf_gpio_ctrl_t
GPIO control commands for hardware-specific operations.
Definition vsf_template_gpio.h:804
@ __VSF_GPIO_CTRL_DUMMY
Dummy value for compilation, required when no actual control commands are defined.
Definition vsf_template_gpio.h:822
void vsf_gpio_set(vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
Set the value of one or more pins of the gpio instance to high.
Definition gpio_common.c:126
vsf_gpio_pin_mask_t vsf_gpio_get_direction(vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
Get GPIO port pin direction.
Definition gpio_common.c:63
uint32_t vsf_gpio_pin_mask_t
Definition vsf_template_gpio.h:350
void vsf_gpio_set_input(vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
set specified pins to input mode
Definition gpio_common.c:72
void vsf_gpio_switch_direction(vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
Toggle the orientation of one or more pins of a gpio instance.
Definition gpio_common.c:90
vsf_err_t vsf_gpio_get_pin_configuration(vsf_gpio_t *gpio_ptr, uint16_t pin_index, vsf_gpio_cfg_t *cfg_ptr)
Get configuration of a specific pin of the gpio instance.
Definition gpio_common.c:44
vsf_gpio_pin_mask_t vsf_gpio_exti_irq_clear(vsf_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
Clear interrupt flags of GPIO EXTI instance and return previous state.
Definition gpio_common.c:218