summaryrefslogtreecommitdiff
path: root/firmware/export
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2021-09-19 11:44:38 +0100
committerAidan MacDonald <amachronic@protonmail.com>2021-10-16 15:58:43 -0400
commitec164c389c99d8129f9d6cacda2731bde9b08257 (patch)
tree224a2f675de8e6ce82f179b38cbe44326db30ddd /firmware/export
parent71cc1e78fd81818428cbd1b55fcf096979b529ef (diff)
downloadrockbox-ec164c389c99d8129f9d6cacda2731bde9b08257.tar.gz
rockbox-ec164c389c99d8129f9d6cacda2731bde9b08257.zip
usb: introduce new control request API
Change-Id: I6545d8985ab683c026f28f6a7c0e23b40d0a6506
Diffstat (limited to 'firmware/export')
-rw-r--r--firmware/export/usb_core.h4
-rw-r--r--firmware/export/usb_drv.h8
2 files changed, 11 insertions, 1 deletions
diff --git a/firmware/export/usb_core.h b/firmware/export/usb_core.h
index 78a80435e1..fe1f7459cf 100644
--- a/firmware/export/usb_core.h
+++ b/firmware/export/usb_core.h
@@ -51,7 +51,9 @@ struct usb_class_driver;
51 51
52void usb_core_init(void); 52void usb_core_init(void);
53void usb_core_exit(void); 53void usb_core_exit(void);
54void usb_core_control_request(struct usb_ctrlrequest* req); 54void usb_core_control_request(struct usb_ctrlrequest* req, void* data);
55void usb_core_control_complete(int status);
56void usb_core_legacy_control_request(struct usb_ctrlrequest* req);
55void usb_core_transfer_complete(int endpoint,int dir,int status,int length); 57void usb_core_transfer_complete(int endpoint,int dir,int status,int length);
56void usb_core_bus_reset(void); 58void usb_core_bus_reset(void);
57bool usb_core_any_exclusive_storage(void); 59bool usb_core_any_exclusive_storage(void);
diff --git a/firmware/export/usb_drv.h b/firmware/export/usb_drv.h
index 01535c2786..3ef4db3c9c 100644
--- a/firmware/export/usb_drv.h
+++ b/firmware/export/usb_drv.h
@@ -56,6 +56,12 @@
56 * -> usb_drv_int_enable(false) [ditto] 56 * -> usb_drv_int_enable(false) [ditto]
57 * -> soc specific controller/clock deinit */ 57 * -> soc specific controller/clock deinit */
58 58
59enum usb_control_response {
60 USB_CONTROL_ACK,
61 USB_CONTROL_STALL,
62 USB_CONTROL_RECEIVE,
63};
64
59/* one-time initialisation of the USB driver */ 65/* one-time initialisation of the USB driver */
60void usb_drv_startup(void); 66void usb_drv_startup(void);
61void usb_drv_int_enable(bool enable); /* Target implemented */ 67void usb_drv_int_enable(bool enable); /* Target implemented */
@@ -69,6 +75,8 @@ bool usb_drv_stalled(int endpoint,bool in);
69int usb_drv_send(int endpoint, void* ptr, int length); 75int usb_drv_send(int endpoint, void* ptr, int length);
70int usb_drv_send_nonblocking(int endpoint, void* ptr, int length); 76int usb_drv_send_nonblocking(int endpoint, void* ptr, int length);
71int usb_drv_recv_nonblocking(int endpoint, void* ptr, int length); 77int usb_drv_recv_nonblocking(int endpoint, void* ptr, int length);
78void usb_drv_control_response(enum usb_control_response resp,
79 void* data, int length);
72void usb_drv_set_address(int address); 80void usb_drv_set_address(int address);
73void usb_drv_reset_endpoint(int endpoint, bool send); 81void usb_drv_reset_endpoint(int endpoint, bool send);
74bool usb_drv_powered(void); 82bool usb_drv_powered(void);