jtag: drivers: bcm2835gpio: set 4ma drive, slow slew rate 07/3707/2
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 1622b22..a41caf0 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);