diff options
author | Karl Palsson <karlp@tweak.net.au> | 2016-09-27 23:05:26 +0000 |
---|---|---|
committer | Karl Palsson <karlp@tweak.net.au> | 2016-09-30 23:31:54 +0000 |
commit | 003c9d202aeeb428640cecfece1c20f9bcd7ddbd (patch) | |
tree | ab916dcf6f70d16d6b8707ade889dd4260b186b9 /tests/usb-serial-rs485/usb_cdcacm.h | |
parent | 8b484ba88e16ec8a01482d94f27407966cecdaea (diff) | |
download | olsndot-003c9d202aeeb428640cecfece1c20f9bcd7ddbd.tar.gz olsndot-003c9d202aeeb428640cecfece1c20f9bcd7ddbd.tar.bz2 olsndot-003c9d202aeeb428640cecfece1c20f9bcd7ddbd.zip |
usb-serial: functional on f1.
Diffstat (limited to 'tests/usb-serial-rs485/usb_cdcacm.h')
-rw-r--r-- | tests/usb-serial-rs485/usb_cdcacm.h | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/tests/usb-serial-rs485/usb_cdcacm.h b/tests/usb-serial-rs485/usb_cdcacm.h index 3228d0a..d4e47e0 100644 --- a/tests/usb-serial-rs485/usb_cdcacm.h +++ b/tests/usb-serial-rs485/usb_cdcacm.h @@ -32,18 +32,36 @@ extern "C" { #include <libopencm3/usb/usbd.h> #include <libopencm3/usb/cdc.h> - void usb_cdcacm_init(usbd_device **usb_dev); + enum cdcacm_pin { + CDCACM_PIN_NONE, + CDCACM_PIN_LED_TX, + CDCACM_PIN_LED_RX, + CDCACM_PIN_RS485DE, + }; + + usbd_device * usb_cdcacm_init(const usbd_driver *driver, const char *userserial); void usb_cdcacm_setup_pre_arch(void); - void usb_cdcacm_setup_post_arch(void); - void cdcacm_send_data(uint8_t *buf, uint16_t len); + void usb_cdcacm_setup_post_arch(usbd_device *dev); + void usb_cdcacm_poll(usbd_device *usbd_dev); void cdcacm_line_state_changed_cb(uint8_t linemask); - /* Call this if you have data to send to the usb host */ - void glue_data_received_cb(uint8_t *buf, uint16_t len); - /* These will be called by usb_cdcacm code */ - void glue_send_data_cb(uint8_t *buf, uint16_t len); + /** + * Called by the cdcacm core to toggle pins as need be + * @param port which serial port, 0 normally + * @param pin logical pin + * @param set set or clear + */ + void cdcacm_arch_pin(int port, enum cdcacm_pin pin, bool set); + + /** + * enable the tx emmpty irq for the logical port + * @param port + * @param set + */ + void cdcacm_arch_txirq(int port, bool set); + + void cdcacm_arch_set_line_state(int port, uint8_t dtr, uint8_t rts); - void glue_set_line_state_cb(uint8_t dtr, uint8_t rts); int glue_set_line_coding_cb(uint32_t baud, uint8_t databits, enum usb_cdc_line_coding_bParityType cdc_parity, enum usb_cdc_line_coding_bCharFormat cdc_stopbits); |