merge 19488 back from the 3.1 branch
[kugel-rb.git] / firmware / export / usb_drv.h
blob3d2e6890509b1c8e6990dd830d0e17f46d151cd4
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
10 * Copyright (C) 2007 by Björn Stenberg
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
21 #ifndef ARCOTG_DRV_H
22 #define ARCOTG_DRV_H
23 #include "usb_ch9.h"
24 #include "kernel.h"
26 void usb_drv_startup(void);
27 void usb_drv_init(void);
28 void usb_drv_exit(void);
29 void usb_drv_int(void);
30 void usb_drv_stall(int endpoint, bool stall,bool in);
31 bool usb_drv_stalled(int endpoint,bool in);
32 int usb_drv_send(int endpoint, void* ptr, int length);
33 int usb_drv_send_nonblocking(int endpoint, void* ptr, int length);
34 int usb_drv_recv(int endpoint, void* ptr, int length);
35 void usb_drv_ack(struct usb_ctrlrequest* req);
36 void usb_drv_set_address(int address);
37 void usb_drv_reset_endpoint(int endpoint, bool send);
38 bool usb_drv_powered(void);
39 int usb_drv_port_speed(void);
40 void usb_drv_cancel_all_transfers(void);
41 void usb_drv_set_test_mode(int mode);
42 bool usb_drv_connected(void);
43 int usb_drv_request_endpoint(int dir);
44 void usb_drv_release_endpoint(int ep);
46 #endif