Răsfoiți Sursa

chore: update cmake & kconfig & scons

Signed-off-by: sakumisu <1203593632@qq.com>
sakumisu 8 luni în urmă
părinte
comite
3f736a3622
4 a modificat fișierele cu 134 adăugiri și 129 ștergeri
  1. 7 6
      CMakeLists.txt
  2. 10 10
      Kconfig
  3. 13 8
      SConscript
  4. 104 105
      cherryusb.cmake

+ 7 - 6
CMakeLists.txt

@@ -23,8 +23,8 @@ if(BL_SDK_BASE)
     set(CONFIG_CHERRYUSB_HOST_FTDI 1)
     set(CONFIG_CHERRYUSB_HOST_PL2303 1)
 
-    set(CONFIG_CHERRYUSB_DEVICE_DCD "bl")
-    set(CONFIG_CHERRYUSB_HOST_HCD "ehci_bouffalo")
+    set(CONFIG_CHERRYUSB_DEVICE_BL 1)
+    set(CONFIG_CHERRYUSB_HOST_EHCI_BL 1)
     set(CONFIG_CHERRYUSB_OSAL "freertos")
 
     include(${CMAKE_CURRENT_LIST_DIR}/cherryusb.cmake)
@@ -56,8 +56,8 @@ elseif(HPM_SDK_BASE)
     set(CONFIG_CHERRYUSB_HOST_PL2303 1)
     set(CONFIG_CHERRYUSB_HOST_BL616 1)
 
-    set(CONFIG_CHERRYUSB_DEVICE_DCD "hpm")
-    set(CONFIG_CHERRYUSB_HOST_HCD "ehci_hpm")
+    set(CONFIG_CHERRYUSB_DEVICE_HPM 1)
+    set(CONFIG_CHERRYUSB_HOST_EHCI_HPM 1)
     set(CONFIG_CHERRYUSB_OSAL "freertos")
 
     include(${CMAKE_CURRENT_LIST_DIR}/cherryusb.cmake)
@@ -65,8 +65,8 @@ elseif(HPM_SDK_BASE)
     sdk_inc(${cherryusb_incs})
     sdk_src(${cherryusb_srcs})
 elseif(ESP_PLATFORM)
-    set(CONFIG_CHERRYUSB_DEVICE_DCD "dwc2_esp")
-    set(CONFIG_CHERRYUSB_HOST_HCD "dwc2_esp")
+    set(CONFIG_CHERRYUSB_DEVICE_DWC2_ESP 1)
+    set(CONFIG_CHERRYUSB_HOST_DWC2_ESP 1)
     set(CONFIG_CHERRYUSB_OSAL "idf")
 
     include(${CMAKE_CURRENT_LIST_DIR}/cherryusb.cmake)
@@ -160,6 +160,7 @@ elseif(ESP_PLATFORM)
         set_source_files_properties("class/audio/usbd_audio.c" PROPERTIES COMPILE_FLAGS -Wno-maybe-uninitialized)
     endif()
 elseif(ZEPHYR_BASE)
+    set(CONFIG_CHERRYUSB_OSAL "zephyr")
     include(${CMAKE_CURRENT_LIST_DIR}/cherryusb.cmake)
 
     zephyr_library()

+ 10 - 10
Kconfig

@@ -34,14 +34,14 @@ if CHERRYUSB
                 bool "dwc2_st"
             config CHERRYUSB_DEVICE_DWC2_ESP
                 bool "dwc2_esp"
+            config CHERRYUSB_DEVICE_DWC2_KENDRYTE
+                bool "dwc2_kendryte"
             config CHERRYUSB_DEVICE_DWC2_AT
                 bool "dwc2_at"
-            config CHERRYUSB_DEVICE_DWC2_GD
-                bool "dwc2_gd"
             config CHERRYUSB_DEVICE_DWC2_HC
                 bool "dwc2_hc"
-            config CHERRYUSB_DEVICE_DWC2_KENDRYTE
-                bool "dwc2_kendryte"
+            config CHERRYUSB_DEVICE_DWC2_GD
+                bool "dwc2_gd"
             config CHERRYUSB_DEVICE_DWC2_CUSTOM
                 bool "dwc2_custom"
             config CHERRYUSB_DEVICE_MUSB_ES
@@ -52,16 +52,16 @@ if CHERRYUSB
                 bool "musb_bk"
             config CHERRYUSB_DEVICE_MUSB_CUSTOM
                 bool "musb_custom"
