This is an automated email from Gerrit.

"Steve Marple <stevemar...@googlemail.com>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/6937

-- gerrit

commit 1282e926152c19f970c8040685f995a57c620d0c
Author: Steve Marple <stevemar...@googlemail.com>
Date:   Tue Apr 19 23:29:55 2022 +0100

    bcm2835gpio: Make buffer an output before the GPIO connected to it
    
    The correct ordering is required to prevent two outputs connected
    together.
    
    Change-Id: I634a9ca7e0ccf337d1723011b8aee1f2d81efbcf
    Signed-off-by: Steve Marple <stevemar...@googlemail.com>

diff --git a/src/jtag/drivers/bcm2835gpio.c b/src/jtag/drivers/bcm2835gpio.c
index fd6c28b964..b7a4d998cd 100644
--- a/src/jtag/drivers/bcm2835gpio.c
+++ b/src/jtag/drivers/bcm2835gpio.c
@@ -565,6 +565,13 @@ static int bcm2835gpio_init(void)
        }
 
        if (transport_is_swd()) {
+               /* Make buffer an output before the GPIO connected to it */
+               if (swdio_dir_gpio != -1) {
+                       swdio_dir_gpio_mode = MODE_GPIO(swdio_dir_gpio);
+                       GPIO_SET = 1 << swdio_dir_gpio;
+                       OUT_GPIO(swdio_dir_gpio);
+               }
+
                swclk_gpio_mode = MODE_GPIO(swclk_gpio);
                swdio_gpio_mode = MODE_GPIO(swdio_gpio);
 
@@ -580,12 +587,6 @@ static int bcm2835gpio_init(void)
                OUT_GPIO(srst_gpio);
        }
 
-       if (swdio_dir_gpio != -1) {
-               swdio_dir_gpio_mode = MODE_GPIO(swdio_dir_gpio);
-               GPIO_SET = 1 << swdio_dir_gpio;
-               OUT_GPIO(swdio_dir_gpio);
-       }
-
        LOG_DEBUG("saved pinmux settings: tck %d tms %d tdi %d "
                  "tdo %d trst %d srst %d", tck_gpio_mode, tms_gpio_mode,
                  tdi_gpio_mode, tdo_gpio_mode, trst_gpio_mode, srst_gpio_mode);

-- 

Reply via email to