/* SPDX-License-Identifier: GPL-2.0-or-later *//* * Copyright (C) 2005 by Dominic Rath <Dominic.Rath@gmx.de> * Copyright (c) 2018 Pengutronix, Oleksij Rempel <kernel@pengutronix.de> *//* ... */#ifndefOPENOCD_JTAG_ADAPTER_H#defineOPENOCD_JTAG_ADAPTER_H#include<stdbool.h>#include<stddef.h>#include<stdint.h>#include<limits.h>/** Supported output drive modes for adaptor GPIO */enumadapter_gpio_drive_mode{ADAPTER_GPIO_DRIVE_MODE_PUSH_PULL,ADAPTER_GPIO_DRIVE_MODE_OPEN_DRAIN,ADAPTER_GPIO_DRIVE_MODE_OPEN_SOURCE,...};/** Supported GPIO directions */enumadapter_gpio_direction{ADAPTER_GPIO_DIRECTION_INPUT,ADAPTER_GPIO_DIRECTION_OUTPUT,ADAPTER_GPIO_DIRECTION_BIDIRECTIONAL,...};/** Supported initial states for GPIO */enumadapter_gpio_init_state{ADAPTER_GPIO_INIT_STATE_INACTIVE,/* Should be zero so it is the default state */ADAPTER_GPIO_INIT_STATE_ACTIVE,ADAPTER_GPIO_INIT_STATE_INPUT,...};/** Supported pull directions for GPIO */enumadapter_gpio_pull{ADAPTER_GPIO_PULL_NONE,ADAPTER_GPIO_PULL_UP,ADAPTER_GPIO_PULL_DOWN,...};/** Adapter GPIO */enumadapter_gpio_config_index{ADAPTER_GPIO_IDX_TDO,ADAPTER_GPIO_IDX_TDI,ADAPTER_GPIO_IDX_TMS,ADAPTER_GPIO_IDX_TCK,ADAPTER_GPIO_IDX_TRST,ADAPTER_GPIO_IDX_SWDIO,ADAPTER_GPIO_IDX_SWDIO_DIR,ADAPTER_GPIO_IDX_SWCLK,ADAPTER_GPIO_IDX_SRST,ADAPTER_GPIO_IDX_LED,ADAPTER_GPIO_IDX_NUM,/* must be the last item */...};/** Configuration options for a single GPIO */structadapter_gpio_config{unsignedintgpio_num;unsignedintchip_num;enumadapter_gpio_drive_modedrive;/* For outputs only */enumadapter_gpio_init_stateinit_state;boolactive_low;enumadapter_gpio_pullpull;...};structcommand_context;/** Register the adapter's commands */intadapter_register_commands(structcommand_context*ctx);/** Initialize debug adapter upon startup. */intadapter_init(structcommand_context*cmd_ctx);/** Shutdown the debug adapter upon program exit. */intadapter_quit(void);/** @returns true if adapter has been initialized */boolis_adapter_initialized(void);/** @returns USB location string set with command 'adapter usb location' */constchar*adapter_usb_get_location(void);/** @returns true if USB location string is "<dev_bus>-<port_path[0]>[.<port_path[1]>[...]]" */booladapter_usb_location_equal(uint8_tdev_bus,uint8_t*port_path,size_tpath_len);/** @returns The current adapter speed setting. */intadapter_get_speed(int*speed);/** * Given a @a speed setting, use the interface @c speed_div callback to * adjust the setting. * @param speed The speed setting to convert back to readable kHz. * @returns ERROR_OK if the interface has not been initialized or on success; * otherwise, the error code produced by the @c speed_div callback. *//* ... */intadapter_get_speed_readable(int*speed);/** Attempt to configure the adapter for the specified kHz. */intadapter_config_khz(unsignedintkhz);/** * Attempt to enable RTCK/RCLK. If that fails, fallback to the * specified frequency. *//* ... */intadapter_config_rclk(unsignedintfallback_speed_khz);/** Retrieves the clock speed of the adapter in kHz. */unsignedintadapter_get_speed_khz(void);/** Retrieves the serial number set with command 'adapter serial' */constchar*adapter_get_required_serial(void);/** * Retrieves gpio name *//* ... */constchar*adapter_gpio_get_name(enumadapter_gpio_config_indexidx);/** * Retrieves gpio configuration set with command "adapter gpio <signal_name>" *//* ... */conststructadapter_gpio_config*adapter_gpio_get_config(void);#defineADAPTER_GPIO_NOT_SETUINT_MAX/* ... */#endif/* OPENOCD_JTAG_ADAPTER_H */
Details
Show: from
Types: Columns:
All items filtered out
All items filtered out
Click anywhere in the source to view detailed information here...