+            config CHERRYUSB_DEVICE_CHIPIDEA_MCX
+                bool "chipidea_mcx"
+            config CHERRYUSB_DEVICE_CHIPIDEA_CUSTOM
+                bool "chipidea_custom"
             config CHERRYUSB_DEVICE_KINETIS_MCX
                 bool "kinetis_mcx"
             config CHERRYUSB_DEVICE_KINETIS_MM32
                 bool "kinetis_mm32"
             config CHERRYUSB_DEVICE_KINETIS_CUSTOM
                 bool "kinetis_custom"
-            config CHERRYUSB_DEVICE_CHIPIDEA_MCX
-                bool "chipidea_mcx"
-            config CHERRYUSB_DEVICE_CHIPIDEA_CUSTOM
-                bool "chipidea_custom"
             config CHERRYUSB_DEVICE_BL
                 bool "bouffalo"
             config CHERRYUSB_DEVICE_HPM
@@ -195,10 +195,10 @@ if CHERRYUSB
                 bool "dwc2_st"
             config CHERRYUSB_HOST_DWC2_ESP
                 bool "dwc2_esp"
-            config CHERRYUSB_HOST_DWC2_HC
-                bool "dwc2_hc"
             config CHERRYUSB_HOST_DWC2_KENDRYTE
                 bool "dwc2_kendryte"
+            config CHERRYUSB_HOST_DWC2_HC
+                bool "dwc2_hc"
             config CHERRYUSB_HOST_DWC2_CUSTOM
                 bool "dwc2_custom"
             config CHERRYUSB_HOST_MUSB_ES

+ 13 - 8
SConscript

@@ -44,18 +44,18 @@ if GetDepend(['PKG_CHERRYUSB_DEVICE']):
     if GetDepend(['PKG_CHERRYUSB_DEVICE_DWC2_ESP']):
         src += Glob('port/dwc2/usb_dc_dwc2.c')
         src += Glob('port/dwc2/usb_glue_esp.c')
+    if GetDepend(['PKG_CHERRYUSB_DEVICE_DWC2_KENDRYTE']):
+        src += Glob('port/dwc2/usb_dc_dwc2.c')
+        src += Glob('port/dwc2/usb_glue_kendryte.c')
     if GetDepend(['PKG_CHERRYUSB_DEVICE_DWC2_AT']):
         src += Glob('port/dwc2/usb_dc_dwc2.c')
         src += Glob('port/dwc2/usb_glue_at.c')
-    if GetDepend(['PKG_CHERRYUSB_DEVICE_DWC2_GD']):
-        src += Glob('port/dwc2/usb_dc_dwc2.c')
-        src += Glob('port/dwc2/usb_glue_gd.c')
     if GetDepend(['PKG_CHERRYUSB_DEVICE_DWC2_HC']):
         src += Glob('port/dwc2/usb_dc_dwc2.c')
         src += Glob('port/dwc2/usb_glue_hc.c')
-    if GetDepend(['PKG_CHERRYUSB_DEVICE_DWC2_KENDRYTE']):
+    if GetDepend(['PKG_CHERRYUSB_DEVICE_DWC2_GD']):
         src += Glob('port/dwc2/usb_dc_dwc2.c')
-        src += Glob('port/dwc2/usb_glue_kendryte.c')
+        src += Glob('port/dwc2/usb_glue_gd.c')
     if GetDepend(['PKG_CHERRYUSB_DEVICE_DWC2_CUSTOM']):
         src += Glob('port/dwc2/usb_dc_dwc2.c')
     if GetDepend(['PKG_CHERRYUSB_DEVICE_MUSB_ES']):
@@ -69,14 +69,16 @@ if GetDepend(['PKG_CHERRYUSB_DEVICE']):
         src += Glob('port/musb/usb_glue_bk.c')
     if GetDepend(['PKG_CHERRYUSB_DEVICE_MUSB_CUSTOM']):
         src += Glob('port/musb/usb_dc_musb.c')
+    if GetDepend(['PKG_CHERRYUSB_DEVICE_CHIPIDEA_MCX']):
+        src += Glob('port/chipidea/usb_dc_chipidea.c')
+        src += Glob('port/chipidea/usb_glue_mcx.c')
+    if GetDepend(['PKG_CHERRYUSB_DEVICE_CHIPIDEA_CUSTOM']):
+        src += Glob('port/chipidea/usb_dc_chipidea.c')
     if GetDepend(['PKG_CHERRYUSB_DEVICE_KINETIS_MCX']):
         src += Glob('port/kinetis/usb_dc_kinetis.c')
         src += Glob('port/kinetis/usb_glue_mcx.c')
     if GetDepend(['PKG_CHERRYUSB_DEVICE_KINETIS_CUSTOM']):
         src += Glob('port/kinetis/usb_dc_kinetis.c')
