]> git.sur5r.net Git - openocd/commitdiff
jtag: drivers: bcm2835gpio: set 4ma drive, slow slew rate
authorSean Cross <sean@xobs.io>
Thu, 18 Aug 2016 05:16:29 +0000 (05:16 +0000)
committerPaul Fertser <fercerpav@gmail.com>
Thu, 8 Dec 2016 12:34:09 +0000 (12:34 +0000)
Both the drive strength and slew rate are currently set to very high
values.  This causes the waveforms to overshoot and be less reliable
when operating at high speed.

This patch lowers the slew rate and sets the drive strength to 4ma,
improving the waveform output.

Change-Id: I761d35cd64bc54a9e94043904ef00a003b056af0
Signed-off-by: Sean Cross <sean@xobs.io>
Reviewed-on: http://openocd.zylin.com/3707
Tested-by: jenkins
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-by: Philipp Guehring <pg@futureware.at>
src/jtag/drivers/bcm2835gpio.c

index 1622b22157fc51a9fa0342936e5e5ce123021ca3..a41caf073b9da1a2e9bc199def9a08c43e1ecb0c 100644 (file)
@@ -468,8 +468,8 @@ static int bcm2835gpio_init(void)
                return ERROR_JTAG_INIT_FAILED;
        }
 
-       /* set 16mA drive strength */
-       pads_base[BCM2835_PADS_GPIO_0_27_OFFSET] = 0x5a000018 + 7;
+       /* set 4mA drive strength, slew rate limited, hysteresis on */
+       pads_base[BCM2835_PADS_GPIO_0_27_OFFSET] = 0x5a000008 + 1;
 
        tdo_gpio_mode = MODE_GPIO(tdo_gpio);
        tdi_gpio_mode = MODE_GPIO(tdi_gpio);