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