-    if GetDepend(['PKG_CHERRYUSB_DEVICE_CHIPIDEA_MCX']):
-        src += Glob('port/chipidea/usb_dc_chipidea.c')
-        src += Glob('port/chipidea/usb_glue_mcx.c')
     if GetDepend(['PKG_CHERRYUSB_DEVICE_BL']):
         src += Glob('port/bouffalolab/usb_dc_bl.c')
     if GetDepend(['PKG_CHERRYUSB_DEVICE_HPM']):
@@ -192,6 +194,9 @@ if GetDepend(['PKG_CHERRYUSB_HOST']):
     if GetDepend(['PKG_CHERRYUSB_HOST_DWC2_KENDRYTE']):
         src += Glob('port/dwc2/usb_hc_dwc2.c')
         src += Glob('port/dwc2/usb_glue_kendryte.c')
+    if GetDepend(['PKG_CHERRYUSB_HOST_DWC2_HC']):
+        src += Glob('port/dwc2/usb_hc_dwc2.c')
+        src += Glob('port/dwc2/usb_glue_hc.c')
     if GetDepend(['PKG_CHERRYUSB_HOST_DWC2_CUSTOM']):
         src += Glob('port/dwc2/usb_hc_dwc2.c')
     if GetDepend(['PKG_CHERRYUSB_HOST_MUSB_STANDARD']):

+ 104 - 105
cherryusb.cmake

@@ -10,7 +10,9 @@
 # set(CONFIG_CHERRYUSB_DEVICE_CDC 1)
 # set(CONFIG_CHERRYUSB_DEVICE_HID 1)
 # set(CONFIG_CHERRYUSB_DEVICE_MSC 1)
-# set(CONFIG_CHERRYUSB_DEVICE_DCD "dwc2_st")
+# set(CONFIG_CHERRYUSB_DEVICE_AUDIO 1)
+# set(CONFIG_CHERRYUSB_DEVICE_VIDEO 1)
+# set(CONFIG_CHERRYUSB_DEVICE_DWC2_ST 1)
 
 # set(CONFIG_CHERRYUSB_HOST 1)
 # set(CONFIG_CHERRYUSB_HOST_CDC_ACM 1)
@@ -24,9 +26,9 @@
 # set(CONFIG_CHERRYUSB_HOST_BLUETOOTH 1)
 # set(CONFIG_CHERRYUSB_HOST_ASIX 1)
 # set(CONFIG_CHERRYUSB_HOST_RTL8152 1)
-# set(CONFIG_CHERRYUSB_OSAL "freertos")
-# set(CONFIG_CHERRYUSB_HOST_HCD "ehci_xxx")
+# set(CONFIG_CHERRYUSB_HOST_DWC2_ST 1)
 
+# set(CONFIG_CHERRYUSB_OSAL "freertos")
 # cmake-format: on
 
 list(
@@ -84,49 +86,51 @@ if(CONFIG_CHERRYUSB_DEVICE)
         list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/adb/usbd_adb.c)
     endif()
 
