Loading...
Searching...
No Matches
furi_hal_usb.h
1#pragma once
2
3#include "usb.h"
4
5#ifdef __cplusplus
6extern "C" {
7#endif
8
10
12 void (*init)(usbd_device* dev, FuriHalUsbInterface* intf, void* ctx);
13 void (*deinit)(usbd_device* dev);
14 void (*wakeup)(usbd_device* dev);
15 void (*suspend)(usbd_device* dev);
16
17 struct usb_device_descriptor* dev_descr;
18
19 void* str_manuf_descr;
20 void* str_prod_descr;
21 void* str_serial_descr;
22
23 void* cfg_descr;
24};
25
27extern FuriHalUsbInterface usb_cdc_single;
28extern FuriHalUsbInterface usb_cdc_dual;
29extern FuriHalUsbInterface usb_hid;
30extern FuriHalUsbInterface usb_hid_u2f;
31
32typedef enum {
33 FuriHalUsbStateEventReset,
34 FuriHalUsbStateEventWakeup,
35 FuriHalUsbStateEventSuspend,
36 FuriHalUsbStateEventDescriptorRequest,
37} FuriHalUsbStateEvent;
38
39typedef void (*FuriHalUsbStateCallback)(FuriHalUsbStateEvent state, void* context);
40
43void furi_hal_usb_init(void);
44
51bool furi_hal_usb_set_config(FuriHalUsbInterface* new_if, void* ctx);
52
57FuriHalUsbInterface* furi_hal_usb_get_config(void);
58
61void furi_hal_usb_lock(void);
62
65void furi_hal_usb_unlock(void);
66
71bool furi_hal_usb_is_locked(void);
72
75void furi_hal_usb_disable(void);
76
79void furi_hal_usb_enable(void);
80
83void furi_hal_usb_set_state_callback(FuriHalUsbStateCallback cb, void* ctx);
84
87void furi_hal_usb_reinit(void);
88
89#ifdef __cplusplus
90}
91#endif
Definition furi_hal_usb.h:11