aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple/include
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@leaflabs.com>2012-07-31 12:33:31 -0400
committerMarti Bolivar <mbolivar@leaflabs.com>2012-07-31 15:04:49 -0400
commitf4c716a527f374c96923e2f81f6a605335e56aba (patch)
tree75f4bc4f5d9062344568028d2d7b92085b26a05a /libmaple/include
parentd7d60ea0ed339c0c932296d9e7a42144274fd34f (diff)
downloadlibrambutan-f4c716a527f374c96923e2f81f6a605335e56aba.tar.gz
librambutan-f4c716a527f374c96923e2f81f6a605335e56aba.zip
usb_cdcacm: Expose some internal configuration and values.
Mark the API as unstable so people don't rely on these too hard. (This header is not part of the official libmaple docs). We'll need some of this configuration elsewhere later, and it doesn't make much sense to expose it piecemeal. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
Diffstat (limited to 'libmaple/include')
-rw-r--r--libmaple/include/libmaple/usb_cdcacm.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/libmaple/include/libmaple/usb_cdcacm.h b/libmaple/include/libmaple/usb_cdcacm.h
index 9d70758..85b4f5e 100644
--- a/libmaple/include/libmaple/usb_cdcacm.h
+++ b/libmaple/include/libmaple/usb_cdcacm.h
@@ -27,6 +27,8 @@
/**
* @file libmaple/include/libmaple/usb_cdcacm.h
* @brief USB CDC ACM (virtual serial terminal) support
+ *
+ * IMPORTANT: this API is unstable, and may change without notice.
*/
#ifndef _LIBMAPLE_USB_CDCACM_H_
@@ -39,6 +41,46 @@
extern "C" {
#endif
+/*
+ * Exposed configuration
+ */
+
+#define USB_CDCACM_CTRL_EPNUM 0x00
+#define USB_CDCACM_CTRL_RX_ADDR 0x40
+#define USB_CDCACM_CTRL_TX_ADDR 0x80
+#define USB_CDCACM_CTRL_EPSIZE 0x40
+
+#define USB_CDCACM_TX_ENDP 1
+#define USB_CDCACM_TX_EPNUM 0x01
+#define USB_CDCACM_TX_ADDR 0xC0
+#define USB_CDCACM_TX_EPSIZE 0x40
+
+#define USB_CDCACM_NOTIFICATION_ENDP 2
+#define USB_CDCACM_NOTIFICATION_EPNUM 0x02
+#define USB_CDCACM_NOTIFICATION_ADDR 0x100
+#define USB_CDCACM_NOTIFICATION_EPSIZE 0x40
+
+#define USB_CDCACM_RX_ENDP 3
+#define USB_CDCACM_RX_EPNUM 0x03
+#define USB_CDCACM_RX_ADDR 0x110
+#define USB_CDCACM_RX_EPSIZE 0x40
+#define USB_CDCACM_RX_BUFLEN (USB_CDCACM_RX_EPSIZE*3)
+
+/*
+ * CDC ACM Requests
+ */
+
+#define USB_CDCACM_SET_LINE_CODING 0x20
+#define USB_CDCACM_GET_LINE_CODING 0x21
+#define USB_CDCACM_SET_COMM_FEATURE 0x02
+#define USB_CDCACM_SET_CONTROL_LINE_STATE 0x22
+#define USB_CDCACM_CONTROL_LINE_DTR (0x01)
+#define USB_CDCACM_CONTROL_LINE_RTS (0x02)
+
+/*
+ * CDC ACM interface
+ */
+
void usb_cdcacm_enable(gpio_dev*, uint8);
void usb_cdcacm_disable(gpio_dev*, uint8);