aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTomas Vanek <vanekt@fbl.cz>2022-10-13 22:33:12 +0200
committerAntonio Borneo <borneo.antonio@gmail.com>2023-01-28 15:54:32 +0000
commit2dde7e914b429ffa5bc56faa20fb474ca451412e (patch)
tree234394876d0297079fe8d23f5801ad15cd718a5e /src
parentb4dd8dbc37daf073bf6481fdc7f0f9d7f2e96809 (diff)
downloadriscv-openocd-2dde7e914b429ffa5bc56faa20fb474ca451412e.zip
riscv-openocd-2dde7e914b429ffa5bc56faa20fb474ca451412e.tar.gz
riscv-openocd-2dde7e914b429ffa5bc56faa20fb474ca451412e.tar.bz2
jtag/drivers/bcm2835gpio: refactor delays to inline function
No functional change, the delay is unchanged. Change-Id: I5b5e837d741ac01fc573657357c5fe61ad901319 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/7262 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/jtag/drivers/bcm2835gpio.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/jtag/drivers/bcm2835gpio.c b/src/jtag/drivers/bcm2835gpio.c
index 320baba..635d9a5 100644
--- a/src/jtag/drivers/bcm2835gpio.c
+++ b/src/jtag/drivers/bcm2835gpio.c
@@ -66,6 +66,12 @@ static inline void bcm2835_gpio_synchronize(void)
__sync_synchronize();
}
+static inline void bcm2835_delay(void)
+{
+ for (unsigned int i = 0; i < jtag_delay; i++)
+ asm volatile ("");
+}
+
static bool is_gpio_config_valid(enum adapter_gpio_config_index idx)
{
/* Only chip 0 is supported, accept unset value (-1) too */
@@ -178,8 +184,7 @@ static int bcm2835gpio_write(int tck, int tms, int tdi)
GPIO_CLR = clear;
bcm2835_gpio_synchronize();
- for (unsigned int i = 0; i < jtag_delay; i++)
- asm volatile ("");
+ bcm2835_delay();
return ERROR_OK;
}
@@ -199,8 +204,7 @@ static int bcm2835gpio_swd_write_fast(int swclk, int swdio)
GPIO_CLR = clear;
bcm2835_gpio_synchronize();
- for (unsigned int i = 0; i < jtag_delay; i++)
- asm volatile ("");
+ bcm2835_delay();
return ERROR_OK;
}
@@ -211,8 +215,7 @@ static int bcm2835gpio_swd_write_generic(int swclk, int swdio)
set_gpio_value(&adapter_gpio_config[ADAPTER_GPIO_IDX_SWDIO], swdio);
set_gpio_value(&adapter_gpio_config[ADAPTER_GPIO_IDX_SWCLK], swclk); /* Write clock last */
- for (unsigned int i = 0; i < jtag_delay; ++i)
- asm volatile ("");
+ bcm2835_delay();
return ERROR_OK;
}