-    if(DEFINED CONFIG_CHERRYUSB_DEVICE_DCD)
-        if("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "fsdev")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/fsdev/usb_dc_fsdev.c)
-        elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "dwc2_st")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_dc_dwc2.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_st.c)
-        elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "dwc2_esp")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_dc_dwc2.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_esp.c)
-        elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "dwc2_at")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_dc_dwc2.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_at.c)
-        elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "dwc2_gd")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_dc_dwc2.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_gd.c)
-        elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "dwc2_hc")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_dc_dwc2.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_hc.c)
-        elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "musb_es")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_dc_musb.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_glue_es.c)
-        elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "musb_sunxi")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_dc_musb.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_glue_sunxi.c)
-        elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "musb_bk")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_dc_musb.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_glue_bk.c)
-        elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "chipidea_mcx")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/chipidea/usb_dc_chipidea.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/chipidea/usb_glue_mcx.c)
-        elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "kinetis_mcx")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/kinetis/usb_dc_kinetis.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/kinetis/usb_glue_mcx.c)
-        elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "hpm")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/hpm/usb_dc_hpm.c)
-        elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "bl")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/bouffalolab/usb_dc_bl.c)
-        elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "aic")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/aic/usb_dc_aic.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/aic/usb_dc_aic_ll.c)
-        elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "rp2040")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/rp2040/usb_dc_rp2040.c)
-        endif()
+    if(CONFIG_CHERRYUSB_DEVICE_FSDEV_ST)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/fsdev/usb_dc_fsdev.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/fsdev/usb_glue_st.c)
+    elseif(CONFIG_CHERRYUSB_DEVICE_DWC2_ST)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_dc_dwc2.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_st.c)
+    elseif(CONFIG_CHERRYUSB_DEVICE_DWC2_ESP)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_dc_dwc2.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_esp.c)
+    elseif(CONFIG_CHERRYUSB_DEVICE_DWC2_KENDRYTE)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_dc_dwc2.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_kendryte.c)
+    elseif(CONFIG_CHERRYUSB_DEVICE_DWC2_AT)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_dc_dwc2.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_at.c)
+    elseif(CONFIG_CHERRYUSB_DEVICE_DWC2_HC)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_dc_dwc2.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_hc.c)
+    elseif(CONFIG_CHERRYUSB_DEVICE_DWC2_GD)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_dc_dwc2.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_gd.c)
+    elseif(CONFIG_CHERRYUSB_DEVICE_MUSB_ES)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_dc_musb.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_glue_es.c)
+    elseif(CONFIG_CHERRYUSB_DEVICE_MUSB_SUNXI)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_dc_musb.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_glue_sunxi.c)
+    elseif(CONFIG_CHERRYUSB_DEVICE_MUSB_BK)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_dc_musb.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_glue_bk.c)
+    elseif(CONFIG_CHERRYUSB_DEVICE_CHIPIDEA_MCX)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/chipidea/usb_dc_chipidea.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/chipidea/usb_glue_mcx.c)
+    elseif(CONFIG_CHERRYUSB_DEVICE_KINETIS_MCX)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/kinetis/usb_dc_kinetis.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/kinetis/usb_glue_mcx.c)
+    elseif(CONFIG_CHERRYUSB_DEVICE_HPM)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/hpm/usb_dc_hpm.c)
+    elseif(CONFIG_CHERRYUSB_DEVICE_BL)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/bouffalolab/usb_dc_bl.c)
+    elseif(CONFIG_CHERRYUSB_DEVICE_AIC)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/aic/usb_dc_aic.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/aic/usb_dc_aic_ll.c)
+    elseif(CONFIG_CHERRYUSB_DEVICE_RP2040)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/rp2040/usb_dc_rp2040.c)
     endif()
 
 endif()
@@ -235,67 +239,62 @@ if(CONFIG_CHERRYUSB_HOST)
     endif()
 
     if(CONFIG_CHERRYUSB_HOST_CDC_ECM
-       OR CONFIG_CHERRYUSB_HOST_CDC_RNDIS
-       OR CONFIG_CHERRYUSB_HOST_CDC_NCM
-       OR CONFIG_CHERRYUSB_HOST_ASIX
-       OR CONFIG_CHERRYUSB_HOST_RTL8152
-       OR CONFIG_CHERRYUSB_HOST_BL616
+    OR CONFIG_CHERRYUSB_HOST_CDC_RNDIS
+    OR CONFIG_CHERRYUSB_HOST_CDC_NCM
+    OR CONFIG_CHERRYUSB_HOST_ASIX
+    OR CONFIG_CHERRYUSB_HOST_RTL8152
+    OR CONFIG_CHERRYUSB_HOST_BL616
     )
         list(APPEND cherryusb_srcs platform/lwip/usbh_lwip.c)
     endif()
 
