18#ifndef __VSF_HAL_DISTBUS_GPIO_H__
19#define __VSF_HAL_DISTBUS_GPIO_H__
25#if VSF_HAL_USE_GPIO == ENABLED && VSF_HAL_DISTBUS_USE_GPIO == ENABLED
27#if defined(__VSF_HAL_DISTBUS_GPIO_CLASS_IMPLEMENT)
28# define __VSF_CLASS_IMPLEMENT__
29#elif defined(__VSF_HAL_DISTBUS_GPIO_CLASS_INHERIT__)
30# define __VSF_CLASS_INHERIT__
41#ifndef VSF_HAL_DISTBUS_GPIO_CFG_MULTI_CLASS
42# define VSF_HAL_DISTBUS_GPIO_CFG_MULTI_CLASS VSF_GPIO_CFG_MULTI_CLASS
45#ifdef VSF_HAL_DISTBUS_AS_REAL_DRIVER
46# define VSF_GPIO_CFG_REIMPLEMENT_TYPE_MODE ENABLED
52#if defined(__VSF_HAL_DISTBUS_GPIO_CLASS_IMPLEMENT) || defined(__VSF_HAL_DISTBUS_GPIO_CLASS_INHERIT__)
55 VSF_HAL_DISTBUS_GPIO_CMD_PORT_CONFIG_PINS = 0,
56 VSF_HAL_DISTBUS_GPIO_CMD_SET_DIRECTION,
57 VSF_HAL_DISTBUS_GPIO_CMD_WRITE,
58 VSF_HAL_DISTBUS_GPIO_CMD_SET,
59 VSF_HAL_DISTBUS_GPIO_CMD_CLEAR,
60 VSF_HAL_DISTBUS_GPIO_CMD_TOGGLE,
61 VSF_HAL_DISTBUS_GPIO_CMD_OUTPUT_AND_SET,
62 VSF_HAL_DISTBUS_GPIO_CMD_OUTPUT_AND_CLEAR,
65 VSF_HAL_DISTBUS_GPIO_CMD_SYNC,
67 VSF_HAL_DISTBUS_GPIO_CMD_ADDR_RANGE,
70typedef struct vsf_hal_distbus_gpio_port_config_pins_t {
76typedef struct vsf_hal_distbus_gpio_set_direction_t {
81typedef struct vsf_hal_distbus_gpio_write_t {
86typedef struct vsf_hal_distbus_gpio_pin_mask_t {
90typedef struct vsf_hal_distbus_gpio_sync_t {
131#ifdef VSF_HAL_DISTBUS_AS_REAL_DRIVER
182#ifdef VSF_HAL_DISTBUS_AS_REAL_DRIVER
189#if VSF_HAL_DISTBUS_GPIO_CFG_MULTI_CLASS == ENABLED
220#undef __VSF_HAL_DISTBUS_GPIO_CLASS_IMPLEMENT
221#undef __VSF_HAL_DISTBUS_GPIO_CLASS_INHERIT__
@ VSF_GPIO_NO_PULL_UP_DOWN
Definition gpio.h:39
@ VSF_GPIO_EXTI_MODE_HIGH_LEVEL
Definition gpio.h:50
@ VSF_GPIO_OUTPUT_PUSH_PULL
Definition gpio.h:43
@ VSF_GPIO_EXTI
Definition gpio.h:45
@ VSF_GPIO_EXTI_MODE_LOW_LEVEL
Definition gpio.h:49
@ VSF_GPIO_EXTI_MODE_NONE
Definition gpio.h:48
@ VSF_GPIO_EXTI_MODE_RISING
Definition gpio.h:51
@ VSF_GPIO_EXTI_MODE_RISING_FALLING
Definition gpio.h:53
@ VSF_GPIO_PULL_UP
Definition gpio.h:37
@ VSF_GPIO_AF
Definition gpio.h:46
@ VSF_GPIO_INPUT
Definition gpio.h:41
@ VSF_GPIO_ANALOG
Definition gpio.h:44
@ VSF_GPIO_EXTI_MODE_FALLING
Definition gpio.h:52
@ VSF_GPIO_OUTPUT_OPEN_DRAIN
Definition gpio.h:42
@ VSF_GPIO_PULL_DOWN
Definition gpio.h:38
#define VSF_GPIO_SPEED_MEDIUM
Definition gpio.h:83
#define VSF_GPIO_SPEED_HIGH
Definition gpio.h:84
#define VSF_GPIO_SPEED_MASK
Definition gpio.h:86
#define VSF_GPIO_SPEED_VERY_HIGH
Definition gpio.h:85
#define VSF_GPIO_SPEED_LOW
Definition gpio.h:82
#define VSF_GPIO_DRIVE_STRENGTH_MEDIUM
Definition gpio.h:113
#define VSF_GPIO_DRIVE_STRENGTH_HIGH
Definition gpio.h:114
#define VSF_GPIO_DRIVE_STRENGTH_VERY_HIGH
Definition gpio.h:115
#define VSF_GPIO_DRIVE_STRENGTH_LOW
Definition gpio.h:112
@ VSF_GPIO_DRIVE_STRENGTH_MASK
Definition gpio.h:111
Definition vsf_distbus.h:87
Definition vsf_distbus.h:120
Definition vsf_hal_distbus_gpio.h:188
#define VSF_HAL_DISTBUS_PREFIX
Definition driver.h:35
#define VSF_HAL_DISTBUS_ENUM(__ELEMENT)
Definition driver.h:34
#define vsf_class(__name)
Definition ooc_class.h:48
unsigned short uint16_t
Definition stdint.h:7
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:732
Definition vsf_hal_distbus_gpio.h:169
uint64_t output_value
Definition vsf_hal_distbus_gpio.h:177
uint64_t direction
Definition vsf_hal_distbus_gpio.h:175
uint64_t value
Definition vsf_hal_distbus_gpio.h:176
uint8_t support_output_and_set
Definition vsf_hal_distbus_gpio.h:170
uint64_t pin_mask
Definition vsf_hal_distbus_gpio.h:173
uint8_t support_output_and_clear
Definition vsf_hal_distbus_gpio.h:171
uint8_t pin_count
Definition vsf_hal_distbus_gpio.h:172
vk_av_control_value_t value
Definition vsf_audio.h:171
enum VSF_MCONNECT(VSF_HAL_DISTBUS_PREFIX, gpio_mode_t)
Definition vsf_hal_distbus_gpio.h:95
uint32_t vsf_hal_distbus_gpio_register_service(vsf_distbus_t *distbus, vsf_hal_distbus_gpio_t *gpio, void *info, uint32_t infolen)
Definition vsf_hal_distbus_gpio.c:88
struct vk_romfs_header_t VSF_CAL_PACKED
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:592
@ VSF_GPIO_EXTI_MODE_MASK
Definition vsf_template_gpio.h:566
@ VSF_GPIO_MODE_MASK
Definition vsf_template_gpio.h:554
@ VSF_GPIO_PULL_UP_DOWN_MASK
Definition vsf_template_gpio.h:562
@ VSF_GPIO_MODE_ALL_BITS_MASK
Definition vsf_template_gpio.h:573