summaryrefslogtreecommitdiff
path: root/components/drivers/Kconfig
blob: b0a5d70ef1ec342f4b118855b9390af4529027b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
menu "Device Drivers"

config RT_USING_DEVICE_IPC
    bool "Using device drivers IPC"
    default y

config RT_UNAMED_PIPE_NUMBER
    int "The number of unamed pipe"
    default 64

if RT_USING_DEVICE_IPC
    config RT_USING_SYSTEM_WORKQUEUE
        bool "Using system default workqueue"
        default n

    if RT_USING_SYSTEM_WORKQUEUE
        config RT_SYSTEM_WORKQUEUE_STACKSIZE
            int "The stack size for system workqueue thread"
            default 2048

        config RT_SYSTEM_WORKQUEUE_PRIORITY
            int "The priority level of system workqueue thread"
            default 23
    endif
endif

menuconfig RT_USING_SERIAL
    bool "USING Serial device drivers"
    select RT_USING_DEVICE_IPC
    select RT_USING_DEVICE
    default y

    if RT_USING_SERIAL
        choice
            prompt "Choice Serial version"
            default RT_USING_SERIAL_V1
            config RT_USING_SERIAL_V1
                bool "RT_USING_SERIAL_V1"
            config RT_USING_SERIAL_V2
                bool "RT_USING_SERIAL_V2"
            config RT_USING_SERIAL_X
                bool "RT_USING_SERIAL_X"
                help
                    A serial driver that supporting True NonBlock.
        endchoice
        config RT_SERIAL_USING_DMA
            bool "Enable serial DMA mode"
            default y

        config RT_SERIAL_RB_BUFSZ
            int "Set RX buffer size"
            depends on RT_USING_SERIAL_V1
            default 64

        if RT_USING_SERIAL_X
            config RT_SERIAL_FIFO_BUFSZ
                int "Set SerialX FIFO buffer size"
                default 128
                help
                    suggestion: RT_SERIAL_FIFO_BUFSZ == 2^N
                    and RT_SERIAL_FIFO_BUFSZ >= 2*RT_SERIAL_DMA_BUFSZ

            config RT_SERIAL_DMA_BUFSZ
                int "Set SerialX DMA buffer size"
                depends on RT_SERIAL_USING_DMA
                default 64
                help
                    suggestion: RT_SERIAL_DMA_BUFSZ == 2^N
                    and RT_SERIAL_FIFO_BUFSZ >= 2*RT_SERIAL_DMA_BUFSZ

            config RT_SERIAL_HARD_FIFO
                bool "Using Hard FIFO"
                default n
                help
                    Useful only if the chip supported
                    eg: NUC970 N9H30 serial chips
                        The UART1/2/4/6/8/10 is built-in with a 64-byte transmitter FIFO (TX_FIFO)
                        and a 64-byte receiver FIFO (RX_FIFO),
                        and the UART0/3/5/7/9 are equipped 16-byte transmitter FIFO (TX_FIFO)
                        and 16-byte receiver FIFO (RX_FIFO).
        endif
    endif

config RT_USING_TTY
    bool "Using TTY SYSTEM"
    depends on RT_USING_SMART
    default y

if RT_USING_TTY
    config RT_TTY_DEBUG
        bool "Using TTY DEBUG"
        default n
endif

config RT_USING_CAN
    bool "Using CAN device drivers"
    default n

if RT_USING_CAN
    config RT_CAN_USING_HDR
        bool "Enable CAN hardware filter"
        default n
    config RT_CAN_USING_CANFD
        bool "Enable CANFD support"
        default n
endif

config RT_USING_HWTIMER
    bool "Using hardware timer device drivers"
    default n

config RT_USING_CPUTIME
    bool "Enable CPU time for high resolution clock counter"
    default n
    help
        When enable this option, the BSP should provide a rt_clock_cputime_ops
        for CPU time by:
        const static struct rt_clock_cputime_ops _ops = {...};
        clock_cpu_setops(&_ops);

        Then user can use high resolution clock counter with:

        ts1 = clock_cpu_gettime();
        ts2 = clock_cpu_gettime();

        /* and get the ms of delta tick with API: */
        ms_tick = clock_cpu_millisecond(t2 - t1);
        us_tick = clock_cpu_microsecond(t2 - t1);

