This is an automated email from Gerrit.

"Vincent Fazio <vfa...@gmail.com>" just uploaded a new patch set to Gerrit, 
which you can find at https://review.openocd.org/c/openocd/+/7877

-- gerrit

commit 159ca62bff3f37144f2081c4cf23836421191a82
Author: Vincent Fazio <vfa...@xes-inc.com>
Date:   Tue Aug 29 07:30:23 2023 -0500

    jtag/drivers/am335xgpio: do not configure push-pull inputs as output
    
    Previously, if a pin was configured as ADAPTER_GPIO_INIT_STATE_INPUT and
    its drive value was ADAPTER_GPIO_DRIVE_MODE_PUSH_PULL, initialize_gpio
    would configure the pin as an output.
    
    The set_gpio_value function is optimized to not set the direction for
    pins configured as ADAPTER_GPIO_DRIVE_MODE_PUSH_PULL as it only needs to
    be set once. When initialize_gpio performs this setup, it checked only
    that the drive value was ADAPTER_GPIO_DRIVE_MODE_PUSH_PULL to set the
    output direction but did not exclude input pins which have already had
    their direction set.
    
    Now, input pins are ignored when initialize_gpio checks for
    ADAPTER_GPIO_DRIVE_MODE_PUSH_PULL to set the mode to output.
    
    Fixes: ace028262ba0 ("drivers/am335xgpio: Migrate to adapter gpio commands")
    Change-Id: I9ea502c400ea4ffae37080b9cee891ca9176a47d
    Signed-off-by: Vincent Fazio <vfa...@xes-inc.com>

diff --git a/src/jtag/drivers/am335xgpio.c b/src/jtag/drivers/am335xgpio.c
index e641a4fae6..29d410118e 100644
--- a/src/jtag/drivers/am335xgpio.c
+++ b/src/jtag/drivers/am335xgpio.c
@@ -184,7 +184,8 @@ static void initialize_gpio(enum adapter_gpio_config_index 
idx)
        }
 
        /* Direction for non push-pull is already set by set_gpio_value() */
-       if (adapter_gpio_config[idx].drive == ADAPTER_GPIO_DRIVE_MODE_PUSH_PULL)
+       if (adapter_gpio_config[idx].drive == ADAPTER_GPIO_DRIVE_MODE_PUSH_PULL
+               && adapter_gpio_config[idx].init_state != 
ADAPTER_GPIO_INIT_STATE_INPUT)
                AM335XGPIO_SET_OUTPUT(&adapter_gpio_config[idx]);
 }
 

-- 

Reply via email to