mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 11:10:54 +03:00
feat(esp_hal_usb): add usb suspend wakeup status in ll layer
This commit is contained in:
@@ -119,6 +119,24 @@ FORCE_INLINE_ATTR void usb_utmi_ll_enable_precise_detection(bool enable)
|
|||||||
HP_SYSTEM.sys_usbotg20_ctrl.sys_otg_suspendm = enable;
|
HP_SYSTEM.sys_usbotg20_ctrl.sys_otg_suspendm = enable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set USB OTG2.0 suspend state for PMU USB wakeup logic
|
||||||
|
*
|
||||||
|
* @param[in] in_suspend True if USB OTG2.0 is suspended
|
||||||
|
*/
|
||||||
|
FORCE_INLINE_ATTR void usb_utmi_ll_set_suspend_state(bool in_suspend)
|
||||||
|
{
|
||||||
|
LP_SYS.usb_ctrl.usbotg20_in_suspend = in_suspend;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Clear USB OTG2.0 wakeup status sent to PMU
|
||||||
|
*/
|
||||||
|
FORCE_INLINE_ATTR void usb_utmi_ll_clear_wakeup_status(void)
|
||||||
|
{
|
||||||
|
LP_SYS.usb_ctrl.usbotg20_wakeup_clr = 1;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
#include "soc/cnnt_sys_struct.h"
|
#include "soc/cnnt_sys_struct.h"
|
||||||
#include "soc/hp_alive_sys_struct.h"
|
#include "soc/hp_alive_sys_struct.h"
|
||||||
#include "soc/hp_sys_clkrst_struct.h"
|
#include "soc/hp_sys_clkrst_struct.h"
|
||||||
|
#include "soc/lp_system_struct.h"
|
||||||
#include "soc/reg_base.h"
|
#include "soc/reg_base.h"
|
||||||
#include "soc/usb_utmi_struct.h"
|
#include "soc/usb_utmi_struct.h"
|
||||||
|
|
||||||
@@ -146,6 +147,24 @@ FORCE_INLINE_ATTR void usb_utmi_ll_enable_precise_detection(bool enable)
|
|||||||
HP_ALIVE_SYS.usb_otghs_ctrl.reg_usb_otghs_phy_otg_suspendm = enable;
|
HP_ALIVE_SYS.usb_otghs_ctrl.reg_usb_otghs_phy_otg_suspendm = enable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set USB OTG2.0 suspend state for PMU USB wakeup logic
|
||||||
|
*
|
||||||
|
* @param[in] in_suspend True if USB OTG2.0 is suspended
|
||||||
|
*/
|
||||||
|
FORCE_INLINE_ATTR void usb_utmi_ll_set_suspend_state(bool in_suspend)
|
||||||
|
{
|
||||||
|
LP_SYS.usb_ctrl.usbotghs_in_suspend = in_suspend;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Clear USB OTG2.0 wakeup status sent to PMU
|
||||||
|
*/
|
||||||
|
FORCE_INLINE_ATTR void usb_utmi_ll_clear_wakeup_status(void)
|
||||||
|
{
|
||||||
|
LP_SYS.usb_ctrl.usbotghs_wakeup_clr = 1;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -67,6 +67,18 @@ void _usb_utmi_hal_disable(void);
|
|||||||
*/
|
*/
|
||||||
void usb_utmi_hal_enable_data_pulldowns(bool enable);
|
void usb_utmi_hal_enable_data_pulldowns(bool enable);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set USB OTG2.0 suspend state for PMU USB wakeup logic
|
||||||
|
*
|
||||||
|
* @param[in] in_suspend True if USB OTG2.0 is suspended
|
||||||
|
*/
|
||||||
|
void usb_utmi_hal_set_suspend_state(bool in_suspend);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Clear USB OTG2.0 wakeup status sent to PMU
|
||||||
|
*/
|
||||||
|
void usb_utmi_hal_clear_wakeup_status(void);
|
||||||
|
|
||||||
#endif // (SOC_USB_UTMI_PHY_NUM > 0)
|
#endif // (SOC_USB_UTMI_PHY_NUM > 0)
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@@ -28,6 +28,16 @@ void usb_utmi_hal_enable_data_pulldowns(bool enable)
|
|||||||
usb_utmi_ll_enable_data_pulldowns(enable);
|
usb_utmi_ll_enable_data_pulldowns(enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void usb_utmi_hal_set_suspend_state(bool in_suspend)
|
||||||
|
{
|
||||||
|
usb_utmi_ll_set_suspend_state(in_suspend);
|
||||||
|
}
|
||||||
|
|
||||||
|
void usb_utmi_hal_clear_wakeup_status(void)
|
||||||
|
{
|
||||||
|
usb_utmi_ll_clear_wakeup_status();
|
||||||
|
}
|
||||||
|
|
||||||
void _usb_utmi_hal_disable(void)
|
void _usb_utmi_hal_disable(void)
|
||||||
{
|
{
|
||||||
_usb_utmi_ll_enable_bus_clock(false);
|
_usb_utmi_ll_enable_bus_clock(false);
|
||||||
|
|||||||
Reference in New Issue
Block a user