Imported Upstream version 3.0
[debian/gnuradio] / usrp / firmware / lib / fx2utils.c
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2003 Free Software Foundation, Inc.
4  * 
5  * This file is part of GNU Radio
6  * 
7  * GNU Radio is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2, or (at your option)
10  * any later version.
11  * 
12  * GNU Radio is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with GNU Radio; see the file COPYING.  If not, write to
19  * the Free Software Foundation, Inc., 51 Franklin Street,
20  * Boston, MA 02110-1301, USA.
21  */
22
23 #include "fx2utils.h"
24 #include "fx2regs.h"
25 #include "delay.h"
26
27 void
28 fx2_stall_ep0 (void)
29 {
30   EP0CS |= bmEPSTALL;
31 }
32
33 void
34 fx2_reset_data_toggle (unsigned char ep)
35 {
36   TOGCTL = ((ep & 0x80) >> 3 | (ep & 0x0f));
37   TOGCTL |= bmRESETTOGGLE;
38 }
39
40 void
41 fx2_renumerate (void)
42 {
43   USBCS |= bmDISCON | bmRENUM;
44
45   // mdelay (1500);             // FIXME why 1.5 seconds?
46   mdelay (250);                 // FIXME why 1.5 seconds?
47   
48   USBIRQ = 0xff;                // clear any pending USB irqs...
49   EPIRQ =  0xff;                //   they're from before the renumeration
50
51   EXIF &= ~bmEXIF_USBINT;
52
53   USBCS &= ~bmDISCON;           // reconnect USB
54 }