M4521_BSP V3.02.000
The Board Support Package for M4521
usbh_hid.h
Go to the documentation of this file.
1#ifndef __INCLUDED_HID_H__
2#define __INCLUDED_HID_H__
3
4#include <usbh_core.h>
5
6
7
22
23//#define HID_DEBUG
24
25/*
26 * Debug message
27 */
28#ifdef HID_DEBUG
29#define HID_DBGMSG printf
30#else
31#define HID_DBGMSG(...)
32#endif
33
35
36
42#define CONFIG_HID_MAX_DEV 3
43#define HID_MAX_BUFFER_SIZE 64
44#define HID_CLIENT_SIZE 64
46/*
47 * Constants
48 */
49#define HID_RET_OK 0
50#define HID_RET_DEV_NOT_FOUND -9
51#define HID_RET_IO_ERR -11
52#define HID_RET_INVALID_PARAMETER -13
53#define HID_RET_OUT_OF_MEMORY -15
54#define HID_RET_NOT_SUPPORTED -17
57#define HID_REPORT_GET 0x01
58#define HID_GET_IDLE 0x02
59#define HID_GET_PROTOCOL 0x03
60#define HID_REPORT_SET 0x09
61#define HID_SET_IDLE 0x0A
62#define HID_SET_PROTOCOL 0x0B
65/*
66 * Report type
67 */
68#define RT_INPUT 1
69#define RT_OUTPUT 2
70#define RT_FEATURE 3 /* end of group USBH_HID_EXPORTED_CONSTANTS */
74
75
76struct usbhid_dev;
83typedef void (HID_IR_FUNC)(struct usbhid_dev *hdev, uint8_t *rdata, int data_len);
84typedef void (HID_IW_FUNC)(struct usbhid_dev *hdev, uint8_t **wbuff, int *buff_size); /* end of group USBH_HID_EXPORTED_TYPEDEFS */
88
89
94/*-----------------------------------------------------------------------------------
95 * HID device
96 */
98typedef struct usbhid_dev
99{
101 int ifnum;
109 struct usbhid_dev *next;
111} HID_DEV_T; /* end of group USBH_HID_EXPORTED_STRUCTURES */
115
116
117#ifdef __cplusplus
118extern "C" {
119#endif
120
125void USBH_HidInit(void);
127int32_t HID_HidGetReportDescriptor(HID_DEV_T *hdev, uint8_t *desc_buf, int buf_max_len);
128int32_t HID_HidGetReport(HID_DEV_T *hdev, int rtp_typ, int rtp_id, uint8_t *data, int len);
129int32_t HID_HidSetReport(HID_DEV_T *hdev, int rtp_typ, int rtp_id, uint8_t *data, int len);
130int32_t HID_HidGetIdle(HID_DEV_T *hdev, int rtp_id, uint8_t *idle_rate);
131int32_t HID_HidSetIdle(HID_DEV_T *hdev, int rtp_id, uint8_t idle_rate);
132int32_t HID_HidGetProtocol(HID_DEV_T *hdev, uint8_t *protocol);
133int32_t HID_HidSetProtocol(HID_DEV_T *hdev, uint8_t protocol);
136
137 /* end of group USBH_HID_EXPORTED_FUNCTIONS */
139 /* end of group USBH_HID_Driver */
141 /* end of group USB_Host_Driver */
143 /* end of group Component_Library */
145
146#ifdef __cplusplus
147}
148#endif
149
150#endif /* __INCLUDED_HID_H__ */
151
152
153
154
#define HID_MAX_BUFFER_SIZE
Definition: usbh_hid.h:43
#define HID_CLIENT_SIZE
Definition: usbh_hid.h:44
HID_IW_FUNC * write_func
Definition: usbh_hid.h:108
USB_DEV_T * udev
Definition: usbh_hid.h:100
int32_t USBH_HidStartIntReadPipe(HID_DEV_T *hdev, HID_IR_FUNC *func)
Start purge the USB interrupt in transfer.
Definition: hid_core.c:380
URB_T * urbin
Definition: usbh_hid.h:104
int32_t HID_HidGetProtocol(HID_DEV_T *hdev, uint8_t *protocol)
HID class standard request Get_Protocol request. The Get_Protocol request reads which protocol is cur...
Definition: hid_core.c:272
HID_IR_FUNC * read_func
Definition: usbh_hid.h:107
int32_t HID_HidGetReportDescriptor(HID_DEV_T *hdev, uint8_t *desc_buf, int buf_max_len)
Get report descriptor request.
Definition: hid_core.c:80
struct usbhid_dev * next
Definition: usbh_hid.h:109
URB_T * urbout
Definition: usbh_hid.h:105
int32_t HID_HidGetIdle(HID_DEV_T *hdev, int rtp_id, uint8_t *idle_rate)
HID class standard request Get_Idle request. The Get_Idle request reads the current idle rate for a p...
Definition: hid_core.c:208
void USBH_HidInit(void)
Init USB Host HID driver.
Definition: hid_driver.c:249
int32_t HID_HidSetIdle(HID_DEV_T *hdev, int rtp_id, uint8_t idle_rate)
HID class standard request Set_Idle request. The Set_Idle request silences a particular report on the...
Definition: hid_core.c:240
uint8_t inbuf[HID_MAX_BUFFER_SIZE]
Definition: usbh_hid.h:106
uint8_t bProtocolCode
Definition: usbh_hid.h:103
int32_t USBH_HidStartIntWritePipe(HID_DEV_T *hdev, HID_IW_FUNC *func)
Start purge the USB interrupt out transfer.
Definition: hid_core.c:441
int32_t HID_HidGetReport(HID_DEV_T *hdev, int rtp_typ, int rtp_id, uint8_t *data, int len)
HID class standard request Get_Report request. The Get_Report request allows the host to receive a re...
Definition: hid_core.c:142
uint8_t client[HID_CLIENT_SIZE]
Definition: usbh_hid.h:110
HID_DEV_T * USBH_HidGetDeviceList(void)
Get a list of currently connected USB Hid devices.
Definition: hid_driver.c:265
int32_t HID_HidSetReport(HID_DEV_T *hdev, int rtp_typ, int rtp_id, uint8_t *data, int len)
HID class standard request Set_Report request. The Set_Report request allows the host to send a repor...
Definition: hid_core.c:178
int32_t HID_HidSetProtocol(HID_DEV_T *hdev, uint8_t protocol)
HID class standard request Set_Protocol request. The Set_Protocol switches between the boot protocol ...
Definition: hid_core.c:302
int ifnum
Definition: usbh_hid.h:101
uint8_t bSubClassCode
Definition: usbh_hid.h:102
struct usbhid_dev HID_DEV_T
void() HID_IR_FUNC(struct usbhid_dev *hdev, uint8_t *rdata, int data_len)
Definition: usbh_hid.h:83
void() HID_IW_FUNC(struct usbhid_dev *hdev, uint8_t **wbuff, int *buff_size)
Definition: usbh_hid.h:84
USB Host core driver header file.
HIDDEN_SYMBOLS struct usb_device USB_DEV_T