mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 11:10:54 +03:00
refactor(usb): Make usb hal layer independent
This commit is contained in:
@@ -0,0 +1,23 @@
|
|||||||
|
idf_build_get_property(target IDF_TARGET)
|
||||||
|
|
||||||
|
if(${target} STREQUAL "linux")
|
||||||
|
return() # This component is not supported by the POSIX/Linux simulator
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(includes "include")
|
||||||
|
set(srcs)
|
||||||
|
|
||||||
|
# USB-DWC related source files and USB FSLS PHY wrapper
|
||||||
|
if(CONFIG_SOC_USB_OTG_SUPPORTED)
|
||||||
|
list(APPEND srcs "usb_dwc_hal.c" "usb_wrap_hal.c" "${target}/usb_dwc_periph.c")
|
||||||
|
list(APPEND includes "${target}/include")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# USB UTMI PHY
|
||||||
|
if(CONFIG_SOC_USB_UTMI_PHY_NUM GREATER 0)
|
||||||
|
list(APPEND srcs "usb_utmi_hal.c")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
idf_component_register(SRCS ${srcs}
|
||||||
|
INCLUDE_DIRS ${includes}
|
||||||
|
REQUIRES soc hal)
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
# ESP Hardware Abstraction Layer for USB Peripheral(s)
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> This component is currently in beta. Its API, behavior, and compatibility may change at any time and without notice; backward compatibility is not guaranteed. Use caution when integrating into production systems.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The `esp_hal_usb` component provides a **Hardware Abstraction Layer** for USB controllers and PHYs across all ESP-IDF supported targets. USB (Universal Serial Bus) enables communication between the ESP device and USB hosts or devices, supporting various USB speeds and transfer types for data exchange.
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
The USB HAL is structured in two main sub-layers:
|
||||||
|
|
||||||
|
1. **HAL Layer (Upper)**: Defines the operational steps and data structures required to control USB peripherals (e.g., initialization, endpoint configuration, transfer management, PHY control).
|
||||||
|
|
||||||
|
2. **Low-Level Layer (Bottom)**: Serves as a translation layer between the HAL and the register files defined in the `soc` component, handling target-specific register configurations.
|
||||||
|
|
||||||
|
## Supported USB Controllers and PHYs
|
||||||
|
|
||||||
|
This HAL supports various USB controller and PHY types depending on the ESP chip:
|
||||||
|
|
||||||
|
- **USB-DWC (DesignWare USB Controller)**: The main USB OTG controller available on:
|
||||||
|
- ESP32-S2
|
||||||
|
- ESP32-S3
|
||||||
|
- ESP32-H4
|
||||||
|
- ESP32-P4
|
||||||
|
|
||||||
|
- **USB WRAP**: A wrapper/peripheral controller that provides additional USB functionality and GPIO matrix integration
|
||||||
|
|
||||||
|
- **USB PHY Types**:
|
||||||
|
- **FSLS (Full Speed/Low Speed) Internal PHY**: Built-in PHY supporting USB Full Speed and Low Speed operation
|
||||||
|
- **FSLS External PHY**: Support for external FSLS PHY via GPIO matrix
|
||||||
|
- **UTMI PHY**: UTMI+ compliant PHY interface (available on ESP32-P4)
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- USB controller initialization and configuration
|
||||||
|
- Endpoint management (IN/OUT endpoints)
|
||||||
|
- Transfer type support (Control, Bulk, Interrupt, Isochronous)
|
||||||
|
- USB speed detection and configuration (High Speed, Full Speed, Low Speed)
|
||||||
|
- FIFO configuration and management
|
||||||
|
- PHY initialization and control (FSLS and UTMI)
|
||||||
|
- GPIO matrix signal routing for USB PHY interfaces
|
||||||
|
- OTG (On-The-Go) signal handling
|
||||||
|
- Interrupt management and event handling
|
||||||
|
- Multi-controller support (on chips with multiple USB controllers)
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
The HAL functions primarily serve ESP-IDF USB drivers, primarily the [USB Host stack](https://components.espressif.com/components/espressif/usb).
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
- `soc`: Provides chip-specific register definitions
|
||||||
|
- `hal`: Core hardware abstraction utilities and macros
|
||||||
+12
-13
@@ -165,7 +165,6 @@ typedef struct {
|
|||||||
uint8_t *buffer;
|
uint8_t *buffer;
|
||||||
} usb_dwc_ll_dma_qtd_t;
|
} usb_dwc_ll_dma_qtd_t;
|
||||||
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
------------------------------- Global Registers -------------------------------
|
------------------------------- Global Registers -------------------------------
|
||||||
----------------------------------------------------------------------------- */
|
----------------------------------------------------------------------------- */
|
||||||
@@ -401,18 +400,18 @@ static inline void usb_dwc_ll_hcfg_set_num_frame_list_entries(usb_dwc_dev_t *hw,
|
|||||||
{
|
{
|
||||||
uint32_t frlisten;
|
uint32_t frlisten;
|
||||||
switch (num_entries) {
|
switch (num_entries) {
|
||||||
case USB_HAL_FRAME_LIST_LEN_8:
|
case USB_HAL_FRAME_LIST_LEN_8:
|
||||||
frlisten = 0;
|
frlisten = 0;
|
||||||
break;
|
break;
|
||||||
case USB_HAL_FRAME_LIST_LEN_16:
|
case USB_HAL_FRAME_LIST_LEN_16:
|
||||||
frlisten = 1;
|
frlisten = 1;
|
||||||
break;
|
break;
|
||||||
case USB_HAL_FRAME_LIST_LEN_32:
|
case USB_HAL_FRAME_LIST_LEN_32:
|
||||||
frlisten = 2;
|
frlisten = 2;
|
||||||
break;
|
break;
|
||||||
default: //USB_HAL_FRAME_LIST_LEN_64
|
default: //USB_HAL_FRAME_LIST_LEN_64
|
||||||
frlisten = 3;
|
frlisten = 3;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
hw->hcfg_reg.frlisten = frlisten;
|
hw->hcfg_reg.frlisten = frlisten;
|
||||||
}
|
}
|
||||||
+3
-4
@@ -17,7 +17,6 @@
|
|||||||
|
|
||||||
#define USB_WRAP_LL_EXT_PHY_SUPPORTED 0 // Cannot route to an external FSLS PHY
|
#define USB_WRAP_LL_EXT_PHY_SUPPORTED 0 // Cannot route to an external FSLS PHY
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@@ -70,11 +69,11 @@ FORCE_INLINE_ATTR void usb_wrap_ll_phy_disable_srp_sessend_override(usb_wrap_dev
|
|||||||
FORCE_INLINE_ATTR void usb_wrap_ll_phy_enable_pin_exchg(usb_wrap_dev_t *hw, bool enable)
|
FORCE_INLINE_ATTR void usb_wrap_ll_phy_enable_pin_exchg(usb_wrap_dev_t *hw, bool enable)
|
||||||
{
|
{
|
||||||
if (enable) {
|
if (enable) {
|
||||||
hw->wrap_otg_conf.wrap_exchg_pins = 1;
|
hw->wrap_otg_conf.wrap_exchg_pins = 1;
|
||||||
hw->wrap_otg_conf.wrap_exchg_pins_override = 1;
|
hw->wrap_otg_conf.wrap_exchg_pins_override = 1;
|
||||||
} else {
|
} else {
|
||||||
hw->wrap_otg_conf.wrap_exchg_pins_override = 0;
|
hw->wrap_otg_conf.wrap_exchg_pins_override = 0;
|
||||||
hw->wrap_otg_conf.wrap_exchg_pins = 0;
|
hw->wrap_otg_conf.wrap_exchg_pins = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+31
-32
@@ -166,7 +166,6 @@ typedef struct {
|
|||||||
uint8_t *buffer;
|
uint8_t *buffer;
|
||||||
} usb_dwc_ll_dma_qtd_t;
|
} usb_dwc_ll_dma_qtd_t;
|
||||||
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
------------------------------- Global Registers -------------------------------
|
------------------------------- Global Registers -------------------------------
|
||||||
----------------------------------------------------------------------------- */
|
----------------------------------------------------------------------------- */
|
||||||
@@ -423,18 +422,18 @@ static inline void usb_dwc_ll_hcfg_set_num_frame_list_entries(usb_dwc_dev_t *hw,
|
|||||||
{
|
{
|
||||||
uint32_t frlisten;
|
uint32_t frlisten;
|
||||||
switch (num_entries) {
|
switch (num_entries) {
|
||||||
case USB_HAL_FRAME_LIST_LEN_8:
|
case USB_HAL_FRAME_LIST_LEN_8:
|
||||||
frlisten = 0;
|
frlisten = 0;
|
||||||
break;
|
break;
|
||||||
case USB_HAL_FRAME_LIST_LEN_16:
|
case USB_HAL_FRAME_LIST_LEN_16:
|
||||||
frlisten = 1;
|
frlisten = 1;
|
||||||
break;
|
break;
|
||||||
case USB_HAL_FRAME_LIST_LEN_32:
|
case USB_HAL_FRAME_LIST_LEN_32:
|
||||||
frlisten = 2;
|
frlisten = 2;
|
||||||
break;
|
break;
|
||||||
default: //USB_HAL_FRAME_LIST_LEN_64
|
default: //USB_HAL_FRAME_LIST_LEN_64
|
||||||
frlisten = 3;
|
frlisten = 3;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
hw->hcfg_reg.frlisten = frlisten;
|
hw->hcfg_reg.frlisten = frlisten;
|
||||||
}
|
}
|
||||||
@@ -862,25 +861,25 @@ static inline void usb_dwc_ll_hctsiz_set_sched_info(volatile usb_dwc_host_chan_r
|
|||||||
hctsiz.val = chan->hctsiz_reg.val;
|
hctsiz.val = chan->hctsiz_reg.val;
|
||||||
uint8_t sched_info_val;
|
uint8_t sched_info_val;
|
||||||
switch (tokens_per_frame) {
|
switch (tokens_per_frame) {
|
||||||
case 1:
|
case 1:
|
||||||
offset %= 8; // If the required offset > 8, we must wrap around to SCHED_INFO size = 8
|
offset %= 8; // If the required offset > 8, we must wrap around to SCHED_INFO size = 8
|
||||||
sched_info_val = 0b00000001;
|
sched_info_val = 0b00000001;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
offset %= 4;
|
offset %= 4;
|
||||||
sched_info_val = 0b00010001;
|
sched_info_val = 0b00010001;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
offset %= 2;
|
offset %= 2;
|
||||||
sched_info_val = 0b01010101;
|
sched_info_val = 0b01010101;
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
offset = 0;
|
offset = 0;
|
||||||
sched_info_val = 0b11111111;
|
sched_info_val = 0b11111111;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
abort();
|
abort();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
sched_info_val <<= offset;
|
sched_info_val <<= offset;
|
||||||
hctsiz.xfersize &= ~(0xFF);
|
hctsiz.xfersize &= ~(0xFF);
|
||||||
-1
@@ -19,7 +19,6 @@
|
|||||||
|
|
||||||
#define USB_WRAP_LL_SELECT_PHY_SUPPORTED 1 // Can swap to another internal FSLS PHY
|
#define USB_WRAP_LL_SELECT_PHY_SUPPORTED 1 // Can swap to another internal FSLS PHY
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
+12
-13
@@ -165,7 +165,6 @@ typedef struct {
|
|||||||
uint8_t *buffer;
|
uint8_t *buffer;
|
||||||
} usb_dwc_ll_dma_qtd_t;
|
} usb_dwc_ll_dma_qtd_t;
|
||||||
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
------------------------------- Global Registers -------------------------------
|
------------------------------- Global Registers -------------------------------
|
||||||
----------------------------------------------------------------------------- */
|
----------------------------------------------------------------------------- */
|
||||||
@@ -399,18 +398,18 @@ static inline void usb_dwc_ll_hcfg_set_num_frame_list_entries(usb_dwc_dev_t *hw,
|
|||||||
{
|
{
|
||||||
uint32_t frlisten;
|
uint32_t frlisten;
|
||||||
switch (num_entries) {
|
switch (num_entries) {
|
||||||
case USB_HAL_FRAME_LIST_LEN_8:
|
case USB_HAL_FRAME_LIST_LEN_8:
|
||||||
frlisten = 0;
|
frlisten = 0;
|
||||||
break;
|
break;
|
||||||
case USB_HAL_FRAME_LIST_LEN_16:
|
case USB_HAL_FRAME_LIST_LEN_16:
|
||||||
frlisten = 1;
|
frlisten = 1;
|
||||||
break;
|
break;
|
||||||
case USB_HAL_FRAME_LIST_LEN_32:
|
case USB_HAL_FRAME_LIST_LEN_32:
|
||||||
frlisten = 2;
|
frlisten = 2;
|
||||||
break;
|
break;
|
||||||
default: //USB_HAL_FRAME_LIST_LEN_64
|
default: //USB_HAL_FRAME_LIST_LEN_64
|
||||||
frlisten = 3;
|
frlisten = 3;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
hw->hcfg_reg.frlisten = frlisten;
|
hw->hcfg_reg.frlisten = frlisten;
|
||||||
}
|
}
|
||||||
-1
@@ -17,7 +17,6 @@
|
|||||||
|
|
||||||
#define USB_WRAP_LL_EXT_PHY_SUPPORTED 1 // Can route to an external FSLS PHY
|
#define USB_WRAP_LL_EXT_PHY_SUPPORTED 1 // Can route to an external FSLS PHY
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
+12
-13
@@ -165,7 +165,6 @@ typedef struct {
|
|||||||
uint8_t *buffer;
|
uint8_t *buffer;
|
||||||
} usb_dwc_ll_dma_qtd_t;
|
} usb_dwc_ll_dma_qtd_t;
|
||||||
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
------------------------------- Global Registers -------------------------------
|
------------------------------- Global Registers -------------------------------
|
||||||
----------------------------------------------------------------------------- */
|
----------------------------------------------------------------------------- */
|
||||||
@@ -399,18 +398,18 @@ static inline void usb_dwc_ll_hcfg_set_num_frame_list_entries(usb_dwc_dev_t *hw,
|
|||||||
{
|
{
|
||||||
uint32_t frlisten;
|
uint32_t frlisten;
|
||||||
switch (num_entries) {
|
switch (num_entries) {
|
||||||
case USB_HAL_FRAME_LIST_LEN_8:
|
case USB_HAL_FRAME_LIST_LEN_8:
|
||||||
frlisten = 0;
|
frlisten = 0;
|
||||||
break;
|
break;
|
||||||
case USB_HAL_FRAME_LIST_LEN_16:
|
case USB_HAL_FRAME_LIST_LEN_16:
|
||||||
frlisten = 1;
|
frlisten = 1;
|
||||||
break;
|
break;
|
||||||
case USB_HAL_FRAME_LIST_LEN_32:
|
case USB_HAL_FRAME_LIST_LEN_32:
|
||||||
frlisten = 2;
|
frlisten = 2;
|
||||||
break;
|
break;
|
||||||
default: //USB_HAL_FRAME_LIST_LEN_64
|
default: //USB_HAL_FRAME_LIST_LEN_64
|
||||||
frlisten = 3;
|
frlisten = 3;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
hw->hcfg_reg.frlisten = frlisten;
|
hw->hcfg_reg.frlisten = frlisten;
|
||||||
}
|
}
|
||||||
-1
@@ -18,7 +18,6 @@
|
|||||||
|
|
||||||
#define USB_WRAP_LL_EXT_PHY_SUPPORTED 1 // Can route to an external FSLS PHY
|
#define USB_WRAP_LL_EXT_PHY_SUPPORTED 1 // Can route to an external FSLS PHY
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
+6
-7
@@ -263,7 +263,6 @@ void usb_dwc_hal_core_soft_reset(usb_dwc_hal_context_t *hal);
|
|||||||
*/
|
*/
|
||||||
bool usb_dwc_hal_fifo_config_is_valid(const usb_dwc_hal_context_t *hal, const usb_dwc_hal_fifo_config_t *config);
|
bool usb_dwc_hal_fifo_config_is_valid(const usb_dwc_hal_context_t *hal, const usb_dwc_hal_fifo_config_t *config);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set the FIFO sizes of the USB-DWC core
|
* @brief Set the FIFO sizes of the USB-DWC core
|
||||||
*
|
*
|
||||||
@@ -819,14 +818,14 @@ static inline void usb_dwc_hal_xfer_desc_fill(void *desc_list, uint32_t desc_idx
|
|||||||
usb_dwc_ll_dma_qtd_t *qtd_list = (usb_dwc_ll_dma_qtd_t *)desc_list;
|
usb_dwc_ll_dma_qtd_t *qtd_list = (usb_dwc_ll_dma_qtd_t *)desc_list;
|
||||||
if (flags & USB_DWC_HAL_XFER_DESC_FLAG_IN) {
|
if (flags & USB_DWC_HAL_XFER_DESC_FLAG_IN) {
|
||||||
usb_dwc_ll_qtd_set_in(&qtd_list[desc_idx],
|
usb_dwc_ll_qtd_set_in(&qtd_list[desc_idx],
|
||||||
xfer_data_buff, xfer_len,
|
xfer_data_buff, xfer_len,
|
||||||
flags & USB_DWC_HAL_XFER_DESC_FLAG_HOC);
|
flags & USB_DWC_HAL_XFER_DESC_FLAG_HOC);
|
||||||
} else {
|
} else {
|
||||||
usb_dwc_ll_qtd_set_out(&qtd_list[desc_idx],
|
usb_dwc_ll_qtd_set_out(&qtd_list[desc_idx],
|
||||||
xfer_data_buff,
|
xfer_data_buff,
|
||||||
xfer_len,
|
xfer_len,
|
||||||
flags & USB_DWC_HAL_XFER_DESC_FLAG_HOC,
|
flags & USB_DWC_HAL_XFER_DESC_FLAG_HOC,
|
||||||
flags & USB_DWC_HAL_XFER_DESC_FLAG_SETUP);
|
flags & USB_DWC_HAL_XFER_DESC_FLAG_SETUP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -193,7 +193,6 @@ bool usb_dwc_hal_fifo_config_is_valid(const usb_dwc_hal_context_t *hal, const us
|
|||||||
return (used_lines <= hal->constant_config.fifo_size);
|
return (used_lines <= hal->constant_config.fifo_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void usb_dwc_hal_set_fifo_config(usb_dwc_hal_context_t *hal, const usb_dwc_hal_fifo_config_t *config)
|
void usb_dwc_hal_set_fifo_config(usb_dwc_hal_context_t *hal, const usb_dwc_hal_fifo_config_t *config)
|
||||||
{
|
{
|
||||||
// Check internal HAL state
|
// Check internal HAL state
|
||||||
@@ -330,12 +329,12 @@ void usb_dwc_hal_chan_set_ep_char(usb_dwc_hal_context_t *hal, usb_dwc_hal_chan_t
|
|||||||
HAL_ASSERT(!chan_obj->flags.active);
|
HAL_ASSERT(!chan_obj->flags.active);
|
||||||
//Set the endpoint characteristics of the pipe
|
//Set the endpoint characteristics of the pipe
|
||||||
usb_dwc_ll_hcchar_init(chan_obj->regs,
|
usb_dwc_ll_hcchar_init(chan_obj->regs,
|
||||||
ep_char->dev_addr,
|
ep_char->dev_addr,
|
||||||
ep_char->bEndpointAddress & BENDPOINTADDRESS_NUM_MSK,
|
ep_char->bEndpointAddress & BENDPOINTADDRESS_NUM_MSK,
|
||||||
ep_char->mps,
|
ep_char->mps,
|
||||||
ep_char->type,
|
ep_char->type,
|
||||||
ep_char->bEndpointAddress & BENDPOINTADDRESS_DIR_MSK,
|
ep_char->bEndpointAddress & BENDPOINTADDRESS_DIR_MSK,
|
||||||
ep_char->ls_via_fs_hub);
|
ep_char->ls_via_fs_hub);
|
||||||
//Save channel type
|
//Save channel type
|
||||||
chan_obj->type = ep_char->type;
|
chan_obj->type = ep_char->type;
|
||||||
//If this is a periodic endpoint/channel, set its schedule in the frame list
|
//If this is a periodic endpoint/channel, set its schedule in the frame list
|
||||||
@@ -365,7 +364,7 @@ void usb_dwc_hal_chan_set_ep_char(usb_dwc_hal_context_t *hal, usb_dwc_hal_chan_t
|
|||||||
interval_frame_list = 1;
|
interval_frame_list = 1;
|
||||||
}
|
}
|
||||||
// Schedule the channel in the frame list
|
// Schedule the channel in the frame list
|
||||||
for (int i = 0; i < hal->frame_list_len; i+= interval_frame_list) {
|
for (int i = 0; i < hal->frame_list_len; i += interval_frame_list) {
|
||||||
int index = (offset_frame_list + i) % hal->frame_list_len;
|
int index = (offset_frame_list + i) % hal->frame_list_len;
|
||||||
hal->periodic_frame_list[index] |= 1 << chan_obj->flags.chan_idx;
|
hal->periodic_frame_list[index] |= 1 << chan_obj->flags.chan_idx;
|
||||||
}
|
}
|
||||||
@@ -9,7 +9,7 @@ if(${target} STREQUAL "linux")
|
|||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(requires esp_hal_dma)
|
set(requires esp_hal_dma esp_hal_usb)
|
||||||
# only esp_hw_support/adc_share_hw_ctrl.c requires efuse component
|
# only esp_hw_support/adc_share_hw_ctrl.c requires efuse component
|
||||||
set(priv_requires efuse spi_flash bootloader_support esp_hal_wdt)
|
set(priv_requires efuse spi_flash bootloader_support esp_hal_wdt)
|
||||||
|
|
||||||
|
|||||||
@@ -231,16 +231,6 @@ elseif(NOT BOOTLOADER_BUILD)
|
|||||||
list(APPEND srcs "usb_serial_jtag_hal.c")
|
list(APPEND srcs "usb_serial_jtag_hal.c")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CONFIG_SOC_USB_UTMI_PHY_NUM GREATER 0)
|
|
||||||
list(APPEND srcs "usb_utmi_hal.c")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CONFIG_SOC_USB_OTG_SUPPORTED)
|
|
||||||
list(APPEND srcs
|
|
||||||
"usb_dwc_hal.c"
|
|
||||||
"usb_wrap_hal.c")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CONFIG_SOC_TOUCH_SENSOR_SUPPORTED)
|
if(CONFIG_SOC_TOUCH_SENSOR_SUPPORTED)
|
||||||
# Source files for the legacy touch hal driver
|
# Source files for the legacy touch hal driver
|
||||||
if(CONFIG_SOC_TOUCH_SENSOR_VERSION LESS 3)
|
if(CONFIG_SOC_TOUCH_SENSOR_VERSION LESS 3)
|
||||||
|
|||||||
@@ -154,10 +154,6 @@ if(CONFIG_SOC_IEEE802154_SUPPORTED)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CONFIG_SOC_USB_OTG_SUPPORTED)
|
|
||||||
list(APPEND srcs "${target_folder}/usb_dwc_periph.c")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CONFIG_SOC_DAC_SUPPORTED)
|
if(CONFIG_SOC_DAC_SUPPORTED)
|
||||||
list(APPEND srcs "${target_folder}/dac_periph.c")
|
list(APPEND srcs "${target_folder}/dac_periph.c")
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -566,6 +566,9 @@ examples/peripherals/usb/device:
|
|||||||
depends_components:
|
depends_components:
|
||||||
- fatfs
|
- fatfs
|
||||||
depends_filepatterns:
|
depends_filepatterns:
|
||||||
|
- components/soc/esp32*/include/soc/usb_dwc_struct.h
|
||||||
|
- components/esp_hw_support/usb_phy/usb_phy.c
|
||||||
|
- components/esp_hw_support/include/esp_private/usb_phy.h
|
||||||
- examples/peripherals/usb/device/**/*
|
- examples/peripherals/usb/device/**/*
|
||||||
|
|
||||||
examples/peripherals/usb/device/cherryusb_serial_device:
|
examples/peripherals/usb/device/cherryusb_serial_device:
|
||||||
@@ -595,14 +598,9 @@ examples/peripherals/usb/host:
|
|||||||
reason: lack of runners with usb_host_flash_disk tag
|
reason: lack of runners with usb_host_flash_disk tag
|
||||||
depends_components:
|
depends_components:
|
||||||
- fatfs
|
- fatfs
|
||||||
|
- esp_hal_usb
|
||||||
depends_filepatterns:
|
depends_filepatterns:
|
||||||
- components/hal/usb*.c
|
- components/soc/esp32*/include/soc/usb_dwc_struct.h
|
||||||
- components/hal/include/hal/usb*.h
|
|
||||||
- components/hal/esp32*/include/hal/usb*.h
|
|
||||||
- components/soc/esp32*/usb*.c
|
|
||||||
- components/soc/include/soc/usb*.h
|
|
||||||
- components/soc/esp32*/include/soc/usb_dwc_*.h
|
|
||||||
- components/soc/esp32*/include/soc/usb_wrap_*.h
|
|
||||||
- components/esp_hw_support/usb_phy/usb_phy.c
|
- components/esp_hw_support/usb_phy/usb_phy.c
|
||||||
- components/esp_hw_support/include/esp_private/usb_phy.h
|
- components/esp_hw_support/include/esp_private/usb_phy.h
|
||||||
- examples/peripherals/usb/host/**/*
|
- examples/peripherals/usb/host/**/*
|
||||||
|
|||||||
Reference in New Issue
Block a user