if RT_USING_CPUTIME
    config RT_USING_CPUTIME_CORTEXM
        bool "Support Cortex-M CPU"
        default y
        depends on ARCH_ARM_CORTEX_M0 || ARCH_ARM_CORTEX_M3 || ARCH_ARM_CORTEX_M4 || ARCH_ARM_CORTEX_M7
        select PKG_USING_PERF_COUNTER
    config RT_USING_CPUTIME_RISCV
        bool "Use rdtime instructions for CPU time"
        default y
        depends on ARCH_RISCV64
        help
            Some RISCV64 MCU Use rdtime instructions read CPU time.
    config CPUTIME_TIMER_FREQ
        int "CPUTIME timer freq"
        default 0
endif

config RT_USING_I2C
    bool "Using I2C device drivers"
    default n

if RT_USING_I2C
    config RT_I2C_DEBUG
        bool "Use I2C debug message"
        default n

    config RT_USING_I2C_BITOPS
        bool "Use GPIO to simulate I2C"
        default y

    if RT_USING_I2C_BITOPS
        config RT_I2C_BITOPS_DEBUG
            bool "Use simulate I2C debug message"
            default n
    endif
endif

config RT_USING_PHY
    bool "Using ethernet phy device drivers"
    default n

config RT_USING_PIN
    bool "Using generic GPIO device drivers"
    default y

config RT_USING_ADC
    bool "Using ADC device drivers"
    default n

config RT_USING_DAC
    bool "Using DAC device drivers"
    default n

config RT_USING_NULL
    bool "Using NULL device drivers"
    default n

config RT_USING_ZERO
    bool "Using ZERO device drivers"
    default n

config RT_USING_RANDOM
    bool "Using RANDOM device drivers"
    default n

config RT_USING_PWM
    bool "Using PWM device drivers"
    default n

config RT_USING_MTD_NOR
    bool "Using MTD Nor Flash device drivers"
    default n

config RT_USING_MTD_NAND
    bool "Using MTD Nand Flash device drivers"
    default n

    if RT_USING_MTD_NAND
    config RT_MTD_NAND_DEBUG
        bool "Enable MTD Nand operations debug information"
        default n
    endif

config RT_USING_PM
    bool "Using Power Management device drivers"
    default n

    if RT_USING_PM
        config PM_TICKLESS_THRESHOLD_TIME
            int "PM tickless threashold time"
            default 2

        config PM_USING_CUSTOM_CONFIG
            bool "PM using custom pm config"
            default n

        config PM_ENABLE_DEBUG
            bool "PM Enable Debug"
            default n

        config PM_ENABLE_SUSPEND_SLEEP_MODE
            bool "PM Device suspend change sleep mode"
            default n

        config PM_ENABLE_THRESHOLD_SLEEP_MODE
            bool "PM using threshold time change sleep mode"
            default n

        if PM_ENABLE_THRESHOLD_SLEEP_MODE
            config PM_LIGHT_THRESHOLD_TIME
                int "PM light mode threashold time"
                default 5

            config PM_DEEP_THRESHOLD_TIME
                int "PM deep mode threashold time"
                default 20

            config PM_STANDBY_THRESHOLD_TIME
                int "PM standby mode threashold time"
                default 100
        endif
    endif

config RT_USING_FDT
    bool "Using fdt interface for device drivers"
    default n
    if RT_USING_FDT
        config RT_USING_FDTLIB
            bool "Using fdt lib for device drivers"
            default y
        config FDT_USING_DEBUG
            bool "Using fdt debug function "
            default n

    endif

config RT_USING_RTC
    bool "Using RTC device drivers"
    default n

    if RT_USING_RTC
        config RT_USING_ALARM
            bool "Using RTC alarm"
            default n

        config RT_USING_SOFT_RTC
            bool "Using software simulation RTC device"
            default n
    endif

config RT_USING_SDIO
    bool "Using SD/MMC device drivers"
    default n

    if RT_USING_SDIO
        config RT_SDIO_STACK_SIZE
            int "The stack size for sdio irq thread"
            default 512

        config RT_SDIO_THREAD_PRIORITY
            int "The priority level value of sdio irq thread"
            default 15

        config RT_MMCSD_STACK_SIZE
            int "The stack size for mmcsd thread"
            default 1024

        config RT_MMCSD_THREAD_PREORITY
            int "The priority level value of mmcsd thread"
            default 22

        config RT_MMCSD_MAX_PARTITION
            int "mmcsd max partition"
            default 16
        config RT_SDIO_DEBUG
            bool "Enable SDIO debug log output"
        default n
    endif

