OpenOCD
adapter.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Copyright (C) 2005 by Dominic Rath <Dominic.Rath@gmx.de>
4  * Copyright (c) 2018 Pengutronix, Oleksij Rempel <kernel@pengutronix.de>
5  */
6 
7 #ifndef OPENOCD_JTAG_ADAPTER_H
8 #define OPENOCD_JTAG_ADAPTER_H
9 
10 #include <stdbool.h>
11 #include <stddef.h>
12 #include <stdint.h>
13 #include <limits.h>
14 
20 };
21 
27 };
28 
31  ADAPTER_GPIO_INIT_STATE_INACTIVE, /* Should be zero so it is the default state */
34 };
35 
38  ADAPTER_GPIO_EXIT_STATE_NO_CHANGE, /* Should be zero so it is the default state */
42 };
43 
49 };
50 
64  ADAPTER_GPIO_IDX_NUM, /* must be the last item */
65 };
66 
69  unsigned int gpio_num;
70  unsigned int chip_num;
71  enum adapter_gpio_drive_mode drive; /* For outputs only */
74  bool active_low;
76 };
77 
78 struct command_context;
79 
82 
84 int adapter_init(struct command_context *cmd_ctx);
85 
87 int adapter_quit(void);
88 
90 bool is_adapter_initialized(void);
91 
93 const char *adapter_usb_get_location(void);
94 
96 bool adapter_usb_location_equal(uint8_t dev_bus, uint8_t *port_path, size_t path_len);
97 
99 int adapter_get_speed(int *speed);
100 
108 int adapter_get_speed_readable(int *speed);
109 
114 int adapter_config_rclk(unsigned int fallback_speed_khz);
115 
117 unsigned int adapter_get_speed_khz(void);
118 
120 const char *adapter_get_required_serial(void);
121 
126 
130 const struct adapter_gpio_config *adapter_gpio_get_config(void);
131 
132 #define ADAPTER_GPIO_NOT_SET UINT_MAX
133 
134 #endif /* OPENOCD_JTAG_ADAPTER_H */
int adapter_config_rclk(unsigned int fallback_speed_khz)
Attempt to enable RTCK/RCLK.
Definition: adapter.c:261
adapter_gpio_init_state
Supported initial states for GPIO.
Definition: adapter.h:30
@ ADAPTER_GPIO_INIT_STATE_ACTIVE
Definition: adapter.h:32
@ ADAPTER_GPIO_INIT_STATE_INPUT
Definition: adapter.h:33
@ ADAPTER_GPIO_INIT_STATE_INACTIVE
Definition: adapter.h:31
const char * adapter_get_required_serial(void)
Retrieves the serial number set with command 'adapter serial'.
Definition: adapter.c:302
bool adapter_usb_location_equal(uint8_t dev_bus, uint8_t *port_path, size_t path_len)
Definition: adapter.c:333
const struct adapter_gpio_config * adapter_gpio_get_config(void)
Retrieves gpio configuration set with command "adapter gpio <signal_name>".
Definition: adapter.c:1263
adapter_gpio_exit_state
Supported exit states for GPIO.
Definition: adapter.h:37
@ ADAPTER_GPIO_EXIT_STATE_NO_CHANGE
Definition: adapter.h:38
@ ADAPTER_GPIO_EXIT_STATE_INPUT
Definition: adapter.h:41
@ ADAPTER_GPIO_EXIT_STATE_ACTIVE
Definition: adapter.h:40
@ ADAPTER_GPIO_EXIT_STATE_INACTIVE
Definition: adapter.h:39
int adapter_get_speed(int *speed)
Definition: adapter.c:271
bool is_adapter_initialized(void)
Definition: adapter.c:73
int adapter_quit(void)
Shutdown the debug adapter upon program exit.
Definition: adapter.c:189
unsigned int adapter_get_speed_khz(void)
Retrieves the clock speed of the adapter in kHz.
Definition: adapter.c:210
adapter_gpio_config_index
Adapter GPIO.
Definition: adapter.h:52
@ ADAPTER_GPIO_IDX_LED
Definition: adapter.h:62
@ ADAPTER_GPIO_IDX_NUM
Definition: adapter.h:64
@ ADAPTER_GPIO_IDX_SWCLK
Definition: adapter.h:60
@ ADAPTER_GPIO_IDX_SWDIO_DIR
Definition: adapter.h:59
@ ADAPTER_GPIO_IDX_SRST
Definition: adapter.h:61
@ ADAPTER_GPIO_IDX_TRST
Definition: adapter.h:57
@ ADAPTER_GPIO_IDX_TDI
Definition: adapter.h:54
@ ADAPTER_GPIO_IDX_TMS
Definition: adapter.h:55
@ ADAPTER_GPIO_IDX_USER0
Definition: adapter.h:63
@ ADAPTER_GPIO_IDX_TCK
Definition: adapter.h:56
@ ADAPTER_GPIO_IDX_TDO
Definition: adapter.h:53
@ ADAPTER_GPIO_IDX_SWDIO
Definition: adapter.h:58
adapter_gpio_direction
Supported GPIO directions.
Definition: adapter.h:23
@ ADAPTER_GPIO_DIRECTION_OUTPUT
Definition: adapter.h:25
@ ADAPTER_GPIO_DIRECTION_INPUT
Definition: adapter.h:24
@ ADAPTER_GPIO_DIRECTION_BIDIRECTIONAL
Definition: adapter.h:26
adapter_gpio_pull
Supported pull directions for GPIO.
Definition: adapter.h:45
@ ADAPTER_GPIO_PULL_UP
Definition: adapter.h:47
@ ADAPTER_GPIO_PULL_DOWN
Definition: adapter.h:48
@ ADAPTER_GPIO_PULL_NONE
Definition: adapter.h:46
int adapter_get_speed_readable(int *speed)
Given a speed setting, use the interface speed_div callback to adjust the setting.
Definition: adapter.c:287
const char * adapter_usb_get_location(void)
Definition: adapter.c:328
int adapter_register_commands(struct command_context *ctx)
Register the adapter's commands.
Definition: adapter.c:1252
int adapter_init(struct command_context *cmd_ctx)
Initialize debug adapter upon startup.
Definition: adapter.c:124
adapter_gpio_drive_mode
Supported output drive modes for adaptor GPIO.
Definition: adapter.h:16
@ ADAPTER_GPIO_DRIVE_MODE_OPEN_SOURCE
Definition: adapter.h:19
@ ADAPTER_GPIO_DRIVE_MODE_OPEN_DRAIN
Definition: adapter.h:18
@ ADAPTER_GPIO_DRIVE_MODE_PUSH_PULL
Definition: adapter.h:17
const char * adapter_gpio_get_name(enum adapter_gpio_config_index idx)
Retrieves gpio name.
Definition: adapter.c:1257
Configuration options for a single GPIO.
Definition: adapter.h:68
unsigned int gpio_num
Definition: adapter.h:69
unsigned int chip_num
Definition: adapter.h:70
enum adapter_gpio_exit_state exit_state
Definition: adapter.h:73
enum adapter_gpio_pull pull
Definition: adapter.h:75
enum adapter_gpio_init_state init_state
Definition: adapter.h:72
enum adapter_gpio_drive_mode drive
Definition: adapter.h:71