mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 03:00:34 +03:00
refactor(hal_usb): move USB Serial JTAG HAL from hal component
This commit is contained in:
@@ -12,7 +12,7 @@ endif()
|
|||||||
if(${target} STREQUAL "linux")
|
if(${target} STREQUAL "linux")
|
||||||
set(priv_requires esp_ringbuf esp_timer)
|
set(priv_requires esp_ringbuf esp_timer)
|
||||||
else()
|
else()
|
||||||
set(priv_requires esp_driver_gpio esp_ringbuf esp_pm esp_timer)
|
set(priv_requires esp_driver_gpio esp_ringbuf esp_pm esp_timer esp_hal_usb)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
idf_component_register(SRCS ${srcs}
|
idf_component_register(SRCS ${srcs}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ components/esp_driver_usb_serial_jtag/test_apps/usb_serial_jtag:
|
|||||||
- vfs
|
- vfs
|
||||||
- esp_driver_gpio
|
- esp_driver_gpio
|
||||||
- esp_driver_usb_serial_jtag
|
- esp_driver_usb_serial_jtag
|
||||||
|
- esp_hal_usb
|
||||||
|
|
||||||
components/esp_driver_usb_serial_jtag/test_apps/usb_serial_jtag_vfs:
|
components/esp_driver_usb_serial_jtag/test_apps/usb_serial_jtag_vfs:
|
||||||
disable:
|
disable:
|
||||||
@@ -28,3 +29,4 @@ components/esp_driver_usb_serial_jtag/test_apps/usb_serial_jtag_vfs:
|
|||||||
depends_components:
|
depends_components:
|
||||||
- vfs
|
- vfs
|
||||||
- esp_driver_usb_serial_jtag
|
- esp_driver_usb_serial_jtag
|
||||||
|
- esp_hal_usb
|
||||||
|
|||||||
@@ -7,10 +7,13 @@ endif()
|
|||||||
set(includes "include")
|
set(includes "include")
|
||||||
set(srcs)
|
set(srcs)
|
||||||
|
|
||||||
|
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/${target}/include")
|
||||||
|
list(APPEND includes "${target}/include")
|
||||||
|
endif()
|
||||||
|
|
||||||
# USB-DWC related source files and USB FSLS PHY wrapper
|
# USB-DWC related source files and USB FSLS PHY wrapper
|
||||||
if(CONFIG_SOC_USB_OTG_SUPPORTED)
|
if(CONFIG_SOC_USB_OTG_SUPPORTED)
|
||||||
list(APPEND srcs "usb_dwc_hal.c" "usb_wrap_hal.c" "${target}/usb_dwc_periph.c")
|
list(APPEND srcs "usb_dwc_hal.c" "usb_wrap_hal.c" "${target}/usb_dwc_periph.c")
|
||||||
list(APPEND includes "${target}/include")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# USB UTMI PHY
|
# USB UTMI PHY
|
||||||
@@ -18,6 +21,11 @@ if(CONFIG_SOC_USB_UTMI_PHY_NUM GREATER 0)
|
|||||||
list(APPEND srcs "usb_utmi_hal.c")
|
list(APPEND srcs "usb_utmi_hal.c")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# USB Serial JTAG
|
||||||
|
if(CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED)
|
||||||
|
list(APPEND srcs "usb_serial_jtag_hal.c")
|
||||||
|
endif()
|
||||||
|
|
||||||
idf_component_register(SRCS ${srcs}
|
idf_component_register(SRCS ${srcs}
|
||||||
INCLUDE_DIRS ${includes}
|
INCLUDE_DIRS ${includes}
|
||||||
REQUIRES soc hal)
|
REQUIRES soc hal)
|
||||||
|
|||||||
@@ -19,18 +19,16 @@ The USB HAL is structured in two main sub-layers:
|
|||||||
|
|
||||||
This HAL supports various USB controller and PHY types depending on the ESP chip:
|
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:
|
- **USB-DWC (DesignWare USB Controller)**: The main USB OTG controller supporting USB Host and Device modes
|
||||||
- ESP32-S2
|
|
||||||
- ESP32-S3
|
- **USB Serial JTAG**: A special USB peripheral that combines USB CDC-ACM functionality with JTAG debugging capabilities
|
||||||
- ESP32-H4
|
|
||||||
- ESP32-P4
|
|
||||||
|
|
||||||
- **USB WRAP**: A wrapper/peripheral controller that provides additional USB functionality and GPIO matrix integration
|
- **USB WRAP**: A wrapper/peripheral controller that provides additional USB functionality and GPIO matrix integration
|
||||||
|
|
||||||
- **USB PHY Types**:
|
- **USB PHY Types**:
|
||||||
- **FSLS (Full Speed/Low Speed) Internal PHY**: Built-in PHY supporting USB Full Speed and Low Speed operation
|
- **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
|
- **FSLS External PHY**: Support for external FSLS PHY via GPIO matrix
|
||||||
- **UTMI PHY**: UTMI+ compliant PHY interface (available on ESP32-P4)
|
- **UTMI PHY**: UTMI+ compliant PHY interface for High Speed USB support
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
|||||||
+7
-5
@@ -31,7 +31,6 @@ typedef enum {
|
|||||||
USB_SERIAL_JTAG_INTR_EP1_ZERO_PAYLOAD = (1 << 10),
|
USB_SERIAL_JTAG_INTR_EP1_ZERO_PAYLOAD = (1 << 10),
|
||||||
} usb_serial_jtag_ll_intr_t;
|
} usb_serial_jtag_ll_intr_t;
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@@ -116,7 +115,9 @@ static inline int usb_serial_jtag_ll_read_rxfifo(uint8_t *buf, uint32_t rd_len)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < (int)rd_len; i++) {
|
for (i = 0; i < (int)rd_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.ep1_conf.serial_out_ep_data_avail) break;
|
if (!USB_SERIAL_JTAG.ep1_conf.serial_out_ep_data_avail) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
buf[i] = USB_SERIAL_JTAG.ep1.rdwr_byte;
|
buf[i] = USB_SERIAL_JTAG.ep1.rdwr_byte;
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -135,7 +136,9 @@ static inline int usb_serial_jtag_ll_write_txfifo(const uint8_t *buf, uint32_t w
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < (int)wr_len; i++) {
|
for (i = 0; i < (int)wr_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.ep1_conf.serial_in_ep_data_free) break;
|
if (!USB_SERIAL_JTAG.ep1_conf.serial_in_ep_data_free) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
USB_SERIAL_JTAG.ep1.rdwr_byte = buf[i];
|
USB_SERIAL_JTAG.ep1.rdwr_byte = buf[i];
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -178,7 +181,7 @@ static inline int usb_serial_jtag_ll_txfifo_writable(void)
|
|||||||
*/
|
*/
|
||||||
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
||||||
{
|
{
|
||||||
USB_SERIAL_JTAG.ep1_conf.wr_done=1;
|
USB_SERIAL_JTAG.ep1_conf.wr_done = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------- USB PHY Control ---------------------------- */
|
/* ---------------------------- USB PHY Control ---------------------------- */
|
||||||
@@ -335,7 +338,6 @@ FORCE_INLINE_ATTR bool usb_serial_jtag_ll_module_is_enabled(void)
|
|||||||
usb_serial_jtag_ll_module_is_enabled(__VA_ARGS__); \
|
usb_serial_jtag_ll_module_is_enabled(__VA_ARGS__); \
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
+7
-3
@@ -115,7 +115,9 @@ static inline int usb_serial_jtag_ll_read_rxfifo(uint8_t *buf, uint32_t rd_len)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < (int)rd_len; i++) {
|
for (i = 0; i < (int)rd_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.ep1_conf.serial_out_ep_data_avail) break;
|
if (!USB_SERIAL_JTAG.ep1_conf.serial_out_ep_data_avail) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
buf[i] = USB_SERIAL_JTAG.ep1.val;
|
buf[i] = USB_SERIAL_JTAG.ep1.val;
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -134,7 +136,9 @@ static inline int usb_serial_jtag_ll_write_txfifo(const uint8_t *buf, uint32_t w
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < (int)wr_len; i++) {
|
for (i = 0; i < (int)wr_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.ep1_conf.serial_in_ep_data_free) break;
|
if (!USB_SERIAL_JTAG.ep1_conf.serial_in_ep_data_free) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
USB_SERIAL_JTAG.ep1.val = buf[i];
|
USB_SERIAL_JTAG.ep1.val = buf[i];
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -177,7 +181,7 @@ static inline int usb_serial_jtag_ll_txfifo_writable(void)
|
|||||||
*/
|
*/
|
||||||
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
||||||
{
|
{
|
||||||
USB_SERIAL_JTAG.ep1_conf.wr_done=1;
|
USB_SERIAL_JTAG.ep1_conf.wr_done = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+7
-4
@@ -31,7 +31,6 @@ typedef enum {
|
|||||||
USB_SERIAL_JTAG_INTR_EP1_ZERO_PAYLOAD = (1 << 10),
|
USB_SERIAL_JTAG_INTR_EP1_ZERO_PAYLOAD = (1 << 10),
|
||||||
} usb_serial_jtag_ll_intr_t;
|
} usb_serial_jtag_ll_intr_t;
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@@ -116,7 +115,9 @@ static inline int usb_serial_jtag_ll_read_rxfifo(uint8_t *buf, uint32_t rd_len)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < (int)rd_len; i++) {
|
for (i = 0; i < (int)rd_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.ep1_conf.serial_out_ep_data_avail) break;
|
if (!USB_SERIAL_JTAG.ep1_conf.serial_out_ep_data_avail) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
buf[i] = USB_SERIAL_JTAG.ep1.rdwr_byte;
|
buf[i] = USB_SERIAL_JTAG.ep1.rdwr_byte;
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -135,7 +136,9 @@ static inline int usb_serial_jtag_ll_write_txfifo(const uint8_t *buf, uint32_t w
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < (int)wr_len; i++) {
|
for (i = 0; i < (int)wr_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.ep1_conf.serial_in_ep_data_free) break;
|
if (!USB_SERIAL_JTAG.ep1_conf.serial_in_ep_data_free) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
USB_SERIAL_JTAG.ep1.rdwr_byte = buf[i];
|
USB_SERIAL_JTAG.ep1.rdwr_byte = buf[i];
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -178,7 +181,7 @@ static inline int usb_serial_jtag_ll_txfifo_writable(void)
|
|||||||
*/
|
*/
|
||||||
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
||||||
{
|
{
|
||||||
USB_SERIAL_JTAG.ep1_conf.wr_done=1;
|
USB_SERIAL_JTAG.ep1_conf.wr_done = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+7
-3
@@ -115,7 +115,9 @@ static inline int usb_serial_jtag_ll_read_rxfifo(uint8_t *buf, uint32_t rd_len)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < (int)rd_len; i++) {
|
for (i = 0; i < (int)rd_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.ep1_conf.serial_out_ep_data_avail) break;
|
if (!USB_SERIAL_JTAG.ep1_conf.serial_out_ep_data_avail) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
buf[i] = USB_SERIAL_JTAG.ep1.val;
|
buf[i] = USB_SERIAL_JTAG.ep1.val;
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -134,7 +136,9 @@ static inline int usb_serial_jtag_ll_write_txfifo(const uint8_t *buf, uint32_t w
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < (int)wr_len; i++) {
|
for (i = 0; i < (int)wr_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.ep1_conf.serial_in_ep_data_free) break;
|
if (!USB_SERIAL_JTAG.ep1_conf.serial_in_ep_data_free) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
USB_SERIAL_JTAG.ep1.val = buf[i];
|
USB_SERIAL_JTAG.ep1.val = buf[i];
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -177,7 +181,7 @@ static inline int usb_serial_jtag_ll_txfifo_writable(void)
|
|||||||
*/
|
*/
|
||||||
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
||||||
{
|
{
|
||||||
USB_SERIAL_JTAG.ep1_conf.wr_done=1;
|
USB_SERIAL_JTAG.ep1_conf.wr_done = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+7
-4
@@ -31,7 +31,6 @@ typedef enum {
|
|||||||
USB_SERIAL_JTAG_INTR_EP1_ZERO_PAYLOAD = (1 << 10),
|
USB_SERIAL_JTAG_INTR_EP1_ZERO_PAYLOAD = (1 << 10),
|
||||||
} usb_serial_jtag_ll_intr_t;
|
} usb_serial_jtag_ll_intr_t;
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@@ -116,7 +115,9 @@ static inline int usb_serial_jtag_ll_read_rxfifo(uint8_t *buf, uint32_t rd_len)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < (int)rd_len; i++) {
|
for (i = 0; i < (int)rd_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.ep1_conf.serial_out_ep_data_avail) break;
|
if (!USB_SERIAL_JTAG.ep1_conf.serial_out_ep_data_avail) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
buf[i] = USB_SERIAL_JTAG.ep1.rdwr_byte;
|
buf[i] = USB_SERIAL_JTAG.ep1.rdwr_byte;
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -135,7 +136,9 @@ static inline int usb_serial_jtag_ll_write_txfifo(const uint8_t *buf, uint32_t w
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < (int)wr_len; i++) {
|
for (i = 0; i < (int)wr_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.ep1_conf.serial_in_ep_data_free) break;
|
if (!USB_SERIAL_JTAG.ep1_conf.serial_in_ep_data_free) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
USB_SERIAL_JTAG.ep1.rdwr_byte = buf[i];
|
USB_SERIAL_JTAG.ep1.rdwr_byte = buf[i];
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -178,7 +181,7 @@ static inline int usb_serial_jtag_ll_txfifo_writable(void)
|
|||||||
*/
|
*/
|
||||||
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
||||||
{
|
{
|
||||||
USB_SERIAL_JTAG.ep1_conf.wr_done=1;
|
USB_SERIAL_JTAG.ep1_conf.wr_done = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+7
-6
@@ -31,7 +31,6 @@ typedef enum {
|
|||||||
USB_SERIAL_JTAG_INTR_EP1_ZERO_PAYLOAD = (1 << 10),
|
USB_SERIAL_JTAG_INTR_EP1_ZERO_PAYLOAD = (1 << 10),
|
||||||
} usb_serial_jtag_ll_intr_t;
|
} usb_serial_jtag_ll_intr_t;
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@@ -116,7 +115,9 @@ static inline int usb_serial_jtag_ll_read_rxfifo(uint8_t *buf, uint32_t rd_len)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < (int)rd_len; i++) {
|
for (i = 0; i < (int)rd_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.serial_jtag_ep1_conf.serial_jtag_serial_out_ep_data_avail) break;
|
if (!USB_SERIAL_JTAG.serial_jtag_ep1_conf.serial_jtag_serial_out_ep_data_avail) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
buf[i] = USB_SERIAL_JTAG.serial_jtag_ep1.val;
|
buf[i] = USB_SERIAL_JTAG.serial_jtag_ep1.val;
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -135,7 +136,9 @@ static inline int usb_serial_jtag_ll_write_txfifo(const uint8_t *buf, uint32_t w
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < (int)wr_len; i++) {
|
for (i = 0; i < (int)wr_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.serial_jtag_ep1_conf.serial_jtag_serial_in_ep_data_free) break;
|
if (!USB_SERIAL_JTAG.serial_jtag_ep1_conf.serial_jtag_serial_in_ep_data_free) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
USB_SERIAL_JTAG.serial_jtag_ep1.val = buf[i];
|
USB_SERIAL_JTAG.serial_jtag_ep1.val = buf[i];
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -178,7 +181,7 @@ static inline int usb_serial_jtag_ll_txfifo_writable(void)
|
|||||||
*/
|
*/
|
||||||
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
||||||
{
|
{
|
||||||
USB_SERIAL_JTAG.serial_jtag_ep1_conf.serial_jtag_wr_done=1;
|
USB_SERIAL_JTAG.serial_jtag_ep1_conf.serial_jtag_wr_done = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -328,8 +331,6 @@ FORCE_INLINE_ATTR bool usb_serial_jtag_ll_module_is_enabled(void)
|
|||||||
return (PCR.usb_device_conf.usb_device_clk_en && !PCR.usb_device_conf.usb_device_rst_en);
|
return (PCR.usb_device_conf.usb_device_clk_en && !PCR.usb_device_conf.usb_device_rst_en);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
+7
-6
@@ -31,7 +31,6 @@ typedef enum {
|
|||||||
USB_SERIAL_JTAG_INTR_EP1_ZERO_PAYLOAD = (1 << 10),
|
USB_SERIAL_JTAG_INTR_EP1_ZERO_PAYLOAD = (1 << 10),
|
||||||
} usb_serial_jtag_ll_intr_t;
|
} usb_serial_jtag_ll_intr_t;
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@@ -116,7 +115,9 @@ static inline int usb_serial_jtag_ll_read_rxfifo(uint8_t *buf, uint32_t rd_len)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < (int)rd_len; i++) {
|
for (i = 0; i < (int)rd_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.serial_jtag_ep1_conf.serial_jtag_serial_out_ep_data_avail) break;
|
if (!USB_SERIAL_JTAG.serial_jtag_ep1_conf.serial_jtag_serial_out_ep_data_avail) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
buf[i] = USB_SERIAL_JTAG.serial_jtag_ep1.val;
|
buf[i] = USB_SERIAL_JTAG.serial_jtag_ep1.val;
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -135,7 +136,9 @@ static inline int usb_serial_jtag_ll_write_txfifo(const uint8_t *buf, uint32_t w
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < (int)wr_len; i++) {
|
for (i = 0; i < (int)wr_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.serial_jtag_ep1_conf.serial_jtag_serial_in_ep_data_free) break;
|
if (!USB_SERIAL_JTAG.serial_jtag_ep1_conf.serial_jtag_serial_in_ep_data_free) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
USB_SERIAL_JTAG.serial_jtag_ep1.val = buf[i];
|
USB_SERIAL_JTAG.serial_jtag_ep1.val = buf[i];
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -178,7 +181,7 @@ static inline int usb_serial_jtag_ll_txfifo_writable(void)
|
|||||||
*/
|
*/
|
||||||
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
||||||
{
|
{
|
||||||
USB_SERIAL_JTAG.serial_jtag_ep1_conf.serial_jtag_wr_done=1;
|
USB_SERIAL_JTAG.serial_jtag_ep1_conf.serial_jtag_wr_done = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -328,8 +331,6 @@ FORCE_INLINE_ATTR bool usb_serial_jtag_ll_module_is_enabled(void)
|
|||||||
return (PCR.usb_device_conf.usb_device_clk_en && !PCR.usb_device_conf.usb_device_rst_en);
|
return (PCR.usb_device_conf.usb_device_clk_en && !PCR.usb_device_conf.usb_device_rst_en);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
+7
-3
@@ -119,7 +119,9 @@ static inline int usb_serial_jtag_ll_read_rxfifo(uint8_t *buf, uint32_t rd_len)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < (int)rd_len; i++) {
|
for (i = 0; i < (int)rd_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.ep1_conf.serial_out_ep_data_avail) break;
|
if (!USB_SERIAL_JTAG.ep1_conf.serial_out_ep_data_avail) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
buf[i] = HAL_FORCE_READ_U32_REG_FIELD(USB_SERIAL_JTAG.ep1, rdwr_byte);
|
buf[i] = HAL_FORCE_READ_U32_REG_FIELD(USB_SERIAL_JTAG.ep1, rdwr_byte);
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -138,7 +140,9 @@ static inline int usb_serial_jtag_ll_write_txfifo(const uint8_t *buf, uint32_t w
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < (int)wr_len; i++) {
|
for (i = 0; i < (int)wr_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.ep1_conf.serial_in_ep_data_free) break;
|
if (!USB_SERIAL_JTAG.ep1_conf.serial_in_ep_data_free) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
HAL_FORCE_MODIFY_U32_REG_FIELD(USB_SERIAL_JTAG.ep1, rdwr_byte, buf[i]);
|
HAL_FORCE_MODIFY_U32_REG_FIELD(USB_SERIAL_JTAG.ep1, rdwr_byte, buf[i]);
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -181,7 +185,7 @@ static inline int usb_serial_jtag_ll_txfifo_writable(void)
|
|||||||
*/
|
*/
|
||||||
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
||||||
{
|
{
|
||||||
USB_SERIAL_JTAG.ep1_conf.wr_done=1;
|
USB_SERIAL_JTAG.ep1_conf.wr_done = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+7
-4
@@ -33,7 +33,6 @@ typedef enum {
|
|||||||
USB_SERIAL_JTAG_INTR_EP1_ZERO_PAYLOAD = (1 << 10),
|
USB_SERIAL_JTAG_INTR_EP1_ZERO_PAYLOAD = (1 << 10),
|
||||||
} usb_serial_jtag_intr_t;
|
} usb_serial_jtag_intr_t;
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@@ -118,7 +117,9 @@ static inline uint32_t usb_serial_jtag_ll_read_rxfifo(uint8_t *buf, uint32_t rd_
|
|||||||
{
|
{
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
for (i = 0; i < rd_len; i++) {
|
for (i = 0; i < rd_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.ep1_conf.serial_out_ep_data_avail) break;
|
if (!USB_SERIAL_JTAG.ep1_conf.serial_out_ep_data_avail) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
buf[i] = USB_SERIAL_JTAG.ep1.rdwr_byte;
|
buf[i] = USB_SERIAL_JTAG.ep1.rdwr_byte;
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -137,7 +138,9 @@ static inline uint32_t usb_serial_jtag_ll_write_txfifo(const uint8_t *buf, uint3
|
|||||||
{
|
{
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
for (i = 0; i < wr_len; i++) {
|
for (i = 0; i < wr_len; i++) {
|
||||||
if (!USB_SERIAL_JTAG.ep1_conf.serial_in_ep_data_free) break;
|
if (!USB_SERIAL_JTAG.ep1_conf.serial_in_ep_data_free) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
USB_SERIAL_JTAG.ep1.rdwr_byte = buf[i];
|
USB_SERIAL_JTAG.ep1.rdwr_byte = buf[i];
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
@@ -180,7 +183,7 @@ static inline int usb_serial_jtag_ll_txfifo_writable(void)
|
|||||||
*/
|
*/
|
||||||
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
static inline void usb_serial_jtag_ll_txfifo_flush(void)
|
||||||
{
|
{
|
||||||
USB_SERIAL_JTAG.ep1_conf.wr_done=1;
|
USB_SERIAL_JTAG.ep1_conf.wr_done = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -220,10 +220,6 @@ elseif(NOT BOOTLOADER_BUILD)
|
|||||||
list(APPEND srcs "ds_hal.c")
|
list(APPEND srcs "ds_hal.c")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED)
|
|
||||||
list(APPEND srcs "usb_serial_jtag_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)
|
||||||
|
|||||||
Reference in New Issue
Block a user