config RT_USING_SPI
    bool "Using SPI Bus/Device device drivers"
    default n

    if RT_USING_SPI
        config RT_USING_SPI_BITOPS
            select RT_USING_PIN
            bool "Use GPIO to simulate SPI"
            default n

        if RT_USING_SPI_BITOPS
            config RT_SPI_BITOPS_DEBUG
                bool "Use simulate SPI debug message"
                default n
        endif

        config RT_USING_QSPI
            bool "Enable QSPI mode"
            default n

        config RT_USING_SPI_MSD
            bool "Using SD/TF card driver with spi"
            select RT_USING_DFS
            default n

        config RT_USING_SFUD
            bool "Using Serial Flash Universal Driver"
            default n
            help
                An using JEDEC's SFDP standard serial (SPI) flash universal driver library

            if RT_USING_SFUD
                config RT_SFUD_USING_SFDP
                bool "Using auto probe flash JEDEC SFDP parameter"
                default y

                config RT_SFUD_USING_FLASH_INFO_TABLE
                bool "Using defined supported flash chip information table"
                default y

                config RT_SFUD_USING_QSPI
                bool "Using QSPI mode support"
                select RT_USING_QSPI
                default n

                config RT_SFUD_SPI_MAX_HZ
                int "Default spi maximum speed(HZ)"
                range 0 50000000
                default 50000000
                help
                    Read the JEDEC SFDP command must run at 50 MHz or less,and you also can use rt_spi_configure(); to config spi speed.

                config RT_DEBUG_SFUD
                bool "Show more SFUD debug information"
                default n
            endif

        config RT_USING_ENC28J60
            bool "Using ENC28J60 SPI Ethernet network interface"
            select RT_USING_LWIP
            default n

        config RT_USING_SPI_WIFI
            bool "Using RW009/007 SPI Wi-Fi wireless interface"
            select RT_USING_LWIP
            default n
    endif

config RT_USING_WDT
    bool "Using Watch Dog device drivers"
    default n

config RT_USING_AUDIO
    bool "Using Audio device drivers"
    default n

    if RT_USING_AUDIO
        config RT_AUDIO_REPLAY_MP_BLOCK_SIZE
            int "Replay memory pool block size"
            default 4096

        config RT_AUDIO_REPLAY_MP_BLOCK_COUNT
            int "Replay memory pool block count"
            default 2

        config RT_AUDIO_RECORD_PIPE_SIZE
            int "Record pipe size"
            default 2048
    endif

config RT_USING_SENSOR
    bool "Using Sensor device drivers"
    select RT_USING_PIN
    default n

if RT_USING_SENSOR
    config RT_USING_SENSOR_CMD
        bool "Using Sensor cmd"
        select PKG_USING_RT_VSNPRINTF_FULL
        default y
endif

config RT_USING_TOUCH
    bool "Using Touch device drivers"
    default n
    if RT_USING_TOUCH
        config RT_TOUCH_PIN_IRQ
        bool "touch irq use pin irq"
        default n
    endif

config RT_USING_LCD
    bool "Using LCD graphic drivers"
    default n

