aboutsummaryrefslogtreecommitdiff
path: root/src/jtag/drivers/imx_gpio.c
diff options
context:
space:
mode:
authorAntonio Borneo <borneo.antonio@gmail.com>2019-01-22 16:31:18 +0100
committerTomas Vanek <vanekt@fbl.cz>2020-01-14 11:39:37 +0000
commitefd1d642220a4f6d3b9a9607c186452b265400d2 (patch)
tree13272d92e149e66524d420111fe740868a7e30ce /src/jtag/drivers/imx_gpio.c
parent7268ff22c399832ee09ca3216753f17473ae9fab (diff)
downloadriscv-openocd-efd1d642220a4f6d3b9a9607c186452b265400d2.zip
riscv-openocd-efd1d642220a4f6d3b9a9607c186452b265400d2.tar.gz
riscv-openocd-efd1d642220a4f6d3b9a9607c186452b265400d2.tar.bz2
adapter: switch from struct jtag_interface to adapter_driver
To reorganize the adapters code, introduce an adapter_driver struct that contains all the adapter generic part, while keeping in two separate struct the specific API jtag_ops and swd_ops. Move the allocation of *adapter_driver from the JTAG-specific file core.c to the more adapter-specific file adapter.c While splitting the old jtag_interface for every driver, put the fields in the same order as in the struct declaration so we keep a consistent code across all the drivers. While other transport specific API could/would be added as separate ops, nothing is done here for HLA. Change-Id: I2d60f97ac514c0dd2d93a6ec9be66fd9d388dad5 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: http://openocd.zylin.com/4900 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'src/jtag/drivers/imx_gpio.c')
-rw-r--r--src/jtag/drivers/imx_gpio.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/jtag/drivers/imx_gpio.c b/src/jtag/drivers/imx_gpio.c
index d677e8a..7dcfb67 100644
--- a/src/jtag/drivers/imx_gpio.c
+++ b/src/jtag/drivers/imx_gpio.c
@@ -427,19 +427,25 @@ static const struct command_registration imx_gpio_command_handlers[] = {
static const char * const imx_gpio_transports[] = { "jtag", "swd", NULL };
-struct jtag_interface imx_gpio_interface = {
- .name = "imx_gpio",
+static struct jtag_interface imx_gpio_interface = {
.supported = DEBUG_CAP_TMS_SEQ,
.execute_queue = bitbang_execute_queue,
+};
+
+struct adapter_driver imx_gpio_adapter_driver = {
+ .name = "imx_gpio",
.transports = imx_gpio_transports,
- .swd = &bitbang_swd,
- .speed = imx_gpio_speed,
- .khz = imx_gpio_khz,
- .speed_div = imx_gpio_speed_div,
.commands = imx_gpio_command_handlers,
+
.init = imx_gpio_init,
.quit = imx_gpio_quit,
.reset = imx_gpio_reset,
+ .speed = imx_gpio_speed,
+ .khz = imx_gpio_khz,
+ .speed_div = imx_gpio_speed_div,
+
+ .jtag_ops = &imx_gpio_interface,
+ .swd_ops = &bitbang_swd,
};
static bool imx_gpio_jtag_mode_possible(void)