]> git.sur5r.net Git - armstart-ibdap/blobdiff - inc/usb_driver.h
initial commit
[armstart-ibdap] / inc / usb_driver.h
diff --git a/inc/usb_driver.h b/inc/usb_driver.h
new file mode 100644 (file)
index 0000000..5b13e51
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * usb_driver.h
+ *
+ *  Created on: Jun 18, 2015
+ *      Author: yliu
+ */
+
+#ifndef USB_DRIVER_H_
+#define USB_DRIVER_H_
+
+
+#include "app_usbd_cfg.h"
+#include "usbd_rom_api.h"
+
+
+typedef struct {
+       const uint32_t usbdApiBase;                             /*!< USBD API function table base address */
+       const uint32_t reserved0;                               /*!< Reserved */
+       const uint32_t candApiBase;                             /*!< CAN API function table base address */
+       const uint32_t pwrApiBase;                              /*!< Power API function table base address */
+       const uint32_t reserved1;                               /*!< Reserved */
+       const uint32_t reserved2;                               /*!< Reserved */
+       const uint32_t reserved3;                               /*!< Reserved */
+       const uint32_t reserved4;                               /*!< Reserved */
+} LPC_ROM_API_T;
+
+
+
+#define LPC_ROM_API_BASE_LOC      0x1FFF1FF8
+#define LPC_ROM_API               (*((LPC_ROM_API_T        * *) LPC_ROM_API_BASE_LOC))
+
+
+typedef ErrorCode_t (*HID_GetReport_Func_T)( USBD_HANDLE_T hHid, USB_SETUP_PACKET* pSetup, uint8_t** pBuffer, uint16_t* length);
+typedef ErrorCode_t (*HID_SetReport_Func_T)( USBD_HANDLE_T hHid, USB_SETUP_PACKET* pSetup, uint8_t** pBuffer, uint16_t length);
+typedef ErrorCode_t (*HID_EpIn_Hdlr_Func_T) (USBD_HANDLE_T hUsb, void* data, uint32_t event);
+typedef ErrorCode_t (*HID_EpOut_Hdlr_Func_T) (USBD_HANDLE_T hUsb, void* data, uint32_t event);
+
+void init_usb_clock ();
+void init_usb_power ();
+int init_usb_driver (USBD_API_INIT_PARAM_T *usb_param);
+int init_usb_hid (USBD_API_INIT_PARAM_T *usb_param,
+               HID_GetReport_Func_T getreport_fun, HID_SetReport_Func_T setreport_fun,
+               HID_EpIn_Hdlr_Func_T epin_hdlr_fun, HID_EpOut_Hdlr_Func_T epout_hdlr_fun,
+               uint8_t** report_saddr, int report_size);
+
+void connect_to_usb_bus ();
+void disconnect_to_usb_bus ();
+
+
+extern USBD_HANDLE_T g_usb_hnd;
+
+
+#endif /* USB_DRIVER_H_ */