menuconfig RT_USING_HWCRYPTO
        bool "Using Hardware Crypto drivers"
        default n

    if RT_USING_HWCRYPTO
        config RT_HWCRYPTO_DEFAULT_NAME
            string "Hardware crypto device name"
            default "hwcryto"

        config RT_HWCRYPTO_IV_MAX_SIZE
            int "IV max size"
            default "16"

        config RT_HWCRYPTO_KEYBIT_MAX_SIZE
            int "Key max bit length"
            default 256

        config RT_HWCRYPTO_USING_GCM
            bool "Using Hardware GCM"
            default n

        config RT_HWCRYPTO_USING_AES
            bool "Using Hardware AES"
            default n

        if RT_HWCRYPTO_USING_AES
            config RT_HWCRYPTO_USING_AES_ECB
                bool "Using Hardware AES ECB mode"
                default y

            config RT_HWCRYPTO_USING_AES_CBC
                bool "Using Hardware AES CBC mode"
                default n

            config RT_HWCRYPTO_USING_AES_CFB
                bool "Using Hardware AES CFB mode"
                default n

            config RT_HWCRYPTO_USING_AES_CTR
                bool "Using Hardware AES CTR mode"
                default n

            config RT_HWCRYPTO_USING_AES_OFB
                bool "Using Hardware AES OFB mode"
                default n
        endif

        config RT_HWCRYPTO_USING_DES
            bool "Using Hardware DES"
            default n

        if RT_HWCRYPTO_USING_DES
            config RT_HWCRYPTO_USING_DES_ECB
                bool "Using Hardware DES ECB mode"
                default y

            config RT_HWCRYPTO_USING_DES_CBC
                bool "Using Hardware DES CBC mode"
                default n
        endif

        config RT_HWCRYPTO_USING_3DES
            bool "Using Hardware 3DES"
            default n

        if RT_HWCRYPTO_USING_3DES
            config RT_HWCRYPTO_USING_3DES_ECB
                bool "Using Hardware 3DES ECB mode"
                default y

            config RT_HWCRYPTO_USING_3DES_CBC
                bool "Using Hardware 3DES CBC mode"
                default n
        endif

        config RT_HWCRYPTO_USING_RC4
            bool "Using Hardware RC4"
            default n

        config RT_HWCRYPTO_USING_MD5
            bool "Using Hardware MD5"
            default n

        config RT_HWCRYPTO_USING_SHA1
            bool "Using Hardware SHA1"
            default n

        config RT_HWCRYPTO_USING_SHA2
            bool "Using Hardware SHA2"
            default n

        if RT_HWCRYPTO_USING_SHA2
            config RT_HWCRYPTO_USING_SHA2_224
                bool "Using Hardware SHA2_224 mode"
                default n

            config RT_HWCRYPTO_USING_SHA2_256
                bool "Using Hardware SHA2_256 mode"
                default y

            config RT_HWCRYPTO_USING_SHA2_384
                bool "Using Hardware SHA2_384 mode"
                default n

            config RT_HWCRYPTO_USING_SHA2_512
                bool "Using Hardware SHA2_512 mode"
                default n
        endif

        config RT_HWCRYPTO_USING_RNG
            bool "Using Hardware RNG"
            default n

        config RT_HWCRYPTO_USING_CRC
            bool "Using Hardware CRC"
            default n

        if RT_HWCRYPTO_USING_CRC
            config RT_HWCRYPTO_USING_CRC_07
                bool "Using Hardware CRC-8 0x07 polynomial"
                default n

            config RT_HWCRYPTO_USING_CRC_8005
                bool "Using Hardware CRC-16 0x8005 polynomial"
                default n

            config RT_HWCRYPTO_USING_CRC_1021
                bool "Using Hardware CRC-16 0x1021 polynomial"
                default n

            config RT_HWCRYPTO_USING_CRC_3D65
                bool "Using Hardware CRC-16 0x3D65 polynomial"
                default n

            config RT_HWCRYPTO_USING_CRC_04C11DB7
                bool "Using Hardware CRC-32 0x04C11DB7 polynomial"
                default n
        endif

        config RT_HWCRYPTO_USING_BIGNUM
            bool "Using Hardware bignum"
            default n

        if RT_HWCRYPTO_USING_BIGNUM
            config RT_HWCRYPTO_USING_BIGNUM_EXPTMOD
                bool "Using Hardware bignum expt_mod operation"
                default y

            config RT_HWCRYPTO_USING_BIGNUM_MULMOD
                bool "Using Hardware bignum mul_mod operation"
                default y

            config RT_HWCRYPTO_USING_BIGNUM_MUL
                bool "Using Hardware bignum mul operation"
                default n

            config RT_HWCRYPTO_USING_BIGNUM_ADD
                bool "Using Hardware bignum add operation"
                default n

            config RT_HWCRYPTO_USING_BIGNUM_SUB
                bool "Using Hardware bignum sub operation"
                default n
        endif
    endif

config RT_USING_PULSE_ENCODER
    bool "Using PULSE ENCODER device drivers"
    default n

config RT_USING_INPUT_CAPTURE
    bool "Using INPUT CAPTURE device drivers"
    default n

