Add firmware for the ATUSB IEEE 802.15.4 USB Adapter
[linux-libre-firmware.git] / atusb / include / atusb / ep0.h
1 /*
2  * include/atusb/ep0.h - EP0 extension protocol
3  *
4  * Written 2008-2011, 2013 by Werner Almesberger
5  * Copyright 2008-2011, 2013 Werner Almesberger
6  *
7  * This program 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 of the License, or
10  * (at your option) any later version.
11  */
12
13
14 #ifndef EP0_H
15 #define EP0_H
16
17 #include <atusb/atusb.h>
18
19
20 /*
21  * EP0 protocol:
22  *
23  * 0.0  initial release
24  * 0.1  addition of ATUSB_TEST
25  * 0.2  First public release
26  * 0.3  ATUSB_EUI64_READ/WRITE for permanent EUI64 handling
27  *      Support to run the firmware on Atmel Raven USB dongles
28  *      Remove FCS frame check from firmware and leave it to the driver
29  *      Use extended operation mode for TX for automatic ACK handling
30  */
31
32 #define EP0ATUSB_MAJOR  0       /* EP0 protocol, major revision */
33 #define EP0ATUSB_MINOR  3       /* EP0 protocol, minor revision */
34
35
36 /*
37  * bmRequestType:
38  *
39  * D7 D6..5 D4...0
40  * |  |     |
41  * direction (0 = host->dev)
42  *    type (2 = vendor)
43  *          recipient (0 = device)
44  */
45
46 #ifndef USB_TYPE_VENDOR
47 #define USB_TYPE_VENDOR         0x40
48 #endif
49
50 #ifndef USB_DIR_IN
51 #define USB_DIR_IN              0x80
52 #endif
53
54 #ifndef USB_DIR_OUT
55 #define USB_DIR_OUT             0x00
56 #endif
57
58 #define ATUSB_FROM_DEV(req)     (ATUSB_REQ_FROM_DEV | (req) << 8)
59 #define ATUSB_TO_DEV(req)       (ATUSB_REQ_TO_DEV | (req) << 8)
60
61
62 void ep0_init(void);
63
64 #endif /* !EP0_H */