summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2024-08-12 22:27:57 +0800
committersakumisu <[email protected]>2024-08-12 22:28:45 +0800
commit70944027c50375cda040587980fa2e92e985f536 (patch)
tree7bb4b38fe2f81bafddf0fbb3a6031ae537a5e4fc
parenta41da8928e4eb25ee5ca14c9662ee6ef73119309 (diff)
chore: update cmake and kconfig
-rw-r--r--CMakeLists.txt147
-rw-r--r--Kconfig (renamed from Kconfig.cherryusb)4
-rw-r--r--cherryusb.cmake9
3 files changed, 156 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 00000000..57fd38bd
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,147 @@
+cmake_minimum_required(VERSION 3.15)
+
+if(DEFINED ENV{BL_SDK_BASE})
+set(CONFIG_CHERRYUSB_DEVICE 1)
+set(CONFIG_CHERRYUSB_DEVICE_CDC 1)
+set(CONFIG_CHERRYUSB_DEVICE_HID 1)
+set(CONFIG_CHERRYUSB_DEVICE_MSC 1)
+set(CONFIG_CHERRYUSB_DEVICE_VIDEO 1)
+set(CONFIG_CHERRYUSB_DEVICE_DCD "bl")
+
+set(CONFIG_CHERRYUSB_HOST 1)
+set(CONFIG_CHERRYUSB_HOST_CDC_ACM 1)
+set(CONFIG_CHERRYUSB_HOST_CDC_ECM 1)
+set(CONFIG_CHERRYUSB_HOST_CDC_NCM 1)
+set(CONFIG_CHERRYUSB_HOST_HID 1)
+set(CONFIG_CHERRYUSB_HOST_MSC 1)
+set(CONFIG_CHERRYUSB_HOST_VIDEO 1)
+set(CONFIG_CHERRYUSB_HOST_AUDIO 1)
+set(CONFIG_CHERRYUSB_HOST_CDC_RNDIS 1)
+set(CONFIG_CHERRYUSB_HOST_BLUETOOTH 1)
+set(CONFIG_CHERRYUSB_HOST_ASIX 1)
+set(CONFIG_CHERRYUSB_HOST_RTL8152 1)
+set(CONFIG_CHERRYUSB_HOST_CH34X 1)
+set(CONFIG_CHERRYUSB_HOST_CP210X 1)
+set(CONFIG_CHERRYUSB_HOST_FTDI 1)
+set(CONFIG_CHERRYUSB_HOST_PL2303 1)
+set(CONFIG_CHERRYUSB_OSAL "freertos")
+set(CONFIG_CHERRYUSB_HOST_HCD "ehci_bouffalo")
+
+include(cherryusb.cmake)
+
+sdk_generate_library(cherryusb)
+sdk_add_include_directories(${cherryusb_incs})
+sdk_library_add_sources(${cherryusb_srcs})
+
+sdk_library_add_sources(platform/none/usbh_lwip.c)
+
+elseif(DEFINED ENV{HPM_SDK_BASE})
+set(CONFIG_CHERRYUSB_HOST 1)
+set(CONFIG_CHERRYUSB_HOST_CDC_ACM 1)
+set(CONFIG_CHERRYUSB_HOST_CDC_ECM 1)
+set(CONFIG_CHERRYUSB_HOST_CDC_NCM 1)
+set(CONFIG_CHERRYUSB_HOST_HID 1)
+set(CONFIG_CHERRYUSB_HOST_MSC 1)
+set(CONFIG_CHERRYUSB_HOST_VIDEO 1)
+set(CONFIG_CHERRYUSB_HOST_AUDIO 1)
+set(CONFIG_CHERRYUSB_HOST_CDC_RNDIS 1)
+# set(CONFIG_CHERRYUSB_HOST_BLUETOOTH 1)
+set(CONFIG_CHERRYUSB_HOST_ASIX 1)
+set(CONFIG_CHERRYUSB_HOST_RTL8152 1)
+set(CONFIG_CHERRYUSB_HOST_CH34X 1)
+set(CONFIG_CHERRYUSB_HOST_CP210X 1)
+set(CONFIG_CHERRYUSB_HOST_FTDI 1)
+set(CONFIG_CHERRYUSB_HOST_PL2303 1)
+set(CONFIG_CHERRYUSB_HOST_BL616 1)
+set(CONFIG_CHERRYUSB_OSAL "freertos")
+set(CONFIG_CHERRYUSB_HOST_HCD "ehci_hpm")
+
+include(cherryusb.cmake)
+
+sdk_inc(${cherryusb_incs})
+sdk_src(${cherryusb_srcs})
+
+sdk_src(platform/none/usbh_lwip.c)
+
+elseif(ESP_PLATFORM)
+
+set(CONFIG_CHERRYUSB_DEVICE_DCD "dwc2_esp")
+set(CONFIG_CHERRYUSB_HOST_HCD "dwc2_esp")
+set(CONFIG_CHERRYUSB_OSAL "idf")
+
+include(cherryusb.cmake)
+
+set(ldfragments "osal/idf/linker.lf")
+
+idf_component_register(SRCS ${cherryusb_srcs}
+ INCLUDE_DIRS ${cherryusb_incs}
+ PRIV_REQUIRES usb
+ LDFRAGMENTS ${ldfragments}
+)
+
+if(CONFIG_CHERRYUSB_HOST)
+ target_linker_script(${COMPONENT_LIB} INTERFACE "osal/idf/usbh_class_info.ld")
+
+ # 强制链接器不删除符号
+ if(CONFIG_CHERRYUSB_HOST_CDC_ACM)
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u cdc_acm_class_info")
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u cdc_data_class_info")
+ endif()
+ if(CONFIG_CHERRYUSB_HOST_HID)
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u hid_custom_class_info")
+ endif()
+ if(CONFIG_CHERRYUSB_HOST_MSC)
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u msc_class_info")
+ endif()
+ if(CONFIG_CHERRYUSB_HOST_CDC_ECM)
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u cdc_ecm_class_info")
+ endif()
+ if(CONFIG_CHERRYUSB_HOST_CDC_RNDIS)
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u rndis_class_info")
+ endif()
+ if(CONFIG_CHERRYUSB_HOST_CDC_NCM)
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u cdc_ncm_class_info")
+ endif()
+ if(CONFIG_CHERRYUSB_HOST_VIDEO)
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u video_ctrl_class_info")
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u video_streaming_class_info")
+ endif()
+ if(CONFIG_CHERRYUSB_HOST_AUDIO)
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u audio_ctrl_intf_class_info")
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u audio_streaming_intf_class_info")
+ endif()
+ if(CONFIG_CHERRYUSB_HOST_BLUETOOTH)
+ if(CONFIG_USBHOST_BLUETOOTH_HCI_H4)
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u bluetooth_h4_nrf_class_info")
+ else()
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u bluetooth_class_info")
+ endif()
+ endif()
+ if(CONFIG_CHERRYUSB_HOST_ASIX)
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u asix_class_info")
+ endif()
+ if(CONFIG_CHERRYUSB_HOST_RTL8152)
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u rtl8152_class_info")
+ endif()
+ if(CONFIG_CHERRYUSB_HOST_FTDI)
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u ftdi_class_info")
+ endif()
+ if(CONFIG_CHERRYUSB_HOST_CH34X)
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u ch34x_class_info")
+ endif()
+ if(CONFIG_CHERRYUSB_HOST_CP210X)
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u cp210x_class_info")
+ endif()
+ if(CONFIG_CHERRYUSB_HOST_PL2303)
+ target_link_libraries(${COMPONENT_LIB} INTERFACE "-u pl2303_class_info")
+ endif()
+endif()
+
+if(CONFIG_CHERRYUSB)
+ set_source_files_properties("class/audio/usbd_audio.c"
+ PROPERTIES COMPILE_FLAGS
+ -Wno-maybe-uninitialized)
+ include(package_manager)
+ cu_pkg_define_version(${CMAKE_CURRENT_LIST_DIR})
+endif()
+endif() \ No newline at end of file
diff --git a/Kconfig.cherryusb b/Kconfig
index 0e36e73b..a630e73c 100644
--- a/Kconfig.cherryusb
+++ b/Kconfig
@@ -186,7 +186,9 @@ if CHERRYUSB
bool "musb_custom"
config CHERRYUSB_HOST_PUSB2
bool "pusb2"
- config CHERRYUSB_HOST_XHCI
+ config CHERRYUSB_HOST_XHCI_PHYTIUM
+ bool "xhci_phytium"
+ config CHERRYUSB_HOST_XHCI_CUSTOM
bool "xhci"
endchoice
diff --git a/cherryusb.cmake b/cherryusb.cmake
index 644d8003..a95deece 100644
--- a/cherryusb.cmake
+++ b/cherryusb.cmake
@@ -122,6 +122,9 @@ if(CONFIG_CHERRYUSB_HOST)
if(CONFIG_CHERRYUSB_HOST_CDC_ECM)
list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/cdc/usbh_cdc_ecm.c)
endif()
+ if(CONFIG_CHERRYUSB_HOST_CDC_RNDIS)
+ list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/wireless/usbh_rndis.c)
+ endif()
if(CONFIG_CHERRYUSB_HOST_CDC_NCM)
list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/cdc/usbh_cdc_ncm.c)
endif()
@@ -152,9 +155,6 @@ if(CONFIG_CHERRYUSB_HOST)
if(CONFIG_CHERRYUSB_HOST_AUDIO)
list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/audio/usbh_audio.c)
endif()
- if(CONFIG_CHERRYUSB_HOST_CDC_RNDIS)
- list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/wireless/usbh_rndis.c)
- endif()
if(CONFIG_CHERRYUSB_HOST_BLUETOOTH)
list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/wireless/usbh_bluetooth.c)
@@ -264,5 +264,8 @@ if(DEFINED CONFIG_CHERRYUSB_OSAL)
list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/osal/usb_osal_rtthread.c)
elseif("${CONFIG_CHERRYUSB_OSAL}" STREQUAL "yoc")
list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/osal/usb_osal_yoc.c)
+ elseif("${CONFIG_CHERRYUSB_OSAL}" STREQUAL "idf")
+ list(APPEND cherryusb_incs ${CMAKE_CURRENT_LIST_DIR}/osal/idf)
+ list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/osal/idf/usb_osal_idf.c)
endif()
endif() \ No newline at end of file