cherryusb.cmake 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. #
  2. # Copyright (c) 2024, sakumisu
  3. #
  4. # SPDX-License-Identifier: Apache-2.0
  5. #
  6. # set(CONFIG_CHERRYUSB_DEVICE 1)
  7. # set(CONFIG_CHERRYUSB_DEVICE_CDC 1)
  8. # set(CONFIG_CHERRYUSB_DEVICE_HID 1)
  9. # set(CONFIG_CHERRYUSB_DEVICE_MSC 1)
  10. # set(CONFIG_CHERRYUSB_DEVICE_DCD "dwc2_st")
  11. # set(CONFIG_CHERRYUSB_HOST 1)
  12. # set(CONFIG_CHERRYUSB_HOST_CDC_ACM 1)
  13. # set(CONFIG_CHERRYUSB_HOST_CDC_ECM 1)
  14. # set(CONFIG_CHERRYUSB_HOST_CDC_NCM 1)
  15. # set(CONFIG_CHERRYUSB_HOST_HID 1)
  16. # set(CONFIG_CHERRYUSB_HOST_MSC 1)
  17. # set(CONFIG_CHERRYUSB_HOST_VIDEO 1)
  18. # set(CONFIG_CHERRYUSB_HOST_AUDIO 1)
  19. # set(CONFIG_CHERRYUSB_HOST_CDC_RNDIS 1)
  20. # set(CONFIG_CHERRYUSB_HOST_BLUETOOTH 1)
  21. # set(CONFIG_CHERRYUSB_HOST_ASIX 1)
  22. # set(CONFIG_CHERRYUSB_HOST_RTL8152 1)
  23. # set(CONFIG_CHERRYUSB_OSAL "freertos")
  24. # set(CONFIG_CHERRYUSB_HOST_HCD "ehci_xxx")
  25. list(APPEND cherryusb_incs
  26. ${CMAKE_CURRENT_LIST_DIR}/common
  27. ${CMAKE_CURRENT_LIST_DIR}/core
  28. ${CMAKE_CURRENT_LIST_DIR}/class/hub
  29. ${CMAKE_CURRENT_LIST_DIR}/class/cdc
  30. ${CMAKE_CURRENT_LIST_DIR}/class/hid
  31. ${CMAKE_CURRENT_LIST_DIR}/class/msc
  32. ${CMAKE_CURRENT_LIST_DIR}/class/audio
  33. ${CMAKE_CURRENT_LIST_DIR}/class/video
  34. ${CMAKE_CURRENT_LIST_DIR}/class/wireless
  35. ${CMAKE_CURRENT_LIST_DIR}/class/midi
  36. ${CMAKE_CURRENT_LIST_DIR}/class/vendor/net
  37. ${CMAKE_CURRENT_LIST_DIR}/class/vendor/serial
  38. )
  39. if(CONFIG_CHERRYUSB_DEVICE)
  40. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/core/usbd_core.c)
  41. if(CONFIG_CHERRYUSB_DEVICE_CDC)
  42. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/cdc/usbd_cdc.c)
  43. endif()
  44. if(CONFIG_CHERRYUSB_DEVICE_HID)
  45. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/hid/usbd_hid.c)
  46. endif()
  47. if(CONFIG_CHERRYUSB_DEVICE_MSC)
  48. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/msc/usbd_msc.c)
  49. endif()
  50. if(CONFIG_CHERRYUSB_DEVICE_AUDIO)
  51. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/audio/usbd_audio.c)
  52. endif()
  53. if(CONFIG_CHERRYUSB_DEVICE_VIDEO)
  54. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/video/usbd_video.c)
  55. endif()
  56. if(CONFIG_CHERRYUSB_DEVICE_CDC_ECM)
  57. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/cdc/usbd_cdc_ecm.c)
  58. endif()
  59. if(CONFIG_CHERRYUSB_DEVICE_CDC_NCM)
  60. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/cdc/usbd_cdc_ncm.c)
  61. endif()
  62. if(CONFIG_CHERRYUSB_DEVICE_CDC_RNDIS)
  63. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/wireless/usbd_rndis.c)
  64. endif()
  65. if(DEFINED CONFIG_CHERRYUSB_DEVICE_DCD)
  66. if("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "dwc2_st")
  67. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_dc_dwc2.c)
  68. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_st.c)
  69. elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "dwc2_esp")
  70. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_dc_dwc2.c)
  71. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_esp.c)
  72. elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "dwc2_aic")
  73. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_dc_dwc2.c)
  74. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_aic.c)
  75. elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "dwc2_at")
  76. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_dc_dwc2.c)
  77. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_at.c)
  78. elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "fsdev")
  79. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/fsdev/usb_dc_fsdev.c)
  80. elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "hpm")
  81. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/hpm/usb_dc_hpm.c)
  82. elseif("${CONFIG_CHERRYUSB_DEVICE_DCD}" STREQUAL "musb")
  83. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_dc_musb.c)
  84. endif()
  85. endif()
  86. endif()
  87. if(CONFIG_CHERRYUSB_HOST)
  88. list(APPEND cherryusb_srcs
  89. ${CMAKE_CURRENT_LIST_DIR}/core/usbh_core.c
  90. ${CMAKE_CURRENT_LIST_DIR}/class/hub/usbh_hub.c
  91. )
  92. if(CONFIG_CHERRYUSB_HOST_CDC_ACM)
  93. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/cdc/usbh_cdc_acm.c)
  94. endif()
  95. if(CONFIG_CHERRYUSB_HOST_CDC_ECM)
  96. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/cdc/usbh_cdc_ecm.c)
  97. endif()
  98. if(CONFIG_CHERRYUSB_HOST_CDC_NCM)
  99. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/cdc/usbh_cdc_ncm.c)
  100. endif()
  101. if(CONFIG_CHERRYUSB_HOST_HID)
  102. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/hid/usbh_hid.c)
  103. endif()
  104. if(CONFIG_CHERRYUSB_HOST_MSC)
  105. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/msc/usbh_msc.c)
  106. endif()
  107. if(CONFIG_CHERRYUSB_HOST_VIDEO)
  108. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/video/usbh_video.c)
  109. endif()
  110. if(CONFIG_CHERRYUSB_HOST_AUDIO)
  111. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/audio/usbh_audio.c)
  112. endif()
  113. if(CONFIG_CHERRYUSB_HOST_CDC_RNDIS)
  114. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/wireless/usbh_rndis.c)
  115. endif()
  116. if(CONFIG_CHERRYUSB_HOST_BLUETOOTH)
  117. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/wireless/usbh_bluetooth.c)
  118. set(BLUETOOTH_PATH ${CMAKE_CURRENT_LIST_DIR}/third_party/zephyr_bluetooth-2.7.5)
  119. list(APPEND cherryusb_srcs
  120. ${BLUETOOTH_PATH}/ble_hci_usbh.c
  121. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/beacon/src/main.c
  122. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/central/src/main.c
  123. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/central_hr/src/main.c
  124. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/central_ht/src/main.c
  125. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/central_multilink/src/main.c
  126. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/central_multilink/src/central_multilink.c
  127. # ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/handsfree/src/main.c
  128. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/ibeacon/src/main.c
  129. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/peripheral/src/main.c
  130. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/peripheral/src/cts.c
  131. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/peripheral_csc/src/main.c
  132. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/peripheral_dis/src/main.c
  133. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/peripheral_esp/src/main.c
  134. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/peripheral_hids/src/main.c
  135. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/peripheral_hids/src/hog.c
  136. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/peripheral_hr/src/main.c
  137. # ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/peripheral_ht/src/main.c
  138. # ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/peripheral_ht/src/hts.c
  139. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/peripheral_identity/src/main.c
  140. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/peripheral_identity/src/peripheral_identity.c
  141. # ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/peripheral_ots/src/main.c
  142. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/peripheral_sc_only/src/main.c
  143. ${BLUETOOTH_PATH}/zephyr_bluetooth/examples/scan_adv/src/main.c
  144. )
  145. include(${BLUETOOTH_PATH}/zephyr_bluetooth/zephyr_bluetooth.cmake)
  146. list(APPEND cherryusb_srcs ${zephyr_bluetooth_srcs})
  147. list(APPEND cherryusb_incs ${zephyr_bluetooth_incs})
  148. endif()
  149. if(CONFIG_CHERRYUSB_HOST_ASIX)
  150. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/vendor/net/usbh_asix.c)
  151. endif()
  152. if(CONFIG_CHERRYUSB_HOST_RTL8152)
  153. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/class/vendor/net/usbh_rtl8152.c)
  154. endif()
  155. if(DEFINED CONFIG_CHERRYUSB_HOST_HCD)
  156. if("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "ehci_bouffalo")
  157. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci.c)
  158. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci_iso.c)
  159. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_glue_bouffalo.c)
  160. elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "ehci_hpm")
  161. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci.c)
  162. #list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci_iso.c)
  163. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_glue_hpm.c)
  164. elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "ehci_aic")
  165. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci.c)
  166. #list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci_iso.c)
  167. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_glue_aic.c)
  168. elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "ehci_nuvoton")
  169. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci.c)
  170. #list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_hc_ehci_iso.c)
  171. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/ehci/usb_glue_nuvoton.c)
  172. elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "dwc2_st")
  173. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_hc_dwc2.c)
  174. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_st.c)
  175. elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "dwc2_esp")
  176. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_hc_dwc2.c)
  177. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/dwc2/usb_glue_esp.c)
  178. elseif("${CONFIG_CHERRYUSB_HOST_HCD}" STREQUAL "musb")
  179. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/port/musb/usb_hc_musb.c)
  180. endif()
  181. endif()
  182. endif()
  183. if(DEFINED CONFIG_CHERRYUSB_OSAL)
  184. if("${CONFIG_CHERRYUSB_OSAL}" STREQUAL "freertos")
  185. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/osal/usb_osal_freertos.c)
  186. elseif("${CONFIG_CHERRYUSB_OSAL}" STREQUAL "rtthread")
  187. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/osal/usb_osal_rtthread.c)
  188. elseif("${CONFIG_CHERRYUSB_OSAL}" STREQUAL "yoc")
  189. list(APPEND cherryusb_srcs ${CMAKE_CURRENT_LIST_DIR}/osal/usb_osal_yoc.c)
  190. endif()
  191. endif()