Root/atusb/fw/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#define HW_TYPE_100813 0 /* 2010-08-13 */
36#define HW_TYPE_101216 1 /* 2010-12-16 */
37#define HW_TYPE_110131 2 /* 2011-01-31, ATmega32U2-based */
38#define HW_TYPE_RZUSB 3 /* Atmel Raven USB dongle with at86rf230 */
39
40
41/*
42 * bmRequestType:
43 *
44 * D7 D6..5 D4...0
45 * | | |
46 * direction (0 = host->dev)
47 * type (2 = vendor)
48 * recipient (0 = device)
49 */
50
51#ifndef USB_TYPE_VENDOR
52#define USB_TYPE_VENDOR 0x40
53#endif
54
55#ifndef USB_DIR_IN
56#define USB_DIR_IN 0x80
57#endif
58
59#ifndef USB_DIR_OUT
60#define USB_DIR_OUT 0x00
61#endif
62
63#define ATUSB_FROM_DEV(req) (ATUSB_REQ_FROM_DEV | (req) << 8)
64#define ATUSB_TO_DEV(req) (ATUSB_REQ_TO_DEV | (req) << 8)
65
66
67void ep0_init(void);
68
69#endif /* !EP0_H */
70

Archive Download this file



interactive