flash/nor/at91samd: Use 32-bit register writes for ST-Link compat
[fw/openocd] / src / jtag / hla / hla_interface.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2
3 /***************************************************************************
4  *   Copyright (C) 2011 by Mathias Kuester                                 *
5  *   Mathias Kuester <kesmtp@freenet.de>                                   *
6  *                                                                         *
7  *   Copyright (C) 2012 by Spencer Oliver                                  *
8  *   spen@spen-soft.co.uk                                                  *
9  ***************************************************************************/
10
11 #ifndef OPENOCD_JTAG_HLA_HLA_INTERFACE_H
12 #define OPENOCD_JTAG_HLA_HLA_INTERFACE_H
13
14 /** */
15 struct target;
16 /** */
17 enum e_hl_transports;
18 /** */
19 extern const char *hl_transports[];
20
21 #define HLA_MAX_USB_IDS 16
22
23 struct hl_interface_param_s {
24         /** */
25         const char *device_desc;
26         /** List of recognised VIDs */
27         uint16_t vid[HLA_MAX_USB_IDS + 1];
28         /** List of recognised PIDs */
29         uint16_t pid[HLA_MAX_USB_IDS + 1];
30         /** */
31         enum hl_transports transport;
32         /** */
33         bool connect_under_reset;
34         /** Initial interface clock clock speed */
35         int initial_interface_speed;
36         /** */
37         bool use_stlink_tcp;
38         /** */
39         uint16_t stlink_tcp_port;
40 };
41
42 struct hl_interface_s {
43         /** */
44         struct hl_interface_param_s param;
45         /** */
46         const struct hl_layout *layout;
47         /** */
48         void *handle;
49 };
50
51 /** */
52 int hl_interface_open(enum hl_transports tr);
53 /** */
54
55 int hl_interface_init_target(struct target *t);
56 int hl_interface_init_reset(void);
57 int hl_interface_override_target(const char **targetname);
58
59 #endif /* OPENOCD_JTAG_HLA_HLA_INTERFACE_H */