if RT_USING_INPUT_CAPTURE
    config RT_INPUT_CAPTURE_RB_SIZE
        int "Set input capture ringbuffer size"
        default 100
endif

config RT_USING_DEV_BUS
    bool "Using Device Bus device drivers"
    default y if RT_USING_SMART
    default n if !RT_USING_SMART

menuconfig RT_USING_WIFI
    bool "Using Wi-Fi framework"
    default n

    if RT_USING_WIFI
        config RT_WLAN_DEVICE_STA_NAME
            string "The device name for station"
            default "wlan0"

        config RT_WLAN_DEVICE_AP_NAME
            string "The device name for ap"
            default "wlan1"

        config RT_WLAN_SSID_MAX_LENGTH
            int "SSID maximum length"
            default 32

        config RT_WLAN_PASSWORD_MAX_LENGTH
            int "Password maximum length"
            default 32

        config RT_WLAN_DEV_EVENT_NUM
            int "Driver events maxcount"
            default 2

        config RT_WLAN_MANAGE_ENABLE
            bool "Connection management Enable"
            default y

        if RT_WLAN_MANAGE_ENABLE
            config RT_WLAN_SCAN_WAIT_MS
                int "Set scan timeout time(ms)"
                default 10000

            config RT_WLAN_CONNECT_WAIT_MS
                int "Set connect timeout time(ms)"
                default 10000

            config RT_WLAN_SCAN_SORT
                bool "Automatic sorting of scan results"
                default y

            config RT_WLAN_MSH_CMD_ENABLE
                bool "MSH command Enable"
                default y

            config RT_WLAN_AUTO_CONNECT_ENABLE
                bool "Auto connect Enable"
                select RT_WLAN_CFG_ENABLE
                select RT_WLAN_WORK_THREAD_ENABLE
                default y

            if RT_WLAN_AUTO_CONNECT_ENABLE
                config AUTO_CONNECTION_PERIOD_MS
                    int "Auto connect period(ms)"
                    default 2000
            endif
        endif

        config RT_WLAN_CFG_ENABLE
            bool "WiFi information automatically saved Enable"
            default y

        if RT_WLAN_CFG_ENABLE
            config RT_WLAN_CFG_INFO_MAX
                int "Maximum number of WiFi information automatically saved"
                default 3
        endif

        config RT_WLAN_PROT_ENABLE
            bool "Transport protocol manage Enable"
            default y

        if RT_WLAN_PROT_ENABLE
            config RT_WLAN_PROT_NAME_LEN
                int "Transport protocol name length"
                default 8

            config RT_WLAN_PROT_MAX
                int "Transport protocol maxcount"
                default 2

            config RT_WLAN_DEFAULT_PROT
                string "Default transport protocol"
                default "lwip"

            config RT_WLAN_PROT_LWIP_ENABLE
                bool "LWIP transport protocol Enable"
                select RT_USING_LWIP
                default y

            if RT_WLAN_PROT_LWIP_ENABLE
                config RT_WLAN_PROT_LWIP_NAME
                    string "LWIP transport protocol name"
                    default "lwip"

                config RT_WLAN_PROT_LWIP_PBUF_FORCE
                    bool "Forced use of PBUF transmission"
                    default n
            endif
        endif

        config RT_WLAN_WORK_THREAD_ENABLE
            bool "WLAN work queue thread Enable"
            default y

        if RT_WLAN_WORK_THREAD_ENABLE
            config RT_WLAN_WORKQUEUE_THREAD_NAME
                string "WLAN work queue thread name"
                default "wlan"

            config RT_WLAN_WORKQUEUE_THREAD_SIZE
                int "WLAN work queue thread size"
                default 2048

            config RT_WLAN_WORKQUEUE_THREAD_PRIO
                int "WLAN work queue thread priority"
                default 15
        endif

        menuconfig RT_WLAN_DEBUG
            bool "Enable WLAN Debugging Options"
            default n

        if RT_WLAN_DEBUG
            config RT_WLAN_CMD_DEBUG
                bool "Enable Debugging of wlan_cmd.c"
                default n

            config RT_WLAN_MGNT_DEBUG
                bool "Enable Debugging of wlan_mgnt.c"
                default n

            config RT_WLAN_DEV_DEBUG
                bool "Enable Debugging of wlan_dev.c"
                default n

            config RT_WLAN_PROT_DEBUG
                bool "Enable Debugging of wlan_prot.c"
                default n

            config RT_WLAN_CFG_DEBUG
                bool "Enable Debugging of wlan_cfg.c"
                default n

            config RT_WLAN_LWIP_DEBUG
                bool "Enable Debugging of wlan_lwip.c"
                default n
        endif
    endif

