mirror of
https://github.com/espressif/esp-idf.git
synced 2025-10-19 01:39:07 +00:00
feat(hal/usb): Make USB-DWC HAL&LL configuration independent
Previously, we included symbols from soc/usb_dwc_cfg.h and configured the HAL and LL according to it. Now we get the configuration in runtime from USB-DWC registers. Added missing definition for USB FS peripheral on ESP32-P4.
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "soc/usb_dwc_cfg.h"
|
||||
#include "hal/usb_dwc_ll.h" // For USB-DWC configuration
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/semphr.h"
|
||||
#include "unity.h"
|
||||
@@ -17,7 +17,7 @@
|
||||
#define NUM_URBS 3
|
||||
#define NUM_PACKETS_PER_URB 3
|
||||
#define POST_ENQUEUE_DELAY_US 20
|
||||
#define ENQUEUE_DELAY (OTG_HSPHY_INTERFACE ? 100 : 500) // With this delay we want to enqueue the URBs at different times
|
||||
#define ENQUEUE_DELAY (usb_dwc_ll_ghwcfg_get_hsphy_type(USB_DWC_LL_GET_HW(0)) ? 100 : 500) // With this delay we want to enqueue the URBs at different times
|
||||
|
||||
/*
|
||||
Test HCD ISOC pipe URBs
|
||||
@@ -126,12 +126,12 @@ TEST_CASE("Test HCD isochronous pipe URBs all", "[isoc][full_speed][high_speed]"
|
||||
uint8_t dev_addr = test_hcd_enum_device(default_pipe);
|
||||
|
||||
urb_t *urb_list[NUM_URBS];
|
||||
hcd_pipe_handle_t unused_pipes[OTG_NUM_HOST_CHAN];
|
||||
hcd_pipe_handle_t unused_pipes[16];
|
||||
const usb_ep_desc_t *out_ep_desc = dev_isoc_get_out_ep_desc(port_speed);
|
||||
const int isoc_packet_size = USB_EP_DESC_GET_MPS(out_ep_desc);
|
||||
|
||||
// For all channels
|
||||
for (int channel = 0; channel < OTG_NUM_HOST_CHAN - 1; channel++) {
|
||||
// For all channels (except channel allocated for EP0)
|
||||
for (int channel = 0; channel < usb_dwc_ll_ghwcfg_get_channel_num(USB_DWC_LL_GET_HW(0)) - 1; channel++) {
|
||||
// Allocate unused pipes, so the active isoc_out_pipe uses different channel index
|
||||
for (int ch = 0; ch < channel; ch++) {
|
||||
unused_pipes[ch] = test_hcd_pipe_alloc(port_hdl, out_ep_desc, dev_addr + 1, port_speed);
|
||||
|
Reference in New Issue
Block a user