mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 03:00:34 +03:00
feat(usb/device): Add USB device support to ESP32-P4 v3
This commit is contained in:
@@ -145,7 +145,22 @@ esp_err_t usb_phy_otg_set_mode(usb_phy_handle_t handle, usb_otg_mode_t mode)
|
||||
// USB-DWC2.0 <-> UTMI PHY
|
||||
// USB-DWC1.1 <-> FSLS PHY
|
||||
if (handle->target == USB_PHY_TARGET_UTMI) {
|
||||
return ESP_OK; // No need to configure anything for UTMI PHY
|
||||
// ESP32-P4 v3 changed connection between USB-OTG peripheral and UTMI PHY.
|
||||
// On v3 the 15k pulldown resistors on D+/D- are no longer controlled by USB-OTG,
|
||||
// but must be controlled directly by this software driver.
|
||||
#if CONFIG_IDF_TARGET_ESP32P4 && !CONFIG_ESP32P4_SELECTS_REV_LESS_V3
|
||||
#include "soc/lp_system_struct.h"
|
||||
if (mode == USB_OTG_MODE_HOST) {
|
||||
// Host must connect 15k pulldown resistors on D+ / D-
|
||||
LP_SYS.hp_usb_otghs_phy_ctrl.hp_utmiotg_dppulldown = 1;
|
||||
LP_SYS.hp_usb_otghs_phy_ctrl.hp_utmiotg_dmpulldown = 1;
|
||||
} else {
|
||||
// Device must not connect any pulldown resistors on D+ / D-
|
||||
LP_SYS.hp_usb_otghs_phy_ctrl.hp_utmiotg_dppulldown = 0;
|
||||
LP_SYS.hp_usb_otghs_phy_ctrl.hp_utmiotg_dmpulldown = 0;
|
||||
}
|
||||
#endif // !CONFIG_ESP32P4_SELECTS_REV_LESS_V3
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
const usb_otg_signal_conn_t *otg_sig = usb_dwc_info.controllers[otg11_index].otg_signals;
|
||||
|
||||
Reference in New Issue
Block a user