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 */
28
29#define EP0ATUSB_MAJOR 0 /* EP0 protocol, major revision */
30#define EP0ATUSB_MINOR 3 /* EP0 protocol, minor revision */
31
32#define HW_TYPE_100813 0 /* 2010-08-13 */
33#define HW_TYPE_101216 1 /* 2010-12-16 */
34#define HW_TYPE_110131 2 /* 2011-01-31, ATmega32U2-based */
35
36
37/*
38 * bmRequestType:
39 *
40 * D7 D6..5 D4...0
41 * | | |
42 * direction (0 = host->dev)
43 * type (2 = vendor)
44 * recipient (0 = device)
45 */
46
47#ifndef USB_TYPE_VENDOR
48#define USB_TYPE_VENDOR 0x40
49#endif
50
51#ifndef USB_DIR_IN
52#define USB_DIR_IN 0x80
53#endif
54
55#ifndef USB_DIR_OUT
56#define USB_DIR_OUT 0x00
57#endif
58
59#define ATUSB_FROM_DEV(req) (ATUSB_REQ_FROM_DEV | (req) << 8)
60#define ATUSB_TO_DEV(req) (ATUSB_REQ_TO_DEV | (req) << 8)
61
62
63void ep0_init(void);
64
65#endif /* !EP0_H */
66

Archive Download this file



interactive