summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2025-06-05 22:12:26 +0800
committersakumisu <[email protected]>2025-06-05 22:12:26 +0800
commitf7094028b80775fbcaf418d765115dafc192196c (patch)
treeb07d7143f202943d7cc740ba91a18bda97da3a98
parent5f9d06a9f5ce6ce0a96111224fa19455c3fa3acb (diff)
fix(idf): fix p4 config
Signed-off-by: sakumisu <[email protected]>
-rw-r--r--port/dwc2/usb_glue_esp.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/port/dwc2/usb_glue_esp.c b/port/dwc2/usb_glue_esp.c
index ae197e2d..d166a457 100644
--- a/port/dwc2/usb_glue_esp.c
+++ b/port/dwc2/usb_glue_esp.c
@@ -41,7 +41,11 @@ void usb_dc_low_level_init(uint8_t busid)
usb_phy_config_t phy_config = {
.controller = USB_PHY_CTRL_OTG,
.otg_mode = USB_OTG_MODE_DEVICE,
+#if CONFIG_IDF_TARGET_ESP32P4 // ESP32-P4 has 2 USB-DWC peripherals, each with its dedicated PHY. We support HS+UTMI only ATM.
+ .target = USB_PHY_TARGET_UTMI,
+#else
.target = USB_PHY_TARGET_INT,
+#endif
};
esp_err_t ret = usb_new_phy(&phy_config, &s_phy_handle);
@@ -87,7 +91,11 @@ void usb_hc_low_level_init(struct usbh_bus *bus)
// Host Library defaults to internal PHY
usb_phy_config_t phy_config = {
.controller = USB_PHY_CTRL_OTG,
+#if CONFIG_IDF_TARGET_ESP32P4 // ESP32-P4 has 2 USB-DWC peripherals, each with its dedicated PHY. We support HS+UTMI only ATM.
+ .target = USB_PHY_TARGET_UTMI,
+#else
.target = USB_PHY_TARGET_INT,
+#endif
.otg_mode = USB_OTG_MODE_HOST,
.otg_speed = USB_PHY_SPEED_UNDEFINED, // In Host mode, the speed is determined by the connected device
.ext_io_conf = NULL,
@@ -136,16 +144,25 @@ void usbd_dwc2_delay_ms(uint8_t ms)
void usb_dcache_clean(uintptr_t addr, size_t size)
{
+ if (size == 0)
+ return;
+
esp_cache_msync((void *)addr, size, ESP_CACHE_MSYNC_FLAG_TYPE_DATA | ESP_CACHE_MSYNC_FLAG_DIR_C2M);
}
void usb_dcache_invalidate(uintptr_t addr, size_t size)
{
+ if (size == 0)
+ return;
+
esp_cache_msync((void *)addr, size, ESP_CACHE_MSYNC_FLAG_TYPE_DATA | ESP_CACHE_MSYNC_FLAG_DIR_M2C);
}
void usb_dcache_flush(uintptr_t addr, size_t size)
{
+ if (size == 0)
+ return;
+
esp_cache_msync((void *)addr, size, ESP_CACHE_MSYNC_FLAG_TYPE_DATA | ESP_CACHE_MSYNC_FLAG_DIR_C2M | ESP_CACHE_MSYNC_FLAG_DIR_M2C);
}
#endif \ No newline at end of file