-    if(DEFINED CONFIG_CHERRYUSB_HOST_HCD)
-        if("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "ehci_bouffalo")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci.c)
-            # list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci_iso.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_glue_bouffalo.c)
-            list(APPEND cherryusb_incs ${CMAKE_CURRENT_LIST_DIR}/port/ehci)
-        elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "ehci_hpm")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci.c)
-            # list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci_iso.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_glue_hpm.c)
-            list(APPEND cherryusb_incs ${CMAKE_CURRENT_LIST_DIR}/port/ehci)
-        elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "ehci_aic")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ohci/usb_hc_ohci.c)
-            # list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci_iso.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_glue_aic.c)
-            list(APPEND cherryusb_incs ${CMAKE_CURRENT_LIST_DIR}/port/ehci)
-            list(APPEND cherryusb_incs ${CMAKE_CURRENT_LIST_DIR}/port/ohci)
-        elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "ehci_mcx")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci.c)
-            # list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci_iso.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_glue_mcx.c)
-            list(APPEND cherryusb_incs ${CMAKE_CURRENT_LIST_DIR}/port/ehci)
-            list(APPEND cherryusb_incs ${CMAKE_CURRENT_LIST_DIR}/port/chipidea)
-        elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "ehci_nuvoton")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci.c)
-            # list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci_iso.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_glue_nuvoton.c)
-        elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "dwc2_st")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_hc_dwc2.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_st.c)
-        elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "dwc2_esp")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_hc_dwc2.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_esp.c)
-        elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "dwc2_hc")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_hc_dwc2.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_hc.c)
-        elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "musb_es")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_hc_musb.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_glue_es.c)
-        elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "musb_sunxi")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_hc_musb.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_glue_sunxi.c)
-        elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "musb_bk")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_hc_musb.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_glue_bk.c)
-        elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "kinetis_mcx")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/kinetis/usb_hc_kinetis.c)
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/kinetis/usb_glue_mcx.c)
-        elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "rp2040")
-            list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/rp2040/usb_hc_rp2040.c)
-        endif()
+    if(CONFIG_CHERRYUSB_HOST_EHCI_BL)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci.c)
+        # list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci_iso.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_glue_bouffalo.c)
+        list(APPEND cherryusb_incs ${CMAKE_CURRENT_LIST_DIR}/port/ehci)
+    elseif(CONFIG_CHERRYUSB_HOST_EHCI_HPM)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci.c)
+        # list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci_iso.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_glue_hpm.c)
+        list(APPEND cherryusb_incs ${CMAKE_CURRENT_LIST_DIR}/port/ehci)
+    elseif(CONFIG_CHERRYUSB_HOST_EHCI_AIC)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci.c)
+        # list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci_iso.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_glue_aic.c)
+        list(APPEND cherryusb_incs ${CMAKE_CURRENT_LIST_DIR}/port/ehci)
+    elseif(CONFIG_CHERRYUSB_HOST_EHCI_MCX)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci.c)
+        # list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci_iso.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_glue_mcx.c)
+        list(APPEND cherryusb_incs ${CMAKE_CURRENT_LIST_DIR}/port/ehci)
+        list(APPEND cherryusb_incs ${CMAKE_CURRENT_LIST_DIR}/port/chipidea)
+    elseif(CONFIG_CHERRYUSB_HOST_DWC2_ST)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_hc_dwc2.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_st.c)
+    elseif(CONFIG_CHERRYUSB_HOST_DWC2_ESP)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_hc_dwc2.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_esp.c)
+    elseif(CONFIG_CHERRYUSB_HOST_DWC2_KENDRYTE)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_hc_dwc2.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_kendryte.c)
+    elseif(CONFIG_CHERRYUSB_HOST_DWC2_HC)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_hc_dwc2.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_hc.c)
+    elseif(CONFIG_CHERRYUSB_HOST_MUSB_ES)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_hc_musb.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_glue_es.c)
+    elseif(CONFIG_CHERRYUSB_HOST_MUSB_SUNXI)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_hc_musb.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_glue_sunxi.c)
+    elseif(CONFIG_CHERRYUSB_HOST_MUSB_BK)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_hc_musb.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_glue_bk.c)
+    elseif(CONFIG_CHERRYUSB_HOST_KINETIS_MCX)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/kinetis/usb_hc_kinetis.c)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/kinetis/usb_glue_mcx.c)
+    elseif(CONFIG_CHERRYUSB_HOST_RP2040)
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/rp2040/usb_hc_rp2040.c)
     endif()
 
     if(CHERRYUSB_HOST_TEMPLATE)
@@ -308,13 +307,13 @@ if(DEFINED CONFIG_CHERRYUSB_OSAL)
         list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/osal/usb_osal_freertos.c)
     elseif("${CONFIG_CHERRYUSB_OSAL}" STREQUAL "rtthread")
         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)
     elseif("${CONFIG_CHERRYUSB_OSAL}" STREQUAL "threadx")
         list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/osal/usb_osal_threadx.c)
+    elseif("${CONFIG_CHERRYUSB_OSAL}" STREQUAL "zephyr")
+        list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/osal/usb_osal_zephyr.c)
     endif()
 endif()