diff options
Diffstat (limited to 'tmk_core/protocol/chibios/usb_driver.h')
-rw-r--r-- | tmk_core/protocol/chibios/usb_driver.h | 168 |
1 files changed, 83 insertions, 85 deletions
diff --git a/tmk_core/protocol/chibios/usb_driver.h b/tmk_core/protocol/chibios/usb_driver.h index 558479e197..77dff80669 100644 --- a/tmk_core/protocol/chibios/usb_driver.h +++ b/tmk_core/protocol/chibios/usb_driver.h @@ -23,9 +23,9 @@ */ #ifndef USB_DRIVER_H -#define USB_DRIVER_H +# define USB_DRIVER_H -#include "hal_usb_cdc.h" +# include "hal_usb_cdc.h" /*===========================================================================*/ /* Driver constants. */ @@ -35,9 +35,9 @@ /* Derived constants and error checks. */ /*===========================================================================*/ -#if HAL_USE_USB == FALSE -#error "The USB Driver requires HAL_USE_USB" -#endif +# if HAL_USE_USB == FALSE +# error "The USB Driver requires HAL_USE_USB" +# endif /*===========================================================================*/ /* Driver data structures and types. */ @@ -47,9 +47,9 @@ * @brief Driver state machine possible states. */ typedef enum { - QMKUSB_UNINIT = 0, /**< Not initialized. */ - QMKUSB_STOP = 1, /**< Stopped. */ - QMKUSB_READY = 2 /**< Ready. */ + QMKUSB_UNINIT = 0, /**< Not initialized. */ + QMKUSB_STOP = 1, /**< Stopped. */ + QMKUSB_READY = 2 /**< Ready. */ } qmkusbstate_t; /** @@ -63,72 +63,70 @@ typedef struct QMKUSBDriver QMKUSBDriver; * in order to configure and start the driver operations. */ typedef struct { - /** - * @brief USB driver to use. - */ - USBDriver *usbp; - /** - * @brief Bulk IN endpoint used for outgoing data transfer. - */ - usbep_t bulk_in; - /** - * @brief Bulk OUT endpoint used for incoming data transfer. - */ - usbep_t bulk_out; - /** - * @brief Interrupt IN endpoint used for notifications. - * @note If set to zero then the INT endpoint is assumed to be not - * present, USB descriptors must be changed accordingly. - */ - usbep_t int_in; - - /** - * @brief The number of buffers in the queues - */ - size_t in_buffers; - size_t out_buffers; - - /** - * @brief The size of each buffer in the queue, typically the same as the endpoint size - */ - size_t in_size; - size_t out_size; - - /** - * @brief Always send full buffers in_size (the rest is filled with zeroes) - */ - bool fixed_size; - - /* Input buffer - * @note needs to be initialized with a memory buffer of the right size - */ - uint8_t* ib; - /* Output buffer - * @note needs to be initialized with a memory buffer of the right size - */ - uint8_t* ob; + /** + * @brief USB driver to use. + */ + USBDriver *usbp; + /** + * @brief Bulk IN endpoint used for outgoing data transfer. + */ + usbep_t bulk_in; + /** + * @brief Bulk OUT endpoint used for incoming data transfer. + */ + usbep_t bulk_out; + /** + * @brief Interrupt IN endpoint used for notifications. + * @note If set to zero then the INT endpoint is assumed to be not + * present, USB descriptors must be changed accordingly. + */ + usbep_t int_in; + + /** + * @brief The number of buffers in the queues + */ + size_t in_buffers; + size_t out_buffers; + + /** + * @brief The size of each buffer in the queue, typically the same as the endpoint size + */ + size_t in_size; + size_t out_size; + + /** + * @brief Always send full buffers in_size (the rest is filled with zeroes) + */ + bool fixed_size; + + /* Input buffer + * @note needs to be initialized with a memory buffer of the right size + */ + uint8_t *ib; + /* Output buffer + * @note needs to be initialized with a memory buffer of the right size + */ + uint8_t *ob; } QMKUSBConfig; /** * @brief @p SerialDriver specific data. */ -#define _qmk_usb_driver_data \ - _base_asynchronous_channel_data \ - /* Driver state.*/ \ - qmkusbstate_t state; \ - /* Input buffers queue.*/ \ - input_buffers_queue_t ibqueue; \ - /* Output queue.*/ \ - output_buffers_queue_t obqueue; \ - /* End of the mandatory fields.*/ \ - /* Current configuration data.*/ \ - const QMKUSBConfig *config; +# define _qmk_usb_driver_data \ + _base_asynchronous_channel_data /* Driver state.*/ \ + qmkusbstate_t state; \ + /* Input buffers queue.*/ \ + input_buffers_queue_t ibqueue; \ + /* Output queue.*/ \ + output_buffers_queue_t obqueue; \ + /* End of the mandatory fields.*/ \ + /* Current configuration data.*/ \ + const QMKUSBConfig *config; /** * @brief @p SerialUSBDriver specific methods. */ -#define _qmk_usb_driver_methods \ - _base_asynchronous_channel_methods +# define _qmk_usb_driver_methods _base_asynchronous_channel_methods /** * @extends BaseAsynchronousChannelVMT @@ -136,7 +134,7 @@ typedef struct { * @brief @p SerialDriver virtual methods table. */ struct QMKUSBDriverVMT { - _qmk_usb_driver_methods + _qmk_usb_driver_methods }; /** @@ -147,9 +145,9 @@ struct QMKUSBDriverVMT { * I/O queues. */ struct QMKUSBDriver { - /** @brief Virtual Methods Table.*/ - const struct QMKUSBDriverVMT *vmt; - _qmk_usb_driver_data + /** @brief Virtual Methods Table.*/ + const struct QMKUSBDriverVMT *vmt; + _qmk_usb_driver_data }; /*===========================================================================*/ @@ -160,24 +158,24 @@ struct QMKUSBDriver { /* External declarations. */ /*===========================================================================*/ -#ifdef __cplusplus +# ifdef __cplusplus extern "C" { -#endif - void qmkusbInit(void); - void qmkusbObjectInit(QMKUSBDriver *qmkusbp, const QMKUSBConfig * config); - void qmkusbStart(QMKUSBDriver *qmkusbp, const QMKUSBConfig *config); - void qmkusbStop(QMKUSBDriver *qmkusbp); - void qmkusbSuspendHookI(QMKUSBDriver *qmkusbp); - void qmkusbWakeupHookI(QMKUSBDriver *qmkusbp); - void qmkusbConfigureHookI(QMKUSBDriver *qmkusbp); - bool qmkusbRequestsHook(USBDriver *usbp); - void qmkusbSOFHookI(QMKUSBDriver *qmkusbp); - void qmkusbDataTransmitted(USBDriver *usbp, usbep_t ep); - void qmkusbDataReceived(USBDriver *usbp, usbep_t ep); - void qmkusbInterruptTransmitted(USBDriver *usbp, usbep_t ep); -#ifdef __cplusplus +# endif +void qmkusbInit(void); +void qmkusbObjectInit(QMKUSBDriver *qmkusbp, const QMKUSBConfig *config); +void qmkusbStart(QMKUSBDriver *qmkusbp, const QMKUSBConfig *config); +void qmkusbStop(QMKUSBDriver *qmkusbp); +void qmkusbSuspendHookI(QMKUSBDriver *qmkusbp); +void qmkusbWakeupHookI(QMKUSBDriver *qmkusbp); +void qmkusbConfigureHookI(QMKUSBDriver *qmkusbp); +bool qmkusbRequestsHook(USBDriver *usbp); +void qmkusbSOFHookI(QMKUSBDriver *qmkusbp); +void qmkusbDataTransmitted(USBDriver *usbp, usbep_t ep); +void qmkusbDataReceived(USBDriver *usbp, usbep_t ep); +void qmkusbInterruptTransmitted(USBDriver *usbp, usbep_t ep); +# ifdef __cplusplus } -#endif +# endif #endif /* USB_DRIVER_H */ |