Kconfig 26 KB
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
menu "Device Drivers"

config RT_USING_DEVICE_IPC
    bool "Using device drivers IPC"
    default y

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"
        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_V2
            default 64
    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
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 "Use DWT for CPU time"
        default y
        depends on ARCH_ARM_CORTEX_M3 || ARCH_ARM_CORTEX_M4 || ARCH_ARM_CORTEX_M7
        help
            Some Cortex-M3/4/7 MCU has Data Watchpoint and Trace Register, use
            the cycle counter in DWT for CPU time.
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_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_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"
        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

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

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

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
                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