1 /*
2  * Copyright (c) 2020 - 2024 Renesas Electronics Corporation and/or its affiliates
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef R_USB_HOST_H
8 #define R_USB_HOST_H
9 
10 /***********************************************************************************************************************
11  * Includes
12  **********************************************************************************************************************/
13 #include "bsp_api.h"
14 #include "r_usb_host_api.h"
15 #include "r_usb_host_cfg.h"
16 
17 /* Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */
18 FSP_HEADER
19 
20 /***********************************************************************************************************************
21  * Macro definitions
22  **********************************************************************************************************************/
23 
24 /**********************************************************************************************************************
25  * Typedef definitions
26  **********************************************************************************************************************/
27 
28 typedef struct st_usbh_instance_ctrl
29 {
30     uint32_t          open;
31     void            * p_reg;
32     uint32_t          module_number;
33     usb_speed_t       max_speed;
34     usb_cfg_t const * p_cfg;
35     void (* p_callback)(usbh_callback_arg_t * p_args);
36     usbh_callback_arg_t * p_callback_memory;
37     void const          * p_context;
38 } usbh_instance_ctrl_t;
39 
40 /**********************************************************************************************************************
41  * Exported global functions
42  **********************************************************************************************************************/
43 fsp_err_t R_USBH_Open(usb_ctrl_t * const p_api_ctrl, usb_cfg_t const * const p_cfg);
44 fsp_err_t R_USBH_XferStart(usb_ctrl_t * const p_api_ctrl,
45                            uint8_t            dev_addr,
46                            uint8_t            ep_addr,
47                            uint8_t          * buffer,
48                            uint16_t           buflen);
49 fsp_err_t R_USBH_GetDeviceSpeed(usb_ctrl_t * const p_api_ctrl, usb_speed_t * p_speed);
50 fsp_err_t R_USBH_PortOpen(usb_ctrl_t * const p_api_ctrl, uint8_t dev_addr);
51 fsp_err_t R_USBH_PortStatusGet(usb_ctrl_t * const p_api_ctrl, usb_status_t * p_status);
52 fsp_err_t R_USBH_PortReset(usb_ctrl_t * const p_api_ctrl);
53 fsp_err_t R_USBH_DeviceRelease(usb_ctrl_t * const p_api_ctrl, uint8_t dev_addr);
54 fsp_err_t R_USBH_SetupSend(usb_ctrl_t * const p_api_ctrl, uint8_t dev_addr, uint8_t const setup_packet[8]);
55 fsp_err_t R_USBH_EdptOpen(usb_ctrl_t * const p_api_ctrl, uint8_t dev_addr, usb_desc_endpoint_t const * ep_desc);
56 fsp_err_t R_USBH_XferStart(usb_ctrl_t * const p_api_ctrl,
57                            uint8_t            dev_addr,
58                            uint8_t            ep_addr,
59                            uint8_t          * buffer,
60                            uint16_t           buflen);
61 fsp_err_t R_USBH_Close(usb_ctrl_t * const p_ctrl);
62 fsp_err_t R_USBH_SOFEnable(usb_ctrl_t * const p_api_ctrl);
63 fsp_err_t R_USBH_SOFDisable(usb_ctrl_t * const p_api_ctrl);
64 fsp_err_t R_USBH_BusResume(usb_ctrl_t * const p_api_ctrl);
65 fsp_err_t R_USBH_BusSuspend(usb_ctrl_t * const p_api_ctrl);
66 fsp_err_t R_USBH_Enable(usb_ctrl_t * const p_api_ctrl);
67 fsp_err_t R_USBH_Disable(usb_ctrl_t * const p_api_ctrl);
68 
69 /* Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */
70 FSP_FOOTER
71 
72 #endif
73