drivers/am335xgpio: Add AM335x driver for bitbang support on BeagleBones
[fw/openocd] / src / jtag / adapter.h
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
14 struct command_context;
15
16 /** Register the adapter's commands */
17 int adapter_register_commands(struct command_context *ctx);
18
19 /** Initialize debug adapter upon startup.  */
20 int adapter_init(struct command_context *cmd_ctx);
21
22 /** Shutdown the debug adapter upon program exit. */
23 int adapter_quit(void);
24
25 /** @returns true if adapter has been initialized */
26 bool is_adapter_initialized(void);
27
28 /** @returns USB location string set with command 'adapter usb location' */
29 const char *adapter_usb_get_location(void);
30
31 /** @returns true if USB location string is "<dev_bus>-<port_path[0]>[.<port_path[1]>[...]]" */
32 bool adapter_usb_location_equal(uint8_t dev_bus, uint8_t *port_path, size_t path_len);
33
34 /** @returns The current adapter speed setting. */
35 int adapter_get_speed(int *speed);
36
37 /**
38  * Given a @a speed setting, use the interface @c speed_div callback to
39  * adjust the setting.
40  * @param speed The speed setting to convert back to readable kHz.
41  * @returns ERROR_OK if the interface has not been initialized or on success;
42  *  otherwise, the error code produced by the @c speed_div callback.
43  */
44 int adapter_get_speed_readable(int *speed);
45
46 /** Attempt to configure the adapter for the specified kHz. */
47 int adapter_config_khz(unsigned int khz);
48
49 /**
50  * Attempt to enable RTCK/RCLK. If that fails, fallback to the
51  * specified frequency.
52  */
53 int adapter_config_rclk(unsigned int fallback_speed_khz);
54
55 /** Retrieves the clock speed of the adapter in kHz. */
56 unsigned int adapter_get_speed_khz(void);
57
58 /** Retrieves the serial number set with command 'adapter serial' */
59 const char *adapter_get_required_serial(void);
60
61 #endif /* OPENOCD_JTAG_ADAPTER_H */