menuconfig RT_USING_VIRTIO
    bool "Using VirtIO device drivers"
    default n

    if RT_USING_VIRTIO
        choice
            prompt "VirtIO Version"
            default RT_USING_VIRTIO10

            config RT_USING_VIRTIO10
                bool "VirtIO v1.0"
        endchoice

        config RT_USING_VIRTIO_MMIO_ALIGN
            bool "Using VirtIO MMIO alignment"
            default y

        config RT_USING_VIRTIO_BLK
            bool "Using VirtIO BLK"
            default y

        config RT_USING_VIRTIO_NET
            bool "Using VirtIO NET"
            default y

        menuconfig RT_USING_VIRTIO_CONSOLE
            bool "Using VirtIO Console"
            default y

            if RT_USING_VIRTIO_CONSOLE
                config RT_USING_VIRTIO_CONSOLE_PORT_MAX_NR
                    int "Max number of port in VirtIO Console"
                    default 4
            endif

        config RT_USING_VIRTIO_GPU
            bool "Using VirtIO GPU"
            default y

        config RT_USING_VIRTIO_INPUT
            bool "Using VirtIO Input"
            default y
    endif

menu "Using USB"
    config RT_USING_USB
        bool
        default n

    config RT_USING_USB_HOST
        bool "Using USB host"
        default n
        select RT_USING_USB

        if RT_USING_USB_HOST
            config RT_USBH_MSTORAGE
                bool "Enable Udisk Drivers"
                default n
                if RT_USBH_MSTORAGE
                    config UDISK_MOUNTPOINT
                        string "Udisk mount dir"
                        default "/"
                endif
            config RT_USBH_HID
                bool "Enable HID Drivers"
                default n
                if RT_USBH_HID
                    config RT_USBH_HID_MOUSE
                        bool "Enable HID mouse protocol"
                        default n
                    config RT_USBH_HID_KEYBOARD
                        bool "Enable HID keyboard protocol"
                        default n
                endif
        endif
    config RT_USING_USB_DEVICE
        bool "Using USB device"
        default n
        select RT_USING_USB

        if RT_USING_USB_DEVICE || RT_USING_USB_HOST
            config RT_USBD_THREAD_STACK_SZ
                int "usb thread stack size"
                default 4096
        endif
        if RT_USING_USB_DEVICE
            config USB_VENDOR_ID
                hex "USB Vendor ID"
                default 0x0FFE
            config USB_PRODUCT_ID
                hex "USB Product ID"
                default 0x0001

            config RT_USB_DEVICE_COMPOSITE
                bool "Enable composite device"
                default n
                choice
                    prompt "Device type"
                    default _RT_USB_DEVICE_NONE
                    depends on !RT_USB_DEVICE_COMPOSITE
                    config _RT_USB_DEVICE_NONE
                        bool "Using custom class by register interface"
                        select RT_USB_DEVICE_NONE
                    config _RT_USB_DEVICE_CDC
                        bool "Enable to use device as CDC device"
                        select RT_USB_DEVICE_CDC
                    config _RT_USB_DEVICE_MSTORAGE
                        bool "Enable to use device as Mass Storage device"
                        select RT_USB_DEVICE_MSTORAGE
                    config _RT_USB_DEVICE_HID
                        bool "Enable to use device as HID device"
                        select RT_USB_DEVICE_HID
                    config _RT_USB_DEVICE_RNDIS
                        bool "Enable to use device as rndis device"
                        select RT_USB_DEVICE_RNDIS
                        depends on RT_USING_LWIP
                    config _RT_USB_DEVICE_ECM
                        bool "Enable to use device as ecm device"
                        select RT_USB_DEVICE_ECM
                        depends on RT_USING_LWIP
                    config _RT_USB_DEVICE_WINUSB
                        bool "Enable to use device as winusb device"
                        select RT_USB_DEVICE_WINUSB
                    config _RT_USB_DEVICE_AUDIO
                        bool "Enable to use device as audio device"
                        select RT_USB_DEVICE_AUDIO
                endchoice
                if RT_USB_DEVICE_COMPOSITE
                    config RT_USB_DEVICE_CDC
                        bool "Enable to use device as CDC device"
                        default n
                    config RT_USB_DEVICE_NONE
                        bool
                        default y
                    config RT_USB_DEVICE_MSTORAGE
                        bool "Enable to use device as Mass Storage device"
                        default n
                    config RT_USB_DEVICE_HID
                        bool "Enable to use device as HID device"
                        default n
                    config RT_USB_DEVICE_RNDIS
                        bool "Enable to use device as rndis device"
                        default n
                        depends on RT_USING_LWIP
                    config RT_USB_DEVICE_ECM
                        bool "Enable to use device as ecm device"
                        default n
                        depends on RT_USING_LWIP
                    config RT_USB_DEVICE_WINUSB
                        bool "Enable to use device as winusb device"
                        default n
                    config RT_USB_DEVICE_AUDIO
                        bool "Enable to use device as audio device"
                        default n
                endif
                if RT_USB_DEVICE_CDC
                    config RT_VCOM_TASK_STK_SIZE
                        int "virtual com thread stack size"
                        default 512
                    config RT_CDC_RX_BUFSIZE
                        int "virtual com rx buffer size"
                        default 128
                    config RT_VCOM_TX_USE_DMA
                        bool "Enable to use dma for vcom tx"
                        default n
                    config RT_VCOM_SERNO
                        string "serial number of virtual com"
                        default "32021919830108"
                    config RT_VCOM_SER_LEN
                        int "serial number length of virtual com"
                        default 14
                    config RT_VCOM_TX_TIMEOUT
                        int "tx timeout(ticks) of virtual com"
                        default 1000
                endif
                if RT_USB_DEVICE_WINUSB
                    config RT_WINUSB_GUID
                    string "Guid for winusb"
                    default "{6860DC3C-C05F-4807-8807-1CA861CC1D66}"
                endif
                if RT_USB_DEVICE_MSTORAGE
                    config RT_USB_MSTORAGE_DISK_NAME
                    string "msc class disk name"
                    default "flash0"
                endif

                if RT_USB_DEVICE_RNDIS
                    config RNDIS_DELAY_LINK_UP
                        bool "Delay linkup media connection"
                        select RT_USING_TIMER_SOFT
                        default n
                endif

                if RT_USB_DEVICE_HID
                    config RT_USB_DEVICE_HID_KEYBOARD
                        bool "Use to HID device as Keyboard"
                        default n
                    if RT_USB_DEVICE_HID_KEYBOARD
                        config RT_USB_DEVICE_HID_KEYBOARD_NUMBER
                        int "Number of Keyboard(max 3)"
                        default 1
                        range 1 3
                    endif
                    config RT_USB_DEVICE_HID_MOUSE
                        bool "Use to HID device as Mouse"
                        default n
                    config RT_USB_DEVICE_HID_GENERAL
                        bool "Use to HID device as General HID device"
                        default y
                        if RT_USB_DEVICE_HID_GENERAL
                            config RT_USB_DEVICE_HID_GENERAL_OUT_REPORT_LENGTH
                                int "General HID device out report length"
                                default 63
                                range 0 63

                            config RT_USB_DEVICE_HID_GENERAL_IN_REPORT_LENGTH
                                int "General HID device in report length"
                                default 63
                                range 0 63
                        endif
                    config RT_USB_DEVICE_HID_MEDIA
                        bool "Use to HID device as media keyboard"
                        default y
                endif
                if RT_USB_DEVICE_AUDIO
                    config RT_USB_DEVICE_AUDIO_MIC
                        bool "Use usb mic device as audio device"
                        default n
                        if RT_USB_DEVICE_AUDIO_MIC
                            config RT_USBD_MIC_DEVICE_NAME
                            string "audio mic device name"
                            default "mic0"
                        endif
                    config RT_USB_DEVICE_AUDIO_SPEAKER
                        bool "Use usb speaker device as audio device"
                        default n
                        if RT_USB_DEVICE_AUDIO_SPEAKER
                            config RT_USBD_SPEAKER_DEVICE_NAME
                            string "audio speaker device name"
                            default "sound0"
                        endif
                endif
        endif
    endmenu
endmenu