Make #include guard naming consistent
[openocd.git] / src / jtag / drivers / versaloon / usbtoxxx / usbtoxxx.h
1 /***************************************************************************
2 * Copyright (C) 2009 - 2010 by Simon Qian <SimonQian@SimonQian.com> *
3 * *
4 * This program is free software; you can redistribute it and/or modify *
5 * it under the terms of the GNU General Public License as published by *
6 * the Free Software Foundation; either version 2 of the License, or *
7 * (at your option) any later version. *
8 * *
9 * This program is distributed in the hope that it will be useful, *
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12 * GNU General Public License for more details. *
13 * *
14 * You should have received a copy of the GNU General Public License *
15 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
16 ***************************************************************************/
17
18 #ifndef OPENOCD_JTAG_DRIVERS_VERSALOON_USBTOXXX_USBTOXXX_H
19 #define OPENOCD_JTAG_DRIVERS_VERSALOON_USBTOXXX_USBTOXXX_H
20
21 RESULT usbtoxxx_init(void);
22 RESULT usbtoxxx_fini(void);
23 RESULT usbtoxxx_execute_command(void);
24
25 #define USB_TO_XXX_ABILITIES_LEN 12
26 extern uint8_t usbtoxxx_abilities[USB_TO_XXX_ABILITIES_LEN];
27 bool usbtoxxx_interface_supported(uint8_t cmd);
28
29 /* USB_TO_INFO */
30 RESULT usbtoinfo_get_abilities(uint8_t abilities[USB_TO_XXX_ABILITIES_LEN]);
31
32 /* USB_TO_DELAY */
33 RESULT usbtodelay_delay(uint16_t dly);
34 RESULT usbtodelay_delayms(uint16_t ms);
35 RESULT usbtodelay_delayus(uint16_t us);
36
37 /* USB_TO_USART */
38 RESULT usbtousart_init(uint8_t interface_index);
39 RESULT usbtousart_fini(uint8_t interface_index);
40 RESULT usbtousart_config(uint8_t interface_index, uint32_t baudrate,
41 uint8_t datalength, uint8_t mode);
42 RESULT usbtousart_send(uint8_t interface_index, uint8_t *buf, uint16_t len);
43 RESULT usbtousart_receive(uint8_t interface_index, uint8_t *buf, uint16_t len);
44 RESULT usbtousart_status(uint8_t interface_index,
45 struct usart_status_t *status);
46
47 /* USB_TO_SPI */
48 RESULT usbtospi_init(uint8_t interface_index);
49 RESULT usbtospi_fini(uint8_t interface_index);
50 RESULT usbtospi_config(uint8_t interface_index, uint32_t kHz, uint8_t mode);
51 RESULT usbtospi_io(uint8_t interface_index, uint8_t *out, uint8_t *in,
52 uint16_t bytelen);
53
54 /* USB_TO_GPIO */
55 RESULT usbtogpio_init(uint8_t interface_index);
56 RESULT usbtogpio_fini(uint8_t interface_index);
57 RESULT usbtogpio_config(uint8_t interface_index, uint32_t mask,
58 uint32_t dir_mask, uint32_t pull_en_mask,
59 uint32_t input_pull_mask);
60 RESULT usbtogpio_in(uint8_t interface_index, uint32_t mask, uint32_t *value);
61 RESULT usbtogpio_out(uint8_t interface_index, uint32_t mask, uint32_t value);
62
63 /* USB_TO_ISSP */
64 RESULT usbtoissp_init(uint8_t interface_index);
65 RESULT usbtoissp_fini(uint8_t interface_index);
66 RESULT usbtoissp_enter_program_mode(uint8_t interface_index, uint8_t mode);
67 RESULT usbtoissp_leave_program_mode(uint8_t interface_index, uint8_t mode);
68 RESULT usbtoissp_wait_and_poll(uint8_t interface_index);
69 RESULT usbtoissp_vector(uint8_t interface_index, uint8_t operate, uint8_t addr,
70 uint8_t data, uint8_t *buf);
71
72 /* USB_TO_LPCICP */
73 RESULT usbtolpcicp_init(uint8_t interface_index);
74 RESULT usbtolpcicp_fini(uint8_t interface_index);
75 RESULT usbtolpcicp_config(uint8_t interface_index);
76 RESULT usbtolpcicp_enter_program_mode(uint8_t interface_index);
77 RESULT usbtolpcicp_in(uint8_t interface_index, uint8_t *buff, uint16_t len);
78 RESULT usbtolpcicp_out(uint8_t interface_index, uint8_t *buff, uint16_t len);
79 RESULT usbtolpcicp_poll_ready(uint8_t interface_index, uint8_t data,
80 uint8_t *ret, uint8_t setmask, uint8_t clearmask, uint16_t pollcnt);
81
82 /* USB_TO_JTAG_LL */
83 RESULT usbtojtagll_init(uint8_t interface_index);
84 RESULT usbtojtagll_fini(uint8_t interface_index);
85 RESULT usbtojtagll_config(uint8_t interface_index, uint32_t kHz);
86 RESULT usbtojtagll_tms(uint8_t interface_index, uint8_t *tms, uint8_t bytelen);
87 RESULT usbtojtagll_tms_clocks(uint8_t interface_index, uint32_t bytelen,
88 uint8_t tms);
89 RESULT usbtojtagll_scan(uint8_t interface_index, uint8_t *data,
90 uint16_t bitlen, uint8_t tms_before_valid,
91 uint8_t tms_before, uint8_t tms_after0,
92 uint8_t tms_after1);
93
94 /* USB_TO_JTAG_HL */
95 RESULT usbtojtaghl_init(uint8_t interface_index);
96 RESULT usbtojtaghl_fini(uint8_t interface_index);
97 RESULT usbtojtaghl_config(uint8_t interface_index, uint32_t kHz, uint8_t ub,
98 uint8_t ua, uint16_t bb, uint16_t ba);
99 RESULT usbtojtaghl_ir(uint8_t interface_index, uint8_t *ir, uint16_t bitlen,
100 uint8_t idle, uint8_t want_ret);
101 RESULT usbtojtaghl_dr(uint8_t interface_index, uint8_t *dr, uint16_t bitlen,
102 uint8_t idle, uint8_t want_ret);
103 RESULT usbtojtaghl_tms(uint8_t interface_index, uint8_t *tms, uint16_t bitlen);
104 RESULT usbtojtaghl_runtest(uint8_t interface_index, uint32_t cycles);
105 RESULT usbtojtaghl_register_callback(uint8_t index, jtag_callback_t send_callback,
106 jtag_callback_t receive_callback);
107
108 /* USB_TO_JTAG_RAW */
109 RESULT usbtojtagraw_init(uint8_t interface_index);
110 RESULT usbtojtagraw_fini(uint8_t interface_index);
111 RESULT usbtojtagraw_config(uint8_t interface_index, uint32_t kHz);
112 RESULT usbtojtagraw_execute(uint8_t interface_index, uint8_t *tdi,
113 uint8_t *tms, uint8_t *tdo, uint32_t bitlen);
114
115 /* USB_TO_C2 */
116 RESULT usbtoc2_init(uint8_t interface_index);
117 RESULT usbtoc2_fini(uint8_t interface_index);
118 RESULT usbtoc2_writeaddr(uint8_t interface_index, uint8_t addr);
119 RESULT usbtoc2_readaddr(uint8_t interface_index, uint8_t *data);
120 RESULT usbtoc2_writedata(uint8_t interface_index, uint8_t *buf, uint8_t len);
121 RESULT usbtoc2_readdata(uint8_t interface_index, uint8_t *buf, uint8_t len);
122
123 /* USB_TO_I2C */
124 RESULT usbtoi2c_init(uint8_t interface_index);
125 RESULT usbtoi2c_fini(uint8_t interface_index);
126 RESULT usbtoi2c_config(uint8_t interface_index, uint16_t kHz,
127 uint16_t byte_interval, uint16_t max_dly);
128 RESULT usbtoi2c_read(uint8_t interface_index, uint16_t chip_addr,
129 uint8_t *data, uint16_t data_len, uint8_t stop,
130 bool nacklast);
131 RESULT usbtoi2c_write(uint8_t interface_index, uint16_t chip_addr,
132 uint8_t *data, uint16_t data_len, uint8_t stop);
133
134 /* USB_TO_MSP430_JTAG */
135 RESULT usbtomsp430jtag_init(uint8_t interface_index);
136 RESULT usbtomsp430jtag_fini(uint8_t interface_index);
137 RESULT usbtomsp430jtag_config(uint8_t interface_index, uint8_t has_test);
138 RESULT usbtomsp430jtag_ir(uint8_t interface_index, uint8_t *ir,
139 uint8_t want_ret);
140 RESULT usbtomsp430jtag_dr(uint8_t interface_index, uint32_t *dr,
141 uint8_t bitlen, uint8_t want_ret);
142 RESULT usbtomsp430jtag_tclk(uint8_t interface_index, uint8_t value);
143 RESULT usbtomsp430jtag_tclk_strobe(uint8_t interface_index, uint16_t cnt);
144 RESULT usbtomsp430jtag_reset(uint8_t interface_index);
145 RESULT usbtomsp430jtag_poll(uint8_t interface_index, uint32_t dr,
146 uint32_t mask, uint32_t value, uint8_t len,
147 uint16_t poll_cnt, uint8_t toggle_tclk);
148
149 /* USB_TO_MSP430_SBW */
150 RESULT usbtomsp430sbw_init(uint8_t interface_index);
151 RESULT usbtomsp430sbw_fini(uint8_t interface_index);
152 RESULT usbtomsp430sbw_config(uint8_t interface_index, uint8_t has_test);
153 RESULT usbtomsp430sbw_ir(uint8_t interface_index, uint8_t *ir,
154 uint8_t want_ret);
155 RESULT usbtomsp430sbw_dr(uint8_t interface_index, uint32_t *dr,
156 uint8_t bitlen, uint8_t want_ret);
157 RESULT usbtomsp430sbw_tclk(uint8_t interface_index, uint8_t value);
158 RESULT usbtomsp430sbw_tclk_strobe(uint8_t interface_index, uint16_t cnt);
159 RESULT usbtomsp430sbw_reset(uint8_t interface_index);
160 RESULT usbtomsp430sbw_poll(uint8_t interface_index, uint32_t dr, uint32_t mask,
161 uint32_t value, uint8_t len, uint16_t poll_cnt,
162 uint8_t toggle_tclk);
163
164 /* USB_TO_POWER */
165 RESULT usbtopwr_init(uint8_t interface_index);
166 RESULT usbtopwr_fini(uint8_t interface_index);
167 RESULT usbtopwr_config(uint8_t interface_index);
168 RESULT usbtopwr_output(uint8_t interface_index, uint16_t mV);
169
170 /* USB_TO_POLL */
171 RESULT usbtopoll_start(uint16_t retry_cnt, uint16_t interval_us);
172 RESULT usbtopoll_end(void);
173 RESULT usbtopoll_checkok(uint8_t equ, uint16_t offset, uint8_t size,
174 uint32_t mask, uint32_t value);
175 RESULT usbtopoll_checkfail(uint8_t equ, uint16_t offset, uint8_t size,
176 uint32_t mask, uint32_t value);
177 RESULT usbtopoll_verifybuff(uint16_t offset, uint16_t size, uint8_t *buff);
178
179 /* USB_TO_SWD */
180 RESULT usbtoswd_init(uint8_t interface_index);
181 RESULT usbtoswd_fini(uint8_t interface_index);
182 RESULT usbtoswd_config(uint8_t interface_index, uint8_t trn, uint16_t retry,
183 uint16_t dly);
184 RESULT usbtoswd_seqout(uint8_t interface_index, const uint8_t *data,
185 uint16_t bitlen);
186 RESULT usbtoswd_seqin(uint8_t interface_index, uint8_t *data, uint16_t bitlen);
187 RESULT usbtoswd_transact(uint8_t interface_index, uint8_t request,
188 uint32_t *data, uint8_t *ack);
189
190 /* USB_TO_SWIM */
191 RESULT usbtoswim_init(uint8_t interface_index);
192 RESULT usbtoswim_fini(uint8_t interface_index);
193 RESULT usbtoswim_config(uint8_t interface_index, uint8_t mHz, uint8_t cnt0,
194 uint8_t cnt1);
195 RESULT usbtoswim_srst(uint8_t interface_index);
196 RESULT usbtoswim_wotf(uint8_t interface_index, uint8_t *data,
197 uint16_t bytelen, uint32_t addr);
198 RESULT usbtoswim_rotf(uint8_t interface_index, uint8_t *data,
199 uint16_t bytelen, uint32_t addr);
200 RESULT usbtoswim_sync(uint8_t interface_index, uint8_t mHz);
201 RESULT usbtoswim_enable(uint8_t interface_index);
202
203 /* USB_TO_BDM */
204 RESULT usbtobdm_init(uint8_t interface_index);
205 RESULT usbtobdm_fini(uint8_t interface_index);
206 RESULT usbtobdm_sync(uint8_t interface_index, uint16_t *khz);
207 RESULT usbtobdm_transact(uint8_t interface_index, uint8_t *out,
208 uint8_t outlen, uint8_t *in, uint8_t inlen, uint8_t delay, uint8_t ack);
209
210 /* USB_TO_DUSI */
211 RESULT usbtodusi_init(uint8_t interface_index);
212 RESULT usbtodusi_fini(uint8_t interface_index);
213 RESULT usbtodusi_config(uint8_t interface_index, uint32_t kHz, uint8_t mode);
214 RESULT usbtodusi_io(uint8_t interface_index, uint8_t *mo, uint8_t *mi,
215 uint8_t *so, uint8_t *si, uint32_t bitlen);
216
217 /* USB_TO_MICROWIRE */
218 RESULT usbtomicrowire_init(uint8_t interface_index);
219 RESULT usbtomicrowire_fini(uint8_t interface_index);
220 RESULT usbtomicrowire_config(uint8_t interface_index, uint16_t kHz,
221 uint8_t sel_polarity);
222 RESULT usbtomicrowire_transport(uint8_t interface_index,
223 uint32_t opcode, uint8_t opcode_bitlen,
224 uint32_t addr, uint8_t addr_bitlen,
225 uint32_t data, uint8_t data_bitlen,
226 uint8_t *reply, uint8_t reply_bitlen);
227 RESULT usbtomicrowire_poll(uint8_t interface_index, uint16_t interval_us,
228 uint16_t retry_cnt);
229
230 /* USB_TO_PWM */
231 RESULT usbtopwm_init(uint8_t interface_index);
232 RESULT usbtopwm_fini(uint8_t interface_index);
233 RESULT usbtopwm_config(uint8_t interface_index, uint16_t kHz, uint8_t mode);
234 RESULT usbtopwm_out(uint8_t interface_index, uint16_t count, uint16_t *rate);
235 RESULT usbtopwm_in(uint8_t interface_index, uint16_t count, uint16_t *rate);
236
237 #endif /* OPENOCD_JTAG_DRIVERS_VERSALOON_USBTOXXX_USBTOXXX_H */

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)