1# Kconfig file for package CherryUSB
2menuconfig RT_USING_CHERRYUSB
3    bool "Using USB with CherryUSB"
4    default n
5
6if RT_USING_CHERRYUSB
7
8    menuconfig RT_CHERRYUSB_DEVICE
9        bool "Enable usb device mode"
10        default n
11
12    if RT_CHERRYUSB_DEVICE
13        choice
14            prompt "Select usb device speed"
15            default RT_CHERRYUSB_DEVICE_SPEED_FS
16            config RT_CHERRYUSB_DEVICE_SPEED_FS
17                bool "FS"
18            config RT_CHERRYUSB_DEVICE_SPEED_HS
19                bool "HS"
20            config RT_CHERRYUSB_DEVICE_SPEED_AUTO
21                bool "AUTO"
22        endchoice
23
24        choice
25            prompt "Select usb device ip, and some ip need config in usb_config.h, please check"
26            default RT_CHERRYUSB_DEVICE_CUSTOM
27            config RT_CHERRYUSB_DEVICE_CUSTOM
28                bool "CUSTOM (Implement it yourself)"
29            config RT_CHERRYUSB_DEVICE_FSDEV_ST
30                bool "fsdev_st"
31            config RT_CHERRYUSB_DEVICE_FSDEV_CUSTOM
32                bool "fsdev_custom"
33            config RT_CHERRYUSB_DEVICE_DWC2_ST
34                bool "dwc2_st"
35            config RT_CHERRYUSB_DEVICE_DWC2_ESP
36                bool "dwc2_esp"
37            config RT_CHERRYUSB_DEVICE_DWC2_KENDRYTE
38                bool "dwc2_kendryte"
39            config RT_CHERRYUSB_DEVICE_DWC2_AT
40                bool "dwc2_at"
41            config RT_CHERRYUSB_DEVICE_DWC2_HC
42                bool "dwc2_hc"
43            config RT_CHERRYUSB_DEVICE_DWC2_NATION
44                bool "dwc2_nation"
45            config RT_CHERRYUSB_DEVICE_DWC2_GD
46                bool "dwc2_gd"
47            config RT_CHERRYUSB_DEVICE_DWC2_CUSTOM
48                bool "dwc2_custom"
49            config RT_CHERRYUSB_DEVICE_MUSB_ES
50                bool "musb_es"
51            config RT_CHERRYUSB_DEVICE_MUSB_SUNXI
52                bool "musb_sunxi"
53            config RT_CHERRYUSB_DEVICE_MUSB_BK
54                bool "musb_bk"
55            config RT_CHERRYUSB_DEVICE_MUSB_SIFLI
56                bool "musb_sifli"
57            config RT_CHERRYUSB_DEVICE_MUSB_CUSTOM
58                bool "musb_custom"
59            config RT_CHERRYUSB_DEVICE_CHIPIDEA_MCX
60                bool "chipidea_mcx"
61            config RT_CHERRYUSB_DEVICE_CHIPIDEA_CUSTOM
62                bool "chipidea_custom"
63            config RT_CHERRYUSB_DEVICE_KINETIS_MCX
64                bool "kinetis_mcx"
65            config RT_CHERRYUSB_DEVICE_KINETIS_MM32
66                bool "kinetis_mm32"
67            config RT_CHERRYUSB_DEVICE_KINETIS_CUSTOM
68                bool "kinetis_custom"
69            config RT_CHERRYUSB_DEVICE_BL
70                bool "bouffalo"
71            config RT_CHERRYUSB_DEVICE_HPM
72                bool "hpm"
73            config RT_CHERRYUSB_DEVICE_AIC
74                bool "aic"
75            config RT_CHERRYUSB_DEVICE_RP2040
76                bool "rp2040"
77            config RT_CHERRYUSB_DEVICE_CH32
78                bool "ch32"
79            config RT_CHERRYUSB_DEVICE_PUSB2
80                bool "pusb2"
81            config RT_CHERRYUSB_DEVICE_NRF5X
82                bool "nrf5x"
83        endchoice
84
85        config RT_CHERRYUSB_DEVICE_CDC_ACM
86            bool
87            prompt "Enable usb cdc acm device"
88            default n
89
90        config RT_CHERRYUSB_DEVICE_HID
91            bool
92            prompt "Enable usb hid device"
93            default n
94
95        config RT_CHERRYUSB_DEVICE_MSC
96            bool
97            prompt "Enable usb msc device"
98            default n
99
100        config RT_CHERRYUSB_DEVICE_AUDIO
101            bool
102            prompt "Enable usb audio device"
103            default n
104
105        config RT_CHERRYUSB_DEVICE_VIDEO
106            bool
107            prompt "Enable usb video device"
108            default n
109
110        config RT_CHERRYUSB_DEVICE_CDC_RNDIS
111            bool
112            prompt "Enable usb cdc rndis device"
113            default n
114
115        config RT_CHERRYUSB_DEVICE_CDC_ECM
116            bool
117            prompt "Enable usb cdc ecm device"
118            default n
119
120        config RT_CHERRYUSB_DEVICE_CDC_NCM
121            bool
122            prompt "Enable usb cdc ncm device"
123            default n
124
125        config RT_CHERRYUSB_DEVICE_MTP
126            bool
127            prompt "Enable usb mtp device, it is commercial charge"
128            default n
129
130        config RT_CHERRYUSB_DEVICE_ADB
131            bool
132            prompt "Enable usb adb device"
133            default n
134
135        config RT_CHERRYUSB_DEVICE_DFU
136            bool
137            prompt "Enable usb dfu device"
138            default n
139
140        config RT_CHERRYUSB_DEVICE_CDC_ACM_CHARDEV
141            bool
142            prompt "Enable chardev for cdc acm device"
143            default n
144
145        config CONFIG_USBDEV_REQUEST_BUFFER_LEN
146            int
147            prompt "Set device control transfer max buffer size"
148            default 512
149
150        config CONFIG_USBDEV_MSC_MAX_BUFSIZE
151            int
152            prompt "Set usb msc device max buffer size"
153            default 512
154            help
155                Set the maximum buffer size for usb msc device, it is used to transfer data.
156                you can change it to a larger value if you need larger speed but must be a power of blocksize.
157
158        config CONFIG_USBDEV_RNDIS_USING_LWIP
159            bool
160            prompt "Enable usb rndis device with lwip for lan"
161            default n
162
163        config CONFIG_USBDEV_CDC_ECM_USING_LWIP
164            bool
165            prompt "Enable usb cdc ecm device with lwip for lan"
166            default n
167
168        choice
169            prompt "Select usb device template, please select class driver first"
170            default RT_CHERRYUSB_DEVICE_TEMPLATE_NONE
171            config RT_CHERRYUSB_DEVICE_TEMPLATE_NONE
172                bool
173                prompt "none (Implement it yourself)"
174            config RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM
175                bool
176                prompt "cdc_acm"
177                depends on RT_CHERRYUSB_DEVICE_CDC_ACM
178            config RT_CHERRYUSB_DEVICE_TEMPLATE_MSC
179                bool
180                prompt "msc_ram"
181                depends on RT_CHERRYUSB_DEVICE_MSC
182            config RT_CHERRYUSB_DEVICE_TEMPLATE_MSC_BLKDEV
183                bool
184                prompt "msc_blkdev"
185                depends on RT_CHERRYUSB_DEVICE_MSC
186            config RT_CHERRYUSB_DEVICE_TEMPLATE_HID_KEYBOARD
187                bool
188                prompt "hid_keyboard"
189                depends on RT_CHERRYUSB_DEVICE_HID
190            config RT_CHERRYUSB_DEVICE_TEMPLATE_HID_MOUSE
191                bool
192                prompt "hid_mouse"
193                depends on RT_CHERRYUSB_DEVICE_HID
194            config RT_CHERRYUSB_DEVICE_TEMPLATE_HID_CUSTOM
195                bool
196                prompt "hid_custom"
197                depends on RT_CHERRYUSB_DEVICE_HID
198            config RT_CHERRYUSB_DEVICE_TEMPLATE_VIDEO
199                bool
200                prompt "video"
201                depends on RT_CHERRYUSB_DEVICE_VIDEO
202            config RT_CHERRYUSB_DEVICE_TEMPLATE_AUDIO_V1_MIC_SPEAKER
203                bool
204                prompt "audio_v1_mic_speaker_multichan"
205                depends on RT_CHERRYUSB_DEVICE_AUDIO
206            config RT_CHERRYUSB_DEVICE_TEMPLATE_AUDIO_V2_MIC_SPEAKER
207                bool
208                prompt "audio_v2_mic_speaker_multichan"
209                depends on RT_CHERRYUSB_DEVICE_AUDIO
210            config RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_RNDIS
211                bool
212                prompt "cdc_rndis"
213                depends on RT_CHERRYUSB_DEVICE_CDC_RNDIS
214            config RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ECM
215                bool
216                prompt "cdc_ecm"
217                depends on RT_CHERRYUSB_DEVICE_CDC_ECM
218            config RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_NCM
219                bool
220                prompt "cdc_ncm"
221                depends on RT_CHERRYUSB_DEVICE_CDC_NCM
222            config RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM_MSC
223                bool
224                prompt "cdc_acm_msc"
225                depends on RT_CHERRYUSB_DEVICE_CDC_ACM && RT_CHERRYUSB_DEVICE_MSC
226            config RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM_MSC_HID
227                bool
228                prompt "cdc_acm_msc_hid"
229                depends on RT_CHERRYUSB_DEVICE_CDC_ACM && RT_CHERRYUSB_DEVICE_MSC && RT_CHERRYUSB_DEVICE_HID
230            config RT_CHERRYUSB_DEVICE_TEMPLATE_WINUSBV1
231                bool
232                prompt "winusbv1"
233            config RT_CHERRYUSB_DEVICE_TEMPLATE_WINUSBV2_CDC
234                bool
235                prompt "winusbv2_cdc"
236                depends on RT_CHERRYUSB_DEVICE_CDC_ACM
237            config RT_CHERRYUSB_DEVICE_TEMPLATE_WINUSBV2_HID
238                bool
239                prompt "winusbv2_hid"
240                depends on RT_CHERRYUSB_DEVICE_HID
241            config RT_CHERRYUSB_DEVICE_TEMPLATE_ADB
242                bool
243                prompt "adb"
244                depends on RT_CHERRYUSB_DEVICE_ADB
245            config RT_CHERRYUSB_DEVICE_TEMPLATE_CDC_ACM_CHARDEV
246                bool
247                prompt "cdc_acm_chardev"
248                depends on RT_CHERRYUSB_DEVICE_CDC_ACM_CHARDEV
249        endchoice
250
251        config CONFIG_USBDEV_MSC_BLOCK_DEV_NAME
252            string "usb device msc block device name"
253            depends on RT_CHERRYUSB_DEVICE_TEMPLATE_MSC_BLKDEV
254            default "sd0"
255
256    endif
257
258    menuconfig RT_CHERRYUSB_HOST
259        bool "Enable usb host mode"
260        default n
261
262    if RT_CHERRYUSB_HOST
263        choice
264            prompt "Select usb host ip, and some ip need config in usb_config.h, please check"
265            default RT_CHERRYUSB_HOST_CUSTOM
266            config RT_CHERRYUSB_HOST_CUSTOM
267                bool "CUSTOM (Implement it yourself)"
268            config RT_CHERRYUSB_HOST_EHCI_BL
269                bool "ehci_bouffalo"
270            config RT_CHERRYUSB_HOST_EHCI_HPM
271                bool "ehci_hpm"
272            config RT_CHERRYUSB_HOST_EHCI_AIC
273                bool "ehci_aic"
274            config RT_CHERRYUSB_HOST_EHCI_MCX
275                bool "ehci_mcx"
276            config RT_CHERRYUSB_HOST_EHCI_NUC980
277                bool "ehci_nuc980"
278            config RT_CHERRYUSB_HOST_EHCI_MA35D0
279                bool "ehci_ma35d0"
280            config RT_CHERRYUSB_HOST_EHCI_CUSTOM
281                bool "ehci_custom"
282            config RT_CHERRYUSB_HOST_DWC2_ST
283                bool "dwc2_st"
284            config RT_CHERRYUSB_HOST_DWC2_ESP
285                bool "dwc2_esp"
286            config RT_CHERRYUSB_HOST_DWC2_KENDRYTE
287                bool "dwc2_kendryte"
288            config RT_CHERRYUSB_HOST_DWC2_HC
289                bool "dwc2_hc"
290            config RT_CHERRYUSB_HOST_DWC2_NATION
291                bool "dwc2_nation"
292            config RT_CHERRYUSB_HOST_DWC2_CUSTOM
293                bool "dwc2_custom"
294            config RT_CHERRYUSB_HOST_MUSB_ES
295                bool "musb_es"
296            config RT_CHERRYUSB_HOST_MUSB_SUNXI
297                bool "musb_sunxi"
298            config RT_CHERRYUSB_HOST_MUSB_BK
299                bool "musb_bk"
300            config RT_CHERRYUSB_HOST_MUSB_SIFLI
301                bool "musb_sifli"
302            config RT_CHERRYUSB_HOST_MUSB_CUSTOM
303                bool "musb_custom"
304            config RT_CHERRYUSB_HOST_PUSB2
305                bool "pusb2"
306            config RT_CHERRYUSB_HOST_XHCI
307                bool "xhci"
308            config RT_CHERRYUSB_HOST_RP2040
309                bool "rp2040"
310        endchoice
311
312        config RT_CHERRYUSB_HOST_CDC_ACM
313            bool
314            prompt "Enable usb cdc acm driver"
315            default n
316
317        config RT_CHERRYUSB_HOST_HID
318            bool
319            prompt "Enable usb hid driver"
320            default n
321
322        config RT_CHERRYUSB_HOST_MSC
323            bool
324            prompt "Enable usb msc driver"
325            default n
326            select RT_USING_DFS
327            select RT_USING_DFS_ELMFAT
328
329        config RT_CHERRYUSB_HOST_CDC_ECM
330            bool
331            prompt "Enable usb cdc ecm driver"
332            select RT_USING_LWIP
333            select CONFIG_USBHOST_PLATFORM_CDC_ECM
334            default n
335
336        config RT_CHERRYUSB_HOST_CDC_RNDIS
337            bool
338            prompt "Enable usb rndis driver"
339            select RT_USING_LWIP
340            select CONFIG_USBHOST_PLATFORM_CDC_RNDIS
341            default n
342
343        config RT_CHERRYUSB_HOST_CDC_NCM
344            bool
345            prompt "Enable usb cdc ncm driver"
346            select RT_USING_LWIP
347            select CONFIG_USBHOST_PLATFORM_CDC_NCM
348            default n
349
350        config RT_CHERRYUSB_HOST_VIDEO
351            bool
352            prompt "Enable usb video driver, it is commercial charge"
353            default n
354
355        config RT_CHERRYUSB_HOST_AUDIO
356            bool
357            prompt "Enable usb audio driver, it is commercial charge"
358            default n
359
360        config RT_CHERRYUSB_HOST_BLUETOOTH
361            bool
362            prompt "Enable usb bluetooth driver"
363            default n
364
365        config RT_CHERRYUSB_HOST_ASIX
366            bool
367            prompt "Enable usb asix driver"
368            select RT_USING_LWIP
369            select CONFIG_USBHOST_PLATFORM_ASIX
370            default n
371
372        config RT_CHERRYUSB_HOST_RTL8152
373            bool
374            prompt "Enable usb rtl8152 driver"
375            select RT_USING_LWIP
376            select CONFIG_USBHOST_PLATFORM_RTL8152
377            default n
378
379        config RT_CHERRYUSB_HOST_FTDI
380            bool
381            prompt "Enable usb ftdi driver"
382            default n
383
384        config RT_CHERRYUSB_HOST_CH34X
385            bool
386            prompt "Enable usb ch34x driver"
387            default n
388
389        config RT_CHERRYUSB_HOST_CP210X
390            bool
391            prompt "Enable usb cp210x driver"
392            default n
393
394        config RT_CHERRYUSB_HOST_PL2303
395            bool
396            prompt "Enable usb pl2303 driver"
397            default n
398
399        config CONFIG_USBHOST_PLATFORM_CDC_ECM
400            bool
401
402        config CONFIG_USBHOST_PLATFORM_CDC_RNDIS
403            bool
404
405        config CONFIG_USBHOST_PLATFORM_CDC_NCM
406            bool
407
408        config CONFIG_USBHOST_PLATFORM_ASIX
409            bool
410
411        config CONFIG_USBHOST_PLATFORM_RTL8152
412            bool
413
414        config CONFIG_USBHOST_PSC_PRIO
415            int
416            prompt "Set hubport change thread priority, 0 is the max priority"
417            default 0
418
419        config CONFIG_USBHOST_PSC_STACKSIZE
420            int
421            prompt "Set hubport change thread stacksize"
422            default 4096
423
424        config CONFIG_USBHOST_REQUEST_BUFFER_LEN
425            int
426            prompt "Set host control transfer max buffer size"
427            default 512
428
429        config CONFIG_USBHOST_CONTROL_TRANSFER_TIMEOUT
430            int
431            prompt "Set host control transfer timeout, unit is ms"
432            default 500
433
434        config RT_LWIP_PBUF_POOL_BUFSIZE
435            int "The size of each pbuf in the pbuf pool"
436            range 1500 2000
437            default 1600
438
439        config CONFIG_USB_DFS_MOUNT_POINT
440            string "usb host dfs mount point"
441            depends on RT_CHERRYUSB_HOST_MSC
442            default "/"
443
444        menu "Select USB host template, please select class driver first"
445            config CONFIG_TEST_USBH_CDC_ACM
446                int
447                prompt "demo for test cdc acm, cannot enable this demo, we have used serial framework instead"
448                default 0
449                depends on RT_CHERRYUSB_HOST_CDC_ACM
450            config CONFIG_TEST_USBH_HID
451                int
452                prompt "demo for test hid"
453                default 0
454                depends on RT_CHERRYUSB_HOST_HID
455            config CONFIG_TEST_USBH_MSC
456                int
457                prompt "demo for test msc, cannot enable this demo, we have used dfs instead"
458                default 0
459                depends on RT_CHERRYUSB_HOST_MSC
460        endmenu
461    endif
462endif
463