doxygen: remove warnings
[openocd.git] / src / jtag / drivers / OpenULINK / include / reg_ezusb.h
1 /***************************************************************************
2 * Copyright (C) 2011 by Martin Schmoelzer *
3 * <martin.schmoelzer@student.tuwien.ac.at> *
4 * *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
9 * *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19 ***************************************************************************/
20
21 #ifndef REG_EZUSB_H
22 #define REG_EZUSB_H
23
24 /**
25 * @file
26 * All information in this file was taken from the EZ-USB Technical
27 * Reference Manual, Cypress Semiconductor, 3901 North First Street
28 * San Jose, CA 95134 (www.cypress.com).
29 *
30 * The EZ-USB Technical Reference Manual is called "EZ-USB TRM" hereafter.
31 *
32 * The following bit name definitions differ from those in the EZ-USB TRM:
33 * - All lowercase characters in the EZ-USB TRM bit names have been converted
34 * to capitals (e. g. "WakeSRC" converted to "WAKESRC").
35 * - CPUCS: 8051RES is named "RES8051".
36 * - ISOCTL: Two MBZ ("Must Be Zero") bits are named "MBZ0" and "MBZ1".
37 * - I2CS: STOP and START bits are preceded by "I2C_"
38 * - INxCS, OUTxCS: the busy and stall bits are named "EPBSY" and "EPSTALL".
39 * - TOGCTL: EZ-USB TRM bit names are preceded by "TOG_".
40 */
41
42 /* Compiler-specific definitions of SBIT, SFR, SFRX, ... macros */
43 #include <mcs51/compiler.h>
44
45 /* Bit vectors */
46 #define bmBit0 0x01
47 #define bmBit1 0x02
48 #define bmBit2 0x04
49 #define bmBit3 0x08
50 #define bmBit4 0x10
51 #define bmBit5 0x20
52 #define bmBit6 0x40
53 #define bmBit7 0x80
54
55 /**************************************************************************
56 ************************ Special Function Registers **********************
57 ***************************************************************************/
58
59 /* See EZ-USB TRM, pp. A-9 - A-10 */
60
61 SFR(SP, 0x81);
62 SFR(DPL0, 0x82);
63 SFR(DPH0, 0x83);
64 SFR(DPL1, 0x84);
65 SFR(DPL2, 0x85);
66
67 SFR(DPS, 0x86);
68 #define SEL bmBit0
69 /* Bit 1 read-only, always reads '0' */
70 /* Bit 2 read-only, always reads '0' */
71 /* Bit 3 read-only, always reads '0' */
72 /* Bit 4 read-only, always reads '0' */
73 /* Bit 5 read-only, always reads '0' */
74 /* Bit 6 read-only, always reads '0' */
75 /* Bit 7 read-only, always reads '0' */
76
77 SFR(PCON, 0x87);
78 #define IDLE bmBit0
79 #define STOP bmBit1
80 #define GF0 bmBit2
81 #define GF1 bmBit3
82 /* Bit 4 read-only, always reads '1' */
83 /* Bit 5 read-only, always reads '1' */
84 /* Bit 6 unused */
85 #define SMOD0 bmBit7
86
87 SFR(TCON, 0x88);
88 SBIT(IT0, 0x88, 0);
89 SBIT(IE0, 0x88, 1);
90 SBIT(IT1, 0x88, 2);
91 SBIT(IE1, 0x88, 3);
92 SBIT(TR0, 0x88, 4);
93 SBIT(TF0, 0x88, 5);
94 SBIT(TR1, 0x88, 6);
95 SBIT(TF1, 0x88, 7);
96
97 SFR(TMOD, 0x89);
98 /* Some bits in this register share the same name in the EZ-USB TRM. Therefore,
99 * we add a '0'/'1' to distinguish them */
100 #define M00 bmBit0
101 #define M01 bmBit1
102 #define CT0 bmBit2
103 #define GATE0 bmBit3
104 #define M10 bmBit4
105 #define M11 bmBit5
106 #define CT1 bmBit6
107 #define GATE1 bmBit7
108
109 SFR(TL0, 0x8A);
110 SFR(TL1, 0x8B);
111 SFR(TH0, 0x8C);
112 SFR(TH1, 0x8D);
113
114 SFR(CKCON, 0x8E);
115 #define MD0 bmBit0
116 #define MD1 bmBit1
117 #define MD2 bmBit2
118 #define T0M bmBit3
119 #define T1M bmBit4
120 #define T2M bmBit5
121 /* Bit 6 unused */
122 /* Bit 7 unused */
123
124 SFR(SPC_FNC, 0x8D);
125 #define bmWRS bmBit0
126 /* Bit 1 read-only, always reads '0' */
127 /* Bit 2 read-only, always reads '0' */
128 /* Bit 3 read-only, always reads '0' */
129 /* Bit 4 read-only, always reads '0' */
130 /* Bit 5 read-only, always reads '0' */
131 /* Bit 6 read-only, always reads '0' */
132 /* Bit 7 read-only, always reads '0' */
133
134 SFR(EXIF, 0x91);
135 /* Bit 0 read-only, always reads '0' */
136 /* Bit 1 read-only, always reads '0' */
137 /* Bit 2 read-only, always reads '0' */
138 /* Bit 3 read-only, always reads '1' */
139 #define USBINT bmBit4
140 #define I2CINT bmBit5
141 #define IE4 bmBit6
142 #define IE5 bmBit7
143
144 /* Definition of the _XPAGE register, according to SDCC Compiler User Guide,
145 * Version 3.0.1, Chapter 4, p. 61. Also see EZ-USB TRM, p. 2-4. */
146 SFR(MPAGE, 0x92);
147 SFR(_XPAGE, 0x92);
148
149 SFR(SCON0, 0x98);
150 SBIT(RI_0, 0x98, 0);
151 SBIT(TI_0, 0x98, 1);
152 SBIT(RB8_0, 0x98, 2);
153 SBIT(TB8_0, 0x98, 3);
154 SBIT(REN_0, 0x98, 4);
155 SBIT(SM2_0, 0x98, 5);
156 SBIT(SM1_0, 0x98, 6);
157 SBIT(SM0_0, 0x98, 7);
158
159 SFR(SBUF0, 0x99);
160
161 SFR(IE, 0xA8);
162 SBIT(EX0, 0xA8, 0);
163 SBIT(ET0, 0xA8, 1);
164 SBIT(EX1, 0xA8, 2);
165 SBIT(ET1, 0xA8, 3);
166 SBIT(ES0, 0xA8, 4);
167 SBIT(ET2, 0xA8, 5);
168 SBIT(ES1, 0xA8, 6);
169 SBIT(EA, 0xA8, 7);
170
171 SFR(IP, 0xB8);
172 SBIT(PX0, 0xB8, 0);
173 SBIT(PT0, 0xB8, 1);
174 SBIT(PX1, 0xB8, 2);
175 SBIT(PT1, 0xB8, 3);
176 SBIT(PS0, 0xB8, 4);
177 SBIT(PT2, 0xB8, 5);
178 SBIT(PS1, 0xB8, 6);
179 /* Bit 7 read-only, always reads '1' */
180
181 SFR(SCON1, 0xC0);
182 SBIT(RI_1, 0xC0, 0);
183 SBIT(TI_1, 0xC0, 1);
184 SBIT(RB8_1, 0xC0, 2);
185 SBIT(TB8_1, 0xC0, 3);
186 SBIT(REN_1, 0xC0, 4);
187 SBIT(SM2_1, 0xC0, 5);
188 SBIT(SM1_1, 0xC0, 6);
189 SBIT(SM0_1, 0xC0, 7);
190
191 SFR(SBUF1, 0xC1);
192
193 SFR(T2CON, 0xC8);
194 SBIT(CPRL2, 0xC8, 0);
195 SBIT(CT2, 0xC8, 1);
196 SBIT(TR2, 0xC8, 2);
197 SBIT(EXEN2, 0xC8, 3);
198 SBIT(TCLK, 0xC8, 4);
199 SBIT(RCLK, 0xC8, 5);
200 SBIT(EXF2, 0xC8, 6);
201 SBIT(TF2, 0xC8, 7);
202
203 SFR(RCAP2L, 0xCA);
204 SFR(RCAP2H, 0xCB);
205 SFR(TL2, 0xCC);
206 SFR(TH2, 0xCD);
207
208 SFR(PSW, 0xD0);
209 SBIT(P, 0xD0, 0);
210 SBIT(F1, 0xD0, 1);
211 SBIT(OV, 0xD0, 2);
212 SBIT(RS0, 0xD0, 3);
213 SBIT(RS1, 0xD0, 4);
214 SBIT(F0, 0xD0, 5);
215 SBIT(AC, 0xD0, 6);
216 SBIT(CY, 0xD0, 7);
217
218 SFR(EICON, 0xD8);
219 /* Bit 0 read-only, always reads '0' */
220 /* Bit 1 read-only, always reads '0' */
221 /* Bit 2 read-only, always reads '0' */
222 SBIT(INT6, 0xD8, 3);
223 SBIT(RESI, 0xD8, 4);
224 SBIT(ERESI, 0xD8, 5);
225 /* Bit 6 read-only, always reads '1' */
226 SBIT(SMOD1, 0xD8, 7);
227
228 SFR(ACC, 0xE0);
229
230 SFR(EIE, 0xE8);
231 SBIT(EUSB, 0xE8, 0);
232 SBIT(EI2C, 0xE8, 1);
233 SBIT(EX4, 0xE8, 2);
234 SBIT(EX5, 0xE8, 3);
235 SBIT(EWDI, 0xE8, 4);
236 /* Bit 5 read-only, always reads '1' */
237 /* Bit 6 read-only, always reads '1' */
238 /* Bit 7 read-only, always reads '1' */
239
240 SFR(B, 0xF0);
241
242 SFR(EIP, 0xF8);
243 SBIT(PUSB, 0xF8, 0);
244 SBIT(PI2C, 0xF8, 1);
245 SBIT(PX4, 0xF8, 2);
246 SBIT(PX5, 0xF8, 3);
247 SBIT(PX6, 0xF8, 4);
248 /* Bit 5 read-only, always reads '1' */
249 /* Bit 6 read-only, always reads '1' */
250 /* Bit 7 read-only, always reads '1' */
251
252 /**************************************************************************
253 ***************************** XDATA Registers ****************************
254 ***************************************************************************/
255
256 /************************ Endpoint 0-7 Data Buffers ************************/
257 SFRX(OUT7BUF[64], 0x7B40);
258 SFRX(IN7BUF[64], 0x7B80);
259 SFRX(OUT6BUF[64], 0x7BC0);
260 SFRX(IN6BUF[64], 0x7C00);
261 SFRX(OUT5BUF[64], 0x7C40);
262 SFRX(IN5BUF[64], 0x7C80);
263 SFRX(OUT4BUF[64], 0x7CC0);
264 SFRX(IN4BUF[64], 0x7D00);
265 SFRX(OUT3BUF[64], 0x7D40);
266 SFRX(IN3BUF[64], 0x7D80);
267 SFRX(OUT2BUF[64], 0x7DC0);
268 SFRX(IN2BUF[64], 0x7E00);
269 SFRX(OUT1BUF[64], 0x7E40);
270 SFRX(IN1BUF[64], 0x7E80);
271 SFRX(OUT0BUF[64], 0x7EC0);
272 SFRX(IN0BUF[64], 0x7F00);
273 /* 0x7F40 - 0x7F5F reserved */
274
275 /**************************** Isochronous Data *****************************/
276 SFRX(OUT8DATA, 0x7F60);
277 SFRX(OUT9DATA, 0x7F61);
278 SFRX(OUT10DATA, 0x7F62);
279 SFRX(OUT11DATA, 0x7F63);
280 SFRX(OUT12DATA, 0x7F64);
281 SFRX(OUT13DATA, 0x7F65);
282 SFRX(OUT14DATA, 0x7F66);
283 SFRX(OUT15DATA, 0x7F67);
284
285 SFRX(IN8DATA, 0x7F68);
286 SFRX(IN9DATA, 0x7F69);
287 SFRX(IN10DATA, 0x7F6A);
288 SFRX(IN11DATA, 0x7F6B);
289 SFRX(IN12DATA, 0x7F6C);
290 SFRX(IN13DATA, 0x7F6D);
291 SFRX(IN14DATA, 0x7F6E);
292 SFRX(IN15DATA, 0x7F6F);
293
294 /************************* Isochronous Byte Counts *************************/
295 SFRX(OUT8BCH, 0x7F70);
296 SFRX(OUT8BCL, 0x7F71);
297 SFRX(OUT9BCH, 0x7F72);
298 SFRX(OUT9BCL, 0x7F73);
299 SFRX(OUT10BCH, 0x7F74);
300 SFRX(OUT10BCL, 0x7F75);
301 SFRX(OUT11BCH, 0x7F76);
302 SFRX(OUT11BCL, 0x7F77);
303 SFRX(OUT12BCH, 0x7F78);
304 SFRX(OUT12BCL, 0x7F79);
305 SFRX(OUT13BCH, 0x7F7A);
306 SFRX(OUT13BCL, 0x7F7B);
307 SFRX(OUT14BCH, 0x7F7C);
308 SFRX(OUT14BCL, 0x7F7D);
309 SFRX(OUT15BCH, 0x7F7E);
310 SFRX(OUT16BCL, 0x7F7F);
311
312 /****************************** CPU Registers ******************************/
313 SFRX(CPUCS, 0x7F92);
314 #define RES8051 bmBit0
315 #define CLK24OE bmBit1
316 /* Bit 2 read-only, always reads '0' */
317 /* Bit 3 read-only, always reads '0' */
318 /* Bits 4...7: Chip Revision */
319
320 SFRX(PORTACFG, 0x7F93);
321 #define T0OUT bmBit0
322 #define T1OUT bmBit1
323 #define OE bmBit2
324 #define CS bmBit3
325 #define FWR bmBit4
326 #define FRD bmBit5
327 #define RXD0OUT bmBit6
328 #define RXD1OUT bmBit7
329
330 SFRX(PORTBCFG, 0x7F94);
331 #define T2 bmBit0
332 #define T2EX bmBit1
333 #define RXD1 bmBit2
334 #define TXD1 bmBit3
335 #define INT4 bmBit4
336 #define INT5 bmBit5
337 #define INT6 bmBit6
338 #define T2OUT bmBit7
339
340 SFRX(PORTCCFG, 0x7F95);
341 #define RXD0 bmBit0
342 #define TXD0 bmBit1
343 #define INT0 bmBit2
344 #define INT1 bmBit3
345 #define T0 bmBit4
346 #define T1 bmBit5
347 #define WR bmBit6
348 #define RD bmBit7
349
350 /*********************** Input-Output Port Registers ***********************/
351 SFRX(OUTA, 0x7F96);
352 #define OUTA0 bmBit0
353 #define OUTA1 bmBit1
354 #define OUTA2 bmBit2
355 #define OUTA3 bmBit3
356 #define OUTA4 bmBit4
357 #define OUTA5 bmBit5
358 #define OUTA6 bmBit6
359 #define OUTA7 bmBit7
360
361 SFRX(OUTB, 0x7F97);
362 #define OUTB0 bmBit0
363 #define OUTB1 bmBit1
364 #define OUTB2 bmBit2
365 #define OUTB3 bmBit3
366 #define OUTB4 bmBit4
367 #define OUTB5 bmBit5
368 #define OUTB6 bmBit6
369 #define OUTB7 bmBit7
370
371 SFRX(OUTC, 0x7F98);
372 #define OUTC0 bmBit0
373 #define OUTC1 bmBit1
374 #define OUTC2 bmBit2
375 #define OUTC3 bmBit3
376 #define OUTC4 bmBit4
377 #define OUTC5 bmBit5
378 #define OUTC6 bmBit6
379 #define OUTC7 bmBit7
380
381 SFRX(PINSA, 0x7F99);
382 #define PINA0 bmBit0
383 #define PINA1 bmBit1
384 #define PINA2 bmBit2
385 #define PINA3 bmBit3
386 #define PINA4 bmBit4
387 #define PINA5 bmBit5
388 #define PINA6 bmBit6
389 #define PINA7 bmBit7
390
391 SFRX(PINSB, 0x7F9A);
392 #define PINB0 bmBit0
393 #define PINB1 bmBit1
394 #define PINB2 bmBit2
395 #define PINB3 bmBit3
396 #define PINB4 bmBit4
397 #define PINB5 bmBit5
398 #define PINB6 bmBit6
399 #define PINB7 bmBit7
400
401 SFRX(PINSC, 0x7F9B);
402 #define PINC0 bmBit0
403 #define PINC1 bmBit1
404 #define PINC2 bmBit2
405 #define PINC3 bmBit3
406 #define PINC4 bmBit4
407 #define PINC5 bmBit5
408 #define PINC6 bmBit6
409 #define PINC7 bmBit7
410
411 SFRX(OEA, 0x7F9C);
412 #define OEA0 bmBit0
413 #define OEA1 bmBit1
414 #define OEA2 bmBit2
415 #define OEA3 bmBit3
416 #define OEA4 bmBit4
417 #define OEA5 bmBit5
418 #define OEA6 bmBit6
419 #define OEA7 bmBit7
420
421 SFRX(OEB, 0x7F9D);
422 #define OEB0 bmBit0
423 #define OEB1 bmBit1
424 #define OEB2 bmBit2
425 #define OEB3 bmBit3
426 #define OEB4 bmBit4
427 #define OEB5 bmBit5
428 #define OEB6 bmBit6
429 #define OEB7 bmBit7
430
431 SFRX(OEC, 0x7F9E);
432 #define OEC0 bmBit0
433 #define OEC1 bmBit1
434 #define OEC2 bmBit2
435 #define OEC3 bmBit3
436 #define OEC4 bmBit4
437 #define OEC5 bmBit5
438 #define OEC6 bmBit6
439 #define OEC7 bmBit7
440
441 /* 0x7F9F reserved */
442
443 /****************** Isochronous Control/Status Registers *******************/
444 SFRX(ISOERR, 0x7FA0);
445 #define ISO8ERR bmBit0
446 #define ISO9ERR bmBit1
447 #define ISO10ERR bmBit2
448 #define ISO11ERR bmBit3
449 #define ISO12ERR bmBit4
450 #define ISO13ERR bmBit5
451 #define ISO14ERR bmBit6
452 #define ISO15ERR bmBit7
453
454 SFRX(ISOCTL, 0x7FA1);
455 #define ISODISAB bmBit0
456 #define MBZ0 bmBit1
457 #define MBZ1 bmBit2
458 #define PPSTAT bmBit3
459 /* Bit 4 unused */
460 /* Bit 5 unused */
461 /* Bit 6 unused */
462 /* Bit 7 unused */
463
464 SFRX(ZBCOUT, 0x7FA2);
465 #define EP8 bmBit0
466 #define EP9 bmBit1
467 #define EP10 bmBit2
468 #define EP11 bmBit3
469 #define EP12 bmBit4
470 #define EP13 bmBit5
471 #define EP14 bmBit6
472 #define EP15 bmBit7
473
474 /* 0x7FA3 reserved */
475 /* 0x7FA4 reserved */
476
477 /****************************** I2C Registers ******************************/
478 SFRX(I2CS, 0x7FA5);
479 #define DONE bmBit0
480 #define ACK bmBit1
481 #define BERR bmBit2
482 #define ID0 bmBit3
483 #define ID1 bmBit4
484 #define LASTRD bmBit5
485 #define I2C_STOP bmBit6
486 #define I2C_START bmBit7
487
488 SFRX(I2DAT, 0x7FA6);
489 /* 0x7FA7 reserved */
490
491 /******************************* Interrupts ********************************/
492 SFRX(IVEC, 0x7FA8);
493 /* Bit 0 read-only, always reads '0' */
494 /* Bit 1 read-only, always reads '0' */
495 #define IV0 bmBit2
496 #define IV1 bmBit3
497 #define IV2 bmBit4
498 #define IV3 bmBit5
499 #define IV4 bmBit6
500 /* Bit 7 read-only, always reads '0' */
501
502 SFRX(IN07IRQ, 0x7FA9);
503 #define IN0IR bmBit0
504 #define IN1IR bmBit1
505 #define IN2IR bmBit2
506 #define IN3IR bmBit3
507 #define IN4IR bmBit4
508 #define IN5IR bmBit5
509 #define IN6IR bmBit6
510 #define IN7IR bmBit7
511
512 SFRX(OUT07IRQ, 0x7FAA);
513 #define OUT0IR bmBit0
514 #define OUT1IR bmBit1
515 #define OUT2IR bmBit2
516 #define OUT3IR bmBit3
517 #define OUT4IR bmBit4
518 #define OUT5IR bmBit5
519 #define OUT6IR bmBit6
520 #define OUT7IR bmBit7
521
522 SFRX(USBIRQ, 0x7FAB);
523 #define SUDAVIR bmBit0
524 #define SOFIR bmBit1
525 #define SUTOKIR bmBit2
526 #define SUSPIR bmBit3
527 #define URESIR bmBit4
528 /* Bit 5 unused */
529 /* Bit 6 unused */
530 /* Bit 7 unused */
531
532 SFRX(IN07IEN, 0x7FAC);
533 #define IN0IEN bmBit0
534 #define IN1IEN bmBit1
535 #define IN2IEN bmBit2
536 #define IN3IEN bmBit3
537 #define IN4IEN bmBit4
538 #define IN5IEN bmBit5
539 #define IN6IEN bmBit6
540 #define IN7IEN bmBit7
541
542 SFRX(OUT07IEN, 0x7FAD);
543 #define OUT0IEN bmBit0
544 #define OUT1IEN bmBit1
545 #define OUT2IEN bmBit2
546 #define OUT3IEN bmBit3
547 #define OUT4IEN bmBit4
548 #define OUT5IEN bmBit5
549 #define OUT6IEN bmBit6
550 #define OUT7IEN bmBit7
551
552 SFRX(USBIEN, 0x7FAE);
553 #define SUDAVIE bmBit0
554 #define SOFIE bmBit1
555 #define SUTOKIE bmBit2
556 #define SUSPIE bmBit3
557 #define URESIE bmBit4
558 /* Bit 5 unused */
559 /* Bit 6 unused */
560 /* Bit 7 unused */
561
562 SFRX(USBBAV, 0x7FAF);
563 #define AVEN bmBit0
564 #define BPEN bmBit1
565 #define BPPULSE bmBit2
566 #define BREAK bmBit3
567 /* Bit 4 unused */
568 /* Bit 5 unused */
569 /* Bit 6 unused */
570 /* Bit 7 unused */
571
572 /* 0x7FB0 reserved */
573 /* 0x7FB1 reserved */
574 SFRX(BPADDRH, 0x7FB2);
575 SFRX(BPADDRL, 0x7FB3);
576
577 /****************************** Endpoints 0-7 ******************************/
578 SFRX(EP0CS, 0x7FB4);
579 #define EP0STALL bmBit0
580 #define HSNAK bmBit1
581 #define IN0BSY bmBit2
582 #define OUT0BSY bmBit3
583 /* Bit 4 unused */
584 /* Bit 5 unused */
585 /* Bit 6 unused */
586 /* Bit 7 unused */
587
588 SFRX(IN0BC, 0x7FB5);
589 SFRX(IN1CS, 0x7FB6);
590 SFRX(IN1BC, 0x7FB7);
591 SFRX(IN2CS, 0x7FB8);
592 SFRX(IN2BC, 0x7FB9);
593 SFRX(IN3CS, 0x7FBA);
594 SFRX(IN3BC, 0x7FBB);
595 SFRX(IN4CS, 0x7FBC);
596 SFRX(IN4BC, 0x7FBD);
597 SFRX(IN5CS, 0x7FBE);
598 SFRX(IN5BC, 0x7FBF);
599 SFRX(IN6CS, 0x7FC0);
600 SFRX(IN6BC, 0x7FC1);
601 SFRX(IN7CS, 0x7FC2);
602 SFRX(IN7BC, 0x7FC3);
603 /* 0x7FC4 reserved */
604 SFRX(OUT0BC, 0x7FC5);
605 SFRX(OUT1CS, 0x7FC6);
606 SFRX(OUT1BC, 0x7FC7);
607 SFRX(OUT2CS, 0x7FC8);
608 SFRX(OUT2BC, 0x7FC9);
609 SFRX(OUT3CS, 0x7FCA);
610 SFRX(OUT3BC, 0x7FCB);
611 SFRX(OUT4CS, 0x7FCC);
612 SFRX(OUT4BC, 0x7FCD);
613 SFRX(OUT5CS, 0x7FCE);
614 SFRX(OUT5BC, 0x7FCF);
615 SFRX(OUT6CS, 0x7FD0);
616 SFRX(OUT6BC, 0x7FD1);
617 SFRX(OUT7CS, 0x7FD2);
618 SFRX(OUT7BC, 0x7FD3);
619
620 /* The INxSTALL, OUTxSTALL, INxBSY and OUTxBSY bits are the same for all
621 * INxCS/OUTxCS registers. For better readability, we define them only once */
622 #define EPSTALL bmBit0
623 #define EPBSY bmBit1
624
625 /************************** Global USB Registers ***************************/
626 SFRX(SUDPTRH, 0x7FD4);
627 SFRX(SUDPTRL, 0x7FD5);
628
629 SFRX(USBCS, 0x7FD6);
630 #define SIGRSUME bmBit0
631 #define RENUM bmBit1
632 #define DISCOE bmBit2
633 #define DISCON bmBit3
634 /* Bit 4 unused */
635 /* Bit 5 unused */
636 /* Bit 6 unused */
637 #define WAKESRC bmBit7
638
639 SFRX(TOGCTL, 0x7FD7);
640 #define TOG_EP0 bmBit0
641 #define TOG_EP1 bmBit1
642 #define TOG_EP2 bmBit2
643 /* Bit 3 is read-only, always reads '0' */
644 #define TOG_IO bmBit4
645 #define TOG_R bmBit5
646 #define TOG_S bmBit6
647 #define TOG_Q bmBit7
648
649 SFRX(USBFRAMEL, 0x7FD8);
650 SFRX(USBFRAMEH, 0x7FD9);
651 /* 0x7FDA reserved */
652 SFRX(FNADDR, 0x7FDB);
653 /* 0x7FDC reserved */
654
655 SFRX(USBPAIR, 0x7FDD);
656 #define PR2IN bmBit0
657 #define PR4IN bmBit1
658 #define PR6IN bmBit2
659 #define PR2OUT bmBit3
660 #define PR4OUT bmBit4
661 #define PR6OUT bmBit5
662 /* Bit 6 unused */
663 #define ISOSEND0 bmBit7
664
665 SFRX(IN07VAL, 0x7FDE);
666 /* Bit 0 is read-only, always reads '1' */
667 #define IN1VAL bmBit1
668 #define IN2VAL bmBit2
669 #define IN3VAL bmBit3
670 #define IN4VAL bmBit4
671 #define IN5VAL bmBit5
672 #define IN6VAL bmBit6
673 #define IN7VAL bmBit7
674
675 SFRX(OUT07VAL, 0x7FDF);
676 /* Bit 0 is read-only, always reads '1' */
677 #define OUT1VAL bmBit1
678 #define OUT2VAL bmBit2
679 #define OUT3VAL bmBit3
680 #define OUT4VAL bmBit4
681 #define OUT5VAL bmBit5
682 #define OUT6VAL bmBit6
683 #define OUT7VAL bmBit7
684
685 SFRX(INISOVAL, 0x7FE0);
686 #define IN8VAL bmBit0
687 #define IN9VAL bmBit1
688 #define IN10VAL bmBit2
689 #define IN11VAL bmBit3
690 #define IN12VAL bmBit4
691 #define IN13VAL bmBit5
692 #define IN14VAL bmBit6
693 #define IN15VAL bmBit7
694
695 SFRX(OUTISOVAL, 0x7FE1);
696 #define OUT8VAL bmBit0
697 #define OUT9VAL bmBit1
698 #define OUT10VAL bmBit2
699 #define OUT11VAL bmBit3
700 #define OUT12VAL bmBit4
701 #define OUT13VAL bmBit5
702 #define OUT14VAL bmBit6
703 #define OUT15VAL bmBit7
704
705 SFRX(FASTXFR, 0x7FE2);
706 #define WMOD0 bmBit0
707 #define WMOD1 bmBit1
708 #define WPOL bmBit2
709 #define RMOD0 bmBit3
710 #define RMOD1 bmBit4
711 #define RPOL bmBit5
712 #define FBLK bmBit6
713 #define FISO bmBit7
714
715 SFRX(AUTOPTRH, 0x7FE3);
716 SFRX(AUTOPTRL, 0x7FE4);
717 SFRX(AUTODATA, 0x7FE5);
718 /* 0x7FE6 reserved */
719 /* 0x7FE7 reserved */
720
721 /******************************* Setup Data ********************************/
722 SFRX(SETUPDAT[8], 0x7FE8);
723
724 /************************* Isochronous FIFO sizes **************************/
725 SFRX(OUT8ADDR, 0x7FF0);
726 SFRX(OUT9ADDR, 0x7FF1);
727 SFRX(OUT10ADDR, 0x7FF2);
728 SFRX(OUT11ADDR, 0x7FF3);
729 SFRX(OUT12ADDR, 0x7FF4);
730 SFRX(OUT13ADDR, 0x7FF5);
731 SFRX(OUT14ADDR, 0x7FF6);
732 SFRX(OUT15ADDR, 0x7FF7);
733
734 SFRX(IN8ADDR, 0x7FF8);
735 SFRX(IN9ADDR, 0x7FF9);
736 SFRX(IN10ADDR, 0x7FFA);
737 SFRX(IN11ADDR, 0x7FFB);
738 SFRX(IN12ADDR, 0x7FFC);
739 SFRX(IN13ADDR, 0x7FFD);
740 SFRX(IN14ADDR, 0x7FFE);
741 SFRX(IN15ADDR, 0x7FFF);
742
743 #endif

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)