Go to the documentation of this file.
52 #ifndef __GR55xx_HAL_USB_H__
53 #define __GR55xx_HAL_USB_H__
268 #define HAL_USB_ERROR_NONE ((uint32_t)0x00000000)
269 #define HAL_USB_ERROR_TIMEOUT ((uint32_t)0x00000001)
270 #define HAL_USB_ERROR_TRANSFER ((uint32_t)0x00000002)
271 #define HAL_USB_ERROR_DMA ((uint32_t)0x00000004)
272 #define HAL_USB_ERROR_INVALID_PARAM ((uint32_t)0x00000008)
278 #define HAL_USB_FIFO_EP0 (USB_BASE + 0x40)
279 #define HAL_USB_FIFO_EP1 (USB_BASE + 0x44)
280 #define HAL_USB_FIFO_EP2 (USB_BASE + 0x48)
281 #define HAL_USB_FIFO_EP3 (USB_BASE + 0x4C)
287 #define USB_PWR_MODE_LP LL_USB_PWR_MODE_LP
288 #define USB_PWR_MODE_NORMAL LL_USB_PWR_MODE_NORMAL
294 #define USB_HAL_SPEED_LOW LL_USB_XCRV_CTRL_SPEED_LOW
295 #define USB_HAL_SPEED_FULL LL_USB_XCRV_CTRL_SPEED_FULL
302 #define USB_ENUM_TYPE_HW LL_USB_ENUM_TYPE_HW
303 #define USB_ENUM_TYPE_MCU LL_USB_ENUM_TYPE_MCU
309 #define USB_EP_ATTR_INT ((uint32_t)0x00000000UL)
310 #define USB_EP_ATTR_ISO ((uint32_t)0x00000001UL)
311 #define USB_EP_ATTR_BULK ((uint32_t)0x00000002UL)
317 #define USB_EP4_FIFO_WEN_DEFAULT LL_USB_EP4_FIFO_WEN_DEFAULT
318 #define USB_EP4_FIFO_WEN_1BYTE LL_USB_EP4_FIFO_WEN_1BYTE
319 #define USB_EP4_FIFO_WEN_2BYTE LL_USB_EP4_FIFO_WEN_2BYTE
320 #define USB_EP4_FIFO_WEN_3BYTE LL_USB_EP4_FIFO_WEN_3BYTE
321 #define USB_EP4_FIFO_WEN_4BYTE LL_USB_EP4_FIFO_WEN_4BYTE
327 #define HAL_USB_TIMEOUT_DEFAULT_VALUE ((uint32_t)5000)
333 #define USB_FLAG_SUSPEND LL_USB_INT_STAT_SUSPEND
334 #define USB_FLAG_EP0_OUT_READY LL_USB_INT_STAT_EP0_OUT_READY
335 #define USB_FLAG_EP1_OUT_READY LL_USB_INT_STAT_EP1_OUT_READY
336 #define USB_FLAG_CRC16_ERR LL_USB_INT_STAT_CRC16_ERR
337 #define USB_FLAG_UPID_ERR LL_USB_INT_STAT_UPID_ERR
338 #define USB_FLAG_TIMEOUT_ERR LL_USB_INT_STAT_TIMEOUT_ERR
339 #define USB_FLAG_SEQ_ERR LL_USB_INT_STAT_SEQ_ERR
340 #define USB_FLAG_PID_CKS_ERR LL_USB_INT_STAT_PID_CKS_ERR
341 #define USB_FLAG_PID_CRC_ERR LL_USB_INT_STAT_PID_CRC_ERR
342 #define USB_FLAG_HOST_RESET LL_USB_INT_STAT_HOST_RESET
343 #define USB_FLAG_AHB_XFER_ERR LL_USB_INT_STAT_AHB_XFER_ERR
344 #define USB_FLAG_NSE_ERR LL_USB_INT_STAT_NSE_ERR
345 #define USB_FLAG_EP3_AHB_XFER_DONE LL_USB_INT_STAT_EP3_AHB_XFER_DONE
346 #define USB_FLAG_SYNC_ERR LL_USB_INT_STAT_SYNC_ERR
347 #define USB_FLAG_BIT_STUFF_ERR LL_USB_INT_STAT_BIT_STUFF_ERR
348 #define USB_FLAG_BYTE_ERR LL_USB_INT_STAT_BYTE_ERR
349 #define USB_FLAG_SOF LL_USB_INT_STAT_SOF
350 #define USB_FLAG_EP0_TX_DONE LL_USB_INT_STAT_EP0_TX_DONE
351 #define USB_FLAG_EP2_TX_DONE LL_USB_INT_STAT_EP2_TX_DONE
352 #define USB_FLAG_EP3_TX_DONE LL_USB_INT_STAT_EP3_TX_DONE
353 #define USB_FLAG_INTO_CONFIG LL_USB_INT_STAT_INTO_CONFIG
354 #define USB_FLAG_EP5_OUT_READY LL_USB_INT_STAT_EP5_OUT_READY
355 #define USB_FLAG_EP4_AHB_XFER_DONE LL_USB_INT_STAT_EP4_AHB_XFER_DONE
356 #define USB_FLAG_EP4_TX_DONE LL_USB_INT_STAT_EP4_TX_DONE
357 #define USB_FLAG_EP5_AHB_XFER_DONE LL_USB_INT_STAT_EP5_AHB_XFER_DONE
358 #define USB_FLAG_EP5_TIMER_OUT_ERR LL_USB_INT_STAT_EP5_TIMER_OUT_ERR
364 #define USB_IT_ALL LL_USB_INT_EN_ALL
365 #define USB_IT_RESET_VAL LL_USB_INT_RESET_VAL
366 #define USB_IT_SUSPEND LL_USB_INT_EN_SUSPEND
367 #define USB_IT_EP0_OUT_READY LL_USB_INT_EN_EP0_OUT_READY
368 #define USB_IT_EP1_OUT_READY LL_USB_INT_EN_EP1_OUT_READY
369 #define USB_IT_CRC16_ERR LL_USB_INT_EN_CRC16_ERR
370 #define USB_IT_UPID_ERR LL_USB_INT_EN_UPID_ERR
371 #define USB_IT_TIMEOUT_ERR LL_USB_INT_EN_TIMEOUT_ERR
372 #define USB_IT_SEQ_ERR LL_USB_INT_EN_SEQ_ERR
373 #define USB_IT_PID_CKS_ERR LL_USB_INT_EN_PID_CKS_ERR
374 #define USB_IT_PID_CRC_ERR LL_USB_INT_EN_PID_CRC_ERR
375 #define USB_IT_HOST_RESET LL_USB_INT_EN_HOST_RESET
376 #define USB_IT_AHB_XFER_ERR LL_USB_INT_EN_AHB_XFER_ERR
377 #define USB_IT_NSE_ERR LL_USB_INT_EN_NSE_ERR
378 #define USB_IT_EP3_AHB_XFER_DONE LL_USB_INT_EN_EP3_AHB_XFER_DONE
379 #define USB_IT_SYNC_ERR LL_USB_INT_EN_SYNC_ERR
380 #define USB_IT_BIT_STUFF_ERR LL_USB_INT_EN_BIT_STUFF_ERR
381 #define USB_IT_BYTE_ERR LL_USB_INT_EN_BYTE_ERR
382 #define USB_IT_SOF LL_USB_INT_EN_SOF
383 #define USB_IT_EP0_TX_DONE LL_USB_INT_EN_EP0_TX_DONE
384 #define USB_IT_EP2_TX_DONE LL_USB_INT_EN_EP2_TX_DONE
385 #define USB_IT_EP3_TX_DONE LL_USB_INT_EN_EP3_TX_DONE
386 #define USB_IT_INTO_CONFIG LL_USB_INT_EN_INTO_CONFIG
387 #define USB_IT_EP5_OUT_READY LL_USB_INT_EN_EP5_OUT_READY
388 #define USB_IT_EP4_AHB_XFER_DONE LL_USB_INT_EN_EP4_AHB_XFER_DONE
389 #define USB_IT_EP4_TX_DONE LL_USB_INT_EN_EP4_TX_DONE
390 #define USB_IT_EP5_AHB_XFER_DONE LL_USB_INT_EN_EP5_AHB_XFER_DONE
391 #define USB_IT_EP5_TIMER_OUT_ERR LL_USB_INT_EN_EP5_TIMER_OUT_ERR
397 #define USB_IT_CLR_ALL LL_USB_INT_CLR_ALL
398 #define USB_IT_CLR_SUSPEND LL_USB_INT_CLR_SUSPEND
399 #define USB_IT_CLR_EP0_OUT_READY LL_USB_INT_CLR_EP0_OUT_READY
400 #define USB_IT_CLR_EP1_OUT_READY LL_USB_INT_CLR_EP1_OUT_READY
401 #define USB_IT_CLR_CRC16_ERR LL_USB_INT_CLR_CRC16_ERR
402 #define USB_IT_CLR_UPID_ERR LL_USB_INT_CLR_UPID_ERR
403 #define USB_IT_CLR_TIMEOUT_ERR LL_USB_INT_CLR_TIMEOUT_ERR
404 #define USB_IT_CLR_SEQ_ERR LL_USB_INT_CLR_SEQ_ERR
405 #define USB_IT_CLR_PID_CKS_ERR LL_USB_INT_CLR_PID_CKS_ERR
406 #define USB_IT_CLR_PID_CRC_ERR LL_USB_INT_CLR_PID_CRC_ERR
407 #define USB_IT_CLR_HOST_RESET LL_USB_INT_CLR_HOST_RESET
408 #define USB_IT_CLR_AHB_XFER_ERR LL_USB_INT_CLR_AHB_XFER_ERR
409 #define USB_IT_CLR_NSE_ERR LL_USB_INT_CLR_NSE_ERR
410 #define USB_IT_CLR_EP3_AHB_XFER_DONE LL_USB_INT_CLR_EP3_AHB_XFER_DONE
411 #define USB_IT_CLR_SYNC_ERR LL_USB_INT_CLR_SYNC_ERR
412 #define USB_IT_CLR_BIT_STUFF_ERR LL_USB_INT_CLR_BIT_STUFF_ERR
413 #define USB_IT_CLR_BYTE_ERR LL_USB_INT_CLR_BYTE_ERR
414 #define USB_IT_CLR_SOF LL_USB_INT_CLR_SOF
415 #define USB_IT_CLR_EP0_TX_DONE LL_USB_INT_CLR_EP0_TX_DONE
416 #define USB_IT_CLR_EP2_TX_DONE LL_USB_INT_CLR_EP2_TX_DONE
417 #define USB_IT_CLR_EP3_TX_DONE LL_USB_INT_CLR_EP3_TX_DONE
418 #define USB_IT_CLR_INTO_CONFIG LL_USB_INT_CLR_INTO_CONFIG
419 #define USB_IT_CLR_EP5_OUT_READY LL_USB_INT_CLR_EP5_OUT_READY
420 #define USB_IT_CLR_EP4_AHB_XFER_DONE LL_USB_INT_CLR_EP4_AHB_XFER_DONE
421 #define USB_IT_CLR_EP4_TX_DONE LL_USB_INT_CLR_EP4_TX_DONE
422 #define USB_IT_CLR_EP5_AHB_XFER_DONE LL_USB_INT_CLR_EP5_AHB_XFER_DONE
423 #define USB_IT_CLR_EP5_TIMER_OUT_ERR LL_USB_INT_CLR_EP5_TIMER_OUT_ERR
437 #define IS_USB_PWR_MODE(__MODE__) (((__MODE__) == LL_USB_PWR_MODE_LP) || \
438 ((__MODE__) == USB_PWR_MODE_NORMAL))
444 #define IS_USB_SPEED(__MODE__) (((__MODE__) == USB_HAL_SPEED_LOW) || \
445 ((__MODE__) == USB_HAL_SPEED_FULL))
451 #define IS_USB_ENUM_TYPE(__TYPE__) (((__TYPE__) == USB_ENUM_TYPE_HW) || \
452 ((__TYPE__) == USB_ENUM_TYPE_MCU))
465 #define __HAL_USB_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->state = HAL_USB_STATE_RESET)
470 #define __HAL_USB_ENABLE() ll_usb_enable()
475 #define __HAL_USB_DISABLE() ll_usb_disable()
480 #define __HAL_USB_ENABLE_SW_RST() SET_BITS(MCU_SUB->USB_SW_RST, MCU_SUB_USB_SW_RST_EN)
485 #define __HAL_USB_DISABLE_SW_RST() CLEAR_BITS(MCU_SUB->USB_SW_RST, MCU_SUB_USB_SW_RST_EN)
521 #define __HAL_USB_ENABLE_IT(__HANDLE__, __INTERRUPT__) SET_BITS((__HANDLE__)->p_instance->INT_EN, (__INTERRUPT__))
558 #define __HAL_USB_DISABLE_IT(__HANDLE__, __INTERRUPT__) CLEAR_BITS((__HANDLE__)->p_instance->INT_EN, (__INTERRUPT__))
593 #define __HAL_USB_GET_FLAG(__HANDLE__, __FLAG__) ((READ_BITS((__HANDLE__)->p_instance->INT_STAT, (__FLAG__)) != 0) ? SET : RESET)
628 #define __HAL_USB_CLEAR_FLAG(__HANDLE__, __FLAG__) SET_BITS((__HANDLE__)->p_instance->INT_CLR, (__FLAG__))
634 #define __HAL_USB_GET_EP0_OUT_DAT_RDY(__HANDLE__) ((READ_BITS((__HANDLE__)->p_instance->CTRL, USB_CTRL_EP0_OUT_DATA_RDY) != 0) ? SET : RESET)
640 #define __HAL_USB_ENABLE_ADDR_STAT(__HANDLE__) SET_BITS((__HANDLE__)->p_instance->CTRL,USB_CTRL_ADDR_STAT)
646 #define __HAL_USB_ENABLE_CFG_STAT(__HANDLE__) SET_BITS((__HANDLE__)->p_instance->CTRL,USB_CTRL_CFG_STAT)
652 #define __HAL_USB_CLEAR_EP0_IFIFO(__HANDLE__) SET_BITS((__HANDLE__)->p_instance->EP0_1_CTRL,USB_EP0_CTRL_IFIFO_CLR)
658 #define __HAL_USB_CLEAR_EP1_IFIFO(__HANDLE__) SET_BITS((__HANDLE__)->p_instance->EP0_1_CTRL,USB_EP1_CTRL_IFIFO_CLR)
664 #define __HAL_USB_ENABLE_DEV_REMOTE_WAKEUP(__HANDLE__) SET_BITS((__HANDLE__)->p_instance->CTRL,USB_CTRL_DEV_REMOTE_WAKEUP)
670 #define __HAL_USB_DISABLE_DEV_REMOTE_WAKEUP(__HANDLE__) CLEAR_BITS((__HANDLE__)->p_instance->CTRL,USB_CTRL_DEV_REMOTE_WAKEUP)
676 #define __HAL_USB_ENABLE_EP5_DMA_READ(__HANDLE__) SET_BITS((__HANDLE__)->p_instance->EP5_CTRL,USB_EP5_CTRL_AHBM_EN)
682 #define __HAL_USB_DISABLE_EP5_DMA_READ(__HANDLE__) CLEAR_BITS((__HANDLE__)->p_instance->EP5_CTRL,USB_EP5_CTRL_AHBM_EN)
690 #define __HAL_USB_SET_EP5_TIMER_VAL(__HANDLE__, __VAL__) MODIFY_REG((__HANDLE__)->p_instance->EP5_TIMER, USB_EP5_TIMER_VAL, (__VAL__));
697 #define __HAL_USB_SET_EP4_BURST_SIZE(__HANDLE__, __VAL__) MODIFY_REG((__HANDLE__)->p_instance->EP4_AHBM_CTRL, USB_EP4_AHBM_CTRL_BURST_SIZE,\
698 (__VAL__) << USB_EP4_AHBM_CTRL_BURST_SIZE_Pos);
void hal_usb_pid_crc_err_callback(usb_handle_t *p_usb)
usb PID CRC error callback.
struct _usb_init usb_init_t
USB init Structure definition.
void hal_usb_msp_deinit(usb_handle_t *p_usb)
De-initialize the USB MSP.
void(* usb_ep5_out_ready_callback)(usb_handle_t *p_usb)
void hal_usb_pid_cks_err_callback(usb_handle_t *p_usb)
usb PID checksum error callback.
void(* usb_ep0_tx_done_callback)(usb_handle_t *p_usb)
hal_lock_t
HAL Lock structures definition.
@ HAL_USB_STATE_ERROR_SYNC
void(* usb_ep3_ahb_xfer_done_callback)(usb_handle_t *p_usb)
USB handle Structure definition.
hal_status_t hal_usb_ep_receive_dma(usb_handle_t *p_usb, hal_usb_ep_t ep, uint8_t *p_data, uint32_t length)
Receive an amount of data to USB endpoint in dma mode.
void(* usb_ep4_ahb_xfer_done_callback)(usb_handle_t *p_usb)
@ HAL_USB_STATE_ERROR_BYTE
hal_status_t hal_usb_ep_transmit_dma(usb_handle_t *p_usb, hal_usb_ep_t ep, uint8_t *p_data, uint32_t length)
Transmit an amount of data to USB endpoint in dma mode.
void hal_usb_ep0_tx_done_callback(usb_handle_t *p_usb)
usb EP0 IN FIFO data has sent to host callback.
void hal_usb_ep2_tx_done_callback(usb_handle_t *p_usb)
usb EP2 IN FIFO data has sent to host callback.
void hal_usb_ep5_timer_out_err_callback(usb_handle_t *p_usb)
usb ep5 timer out error callback.
@ HAL_USB_STATE_BUSY_ADDR
void hal_usb_irq_handler(usb_handle_t *p_usb)
Handle USB interrupt request.
void(* usb_ep2_tx_done_callback)(usb_handle_t *p_usb)
void hal_usb_sof_callback(usb_handle_t *p_usb)
usb SOF interrupt callback.
void hal_usb_ep4_tx_done_callback(usb_handle_t *p_usb)
usb EP4 IN FIFO data has sent to host callback.
uint32_t hal_usb_get_addr(usb_handle_t *p_usb)
get USB devcice address
void(* usb_suspend_callback)(usb_handle_t *p_usb)
void(* usb_ep5_ahb_xfer_done_callback)(usb_handle_t *p_usb)
hal_status_t hal_usb_resume_reg(usb_handle_t *p_usb)
Restore some registers related to USB configuration after sleep. This function must be used in conjun...
void hal_usb_crc16_err_callback(usb_handle_t *p_usb)
usb receive CRC error data callback.
void(* usb_msp_deinit)(usb_handle_t *p_usb)
@ HAL_USB_STATE_ERROR_PID_CRC
void(* usb_time_out_callback)(usb_handle_t *p_usb)
USB init Structure definition.
void hal_usb_ep5_out_ready_callback(usb_handle_t *p_usb)
usb EP5 output ready callback.
void(* usb_msp_init)(usb_handle_t *p_usb)
void(* usb_upid_err_callback)(usb_handle_t *p_usb)
void hal_usb_upid_err_callback(usb_handle_t *p_usb)
usb receive unsupported PID callback.
void hal_usb_bit_stuff_err_callback(usb_handle_t *p_usb)
usb bit stuff error callback.
void(* usb_ahb_xfer_err_callback)(usb_handle_t *p_usb)
hal_status_t hal_usb_init(usb_handle_t *p_usb)
Initialize the USB according to the specified parameters in the usb_init_t and initialize the associa...
void hal_usb_into_config_callback(usb_handle_t *p_usb)
usb hardware enumeration into config status callback.
hal_status_t hal_usb_ep_write_end(usb_handle_t *p_usb, hal_usb_ep_t ep)
usbd inform host transmit data end.
void hal_usb_ep5_ahb_xfer_done_callback(usb_handle_t *p_usb)
usb ep5 AHB master transfer done callback.
@ HAL_USB_STATE_ERROR_SEQ
void hal_usb_ep1_out_ready_callback(usb_handle_t *p_usb)
usb EP1 output ready callback.
hal_usb_state_t
HAL USB State Enumerations definition.
uint32_t hal_usb_get_ep5_rx_data_sum(usb_handle_t *p_usb)
get USB EP5 received data sum.
void(* usb_ep5_timer_out_err_callback)(usb_handle_t *p_usb)
uint32_t hal_usb_get_ep1_rx_data_sum(usb_handle_t *p_usb)
get USB EP1 received data sum.
uint32_t hal_usb_read_ep_fifo(usb_handle_t *p_usb, hal_usb_ep_t ep)
read 32bit value from USB endpoit FIFO.
hal_status_t hal_usb_ep_read_start(usb_handle_t *p_usb, hal_usb_ep_t ep)
usb ep start receive data.
void(* usb_seq_err_callback)(usb_handle_t *p_usb)
__IO hal_usb_state_t state
hal_status_t hal_usb_halt_ep(usb_handle_t *p_usb, hal_usb_ep_t ep)
USB halt the endpoint.
@ HAL_USB_STATE_ERROR_TIMEOUT
hal_status_t hal_usb_ep_write_start(usb_handle_t *p_usb, hal_usb_ep_t ep)
usb ep start transmit data.
void(* usb_ep0_out_ready_callback)(usb_handle_t *p_usb)
struct hw_enum_parm hw_enum_parm_t
USB hardware enumeration Structure definition.
uint32_t hal_usb_get_ep_attr(usb_handle_t *p_usb, hal_usb_ep_t ep)
get USB EP attribute setting.
void(* usb_ep1_out_ready_callback)(usb_handle_t *p_usb)
struct _usb_handle usb_handle_t
USB handle Structure definition.
struct _usb_callback usb_callback_t
HAL_USB Callback function definition.
@ HAL_USB_STATE_ERROR_EP5_TIMER
void(* usb_ep4_tx_done_callback)(usb_handle_t *p_usb)
void hal_usb_ep0_out_ready_callback(usb_handle_t *p_usb)
usb EP0 output ready callback.
uint8_t hal_usb_get_connect_state(void)
usb module gets whether the device is connected to the host.
void(* usb_detach_callback)(usb_handle_t *p_usb)
void(* usb_into_config_callback)(usb_handle_t *p_usb)
HAL_USB Callback function definition.
hal_status_t hal_usb_set_cmd_err(usb_handle_t *p_usb)
send error command to USB host(EP0).
@ HAL_USB_STATE_BUSY_HOST_REST
@ HAL_USB_STATE_ERROR_NSE
void hal_usb_seq_err_callback(usb_handle_t *p_usb)
usb DATA0/DATA1 PID sequence error callback.
void(* usb_host_reset_callback)(usb_handle_t *p_usb)
hal_usb_state_t hal_usb_get_state(usb_handle_t *p_usb)
Return the USB handle state.
void(* usb_ep3_tx_done_callback)(usb_handle_t *p_usb)
void hal_usb_suspend_callback(usb_handle_t *p_usb)
usb suspend callback.
void(* usb_sync_err_callback)(usb_handle_t *p_usb)
hal_status_t
HAL Status structures definition.
void hal_usb_ep4_ahb_xfer_done_callback(usb_handle_t *p_usb)
usb ep4 AHB master transfer done callback.
hal_status_t hal_usb_suspend_reg(usb_handle_t *p_usb)
Suspend some registers related to USB configuration before sleep.
@ HAL_USB_STATE_ERROR_UPID
void hal_usb_ep3_ahb_xfer_done_callback(usb_handle_t *p_usb)
usb ep3 AHB master transfer done callback.
void(* usb_pid_crc_err_callback)(usb_handle_t *p_usb)
void(* usb_nse_err_callback)(usb_handle_t *p_usb)
hal_status_t hal_usb_reset(usb_handle_t *p_usb)
usb modlue reset the basic configuration during host reset
uint32_t hal_usb_get_it_flag(usb_handle_t *p_usb)
get USB all interrupt status.
void(* usb_bit_stuff_err_callback)(usb_handle_t *p_usb)
hal_status_t hal_usb_set_cmd_ok(usb_handle_t *p_usb)
send ok command to USB host(EP0).
void(* usb_attach_callback)(usb_handle_t *p_usb)
hal_status_t hal_usb_write_ep_fifo(usb_handle_t *p_usb, hal_usb_ep_t ep, uint32_t value, uint32_t ep4_wr_byte)
write 32bit value to USB endpoit FIFO.
void hal_usb_byte_err_callback(usb_handle_t *p_usb)
usb byte error callback.
void hal_usb_detach_callback(usb_handle_t *p_usb)
USB detach callback.
@ HAL_USB_STATE_ERROR_DMA_RX
uint32_t hal_usb_get_error(usb_handle_t *p_usb)
Return the USB error code.
hal_status_t hal_usb_ep_read_end(usb_handle_t *p_usb, hal_usb_ep_t ep)
usbd inform host receive data end.
void hal_usb_attach_callback(usb_handle_t *p_usb)
USB attach callback.
void(* usb_sof_callback)(usb_handle_t *p_usb)
uint32_t hal_usb_get_ep0_rx_data_sum(usb_handle_t *p_usb)
get USB EP0 received data sum.
@ HAL_USB_STATE_ERROR_BIT_STUFF
void(* usb_crc16_err_callback)(usb_handle_t *p_usb)
void hal_usb_ep3_tx_done_callback(usb_handle_t *p_usb)
usb EP3 IN FIFO data has sent to host callback.
void(* usb_pid_cks_err_callback)(usb_handle_t *p_usb)
void hal_usb_time_out_callback(usb_handle_t *p_usb)
usb rx/tx timeout error callback.
@ HAL_USB_STATE_ERROR_CRC16
void hal_usb_ahb_xfer_err_callback(usb_handle_t *p_usb)
usb EP3 and EP4 AHB master receive ERROR response callback.
@ HAL_USB_STATE_ERROR_PID_CKS
void hal_usb_attach_irq_handler(usb_handle_t *p_usb)
Handle USB attach interrupt request.
void hal_usb_detach_irq_handler(usb_handle_t *p_usb)
Handle USB detach interrupt request.
hal_status_t hal_usb_set_ep_attr(usb_handle_t *p_usb, hal_usb_ep_t ep, uint32_t attr)
set USB EP attribute.
hal_status_t hal_usb_deinit(usb_handle_t *p_usb)
De-initialize the USB peripheral.
void(* usb_byte_err_callback)(usb_handle_t *p_usb)
USB hardware enumeration Structure definition.
hal_status_t hal_usb_un_halt_ep(usb_handle_t *p_usb, hal_usb_ep_t ep)
USB un halt the endpoint.
hal_status_t hal_usb_set_addr(usb_handle_t *p_usb, uint32_t addr)
set USB devcice address.
hal_status_t hal_usb_set_and_unhalt_ep(usb_handle_t *p_usb, hal_usb_ep_t ep, uint32_t attr)
USB un halt the endpoint and set the endpoint attribute.
void hal_usb_host_reset_callback(usb_handle_t *p_usb)
usb host reset callback.
This file contains HAL common definitions, enumeration, macros and structures definitions.
void hal_usb_nse_err_callback(usb_handle_t *p_usb)
usb no such endpoint error callback.
Header file containing functions prototypes of usb LL library.
void hal_usb_msp_init(usb_handle_t *p_usb)
Initialize the USB MSP.
void hal_usb_sync_err_callback(usb_handle_t *p_usb)
usb SYNC error callback.