This is an automated email from Gerrit. "Antonio Borneo <borneo.anto...@gmail.com>" just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8204
-- gerrit commit 3688a99a13f970b875f932ba0e8a18c8bd4c229b Author: Antonio Borneo <borneo.anto...@gmail.com> Date: Sun Apr 7 18:15:48 2024 +0200 jtag: linuxgpiod: use libgpiod v2 API to set gpio drive Define and use dummy functions from v2 for v1: - gpiod_line_settings_set_drive(). Change-Id: Ic058e85c441c9f8db63919be5166172be5b72221 Signed-off-by: Antonio Borneo <borneo.anto...@gmail.com> diff --git a/src/jtag/drivers/linuxgpiod.c b/src/jtag/drivers/linuxgpiod.c index b9e5c18ab0..42f3101ce8 100644 --- a/src/jtag/drivers/linuxgpiod.c +++ b/src/jtag/drivers/linuxgpiod.c @@ -31,11 +31,16 @@ #define GPIOD_LINE_VALUE_INACTIVE 0 #define GPIOD_LINE_VALUE_ACTIVE 1 +#define GPIOD_LINE_DRIVE_PUSH_PULL 0 +#define GPIOD_LINE_DRIVE_OPEN_DRAIN GPIOD_LINE_REQUEST_FLAG_OPEN_DRAIN +#define GPIOD_LINE_DRIVE_OPEN_SOURCE GPIOD_LINE_REQUEST_FLAG_OPEN_SOURCE + #define gpiod_request_config gpiod_line_request_config struct gpiod_line_settings { int direction; int value; + int drive; }; static struct gpiod_line_settings *gpiod_line_settings_new(void) @@ -80,6 +85,13 @@ static int gpiod_line_settings_set_output_value(struct gpiod_line_settings *sett return 0; } +static int gpiod_line_settings_set_drive(struct gpiod_line_settings *settings, int drive) +{ + settings->drive = drive; + + return 0; +} + static void gpiod_request_config_set_consumer(struct gpiod_request_config *config, const char *consumer) { @@ -392,12 +404,13 @@ static int helper_get_line(enum adapter_gpio_config_index idx) switch (adapter_gpio_config[idx].drive) { case ADAPTER_GPIO_DRIVE_MODE_PUSH_PULL: + gpiod_line_settings_set_drive(line_settings, GPIOD_LINE_DRIVE_PUSH_PULL); break; case ADAPTER_GPIO_DRIVE_MODE_OPEN_DRAIN: - flags |= GPIOD_LINE_REQUEST_FLAG_OPEN_DRAIN; + gpiod_line_settings_set_drive(line_settings, GPIOD_LINE_DRIVE_OPEN_DRAIN); break; case ADAPTER_GPIO_DRIVE_MODE_OPEN_SOURCE: - flags |= GPIOD_LINE_REQUEST_FLAG_OPEN_SOURCE; + gpiod_line_settings_set_drive(line_settings, GPIOD_LINE_DRIVE_OPEN_SOURCE); break; } @@ -429,7 +442,7 @@ static int helper_get_line(enum adapter_gpio_config_index idx) flags |= GPIOD_LINE_REQUEST_FLAG_ACTIVE_LOW; req_cfg->request_type = line_settings->direction; - req_cfg->flags = flags; + req_cfg->flags = flags | line_settings->drive; retval = gpiod_line_request(gpiod_line[idx], req_cfg, line_settings->value); if (retval < 0) { --