menu "Bluetooth"
    visible if SOC_BT_SUPPORTED

    config BT_ENABLED
        bool "Bluetooth"
        depends on SOC_BT_SUPPORTED && !APP_NO_BLOBS
        help
            Select this option to enable Bluetooth and show the submenu with Bluetooth configuration choices.

    choice BT_HOST
        prompt "Host"
        depends on BT_ENABLED
        default BT_BLUEDROID_ENABLED
        help
            This helps to choose Bluetooth host stack

        config BT_BLUEDROID_ENABLED
            bool "Bluedroid - Dual-mode"
            help
                This option is recommended for classic Bluetooth or for dual-mode
                usecases

        config BT_NIMBLE_ENABLED
            bool "NimBLE - BLE only"
            help
                This option is recommended for BLE only usecases to save on memory

        config BT_CONTROLLER_ONLY
            bool "Disabled"
            help
                This option is recommended when you want to communicate directly with the
                controller (without any host) or when you are using any other host stack
                not supported by Espressif (not mentioned here).

    endchoice

    choice BT_CONTROLLER
        prompt "Controller"
        depends on BT_ENABLED
        default BT_CONTROLLER_ENABLED
        help
            This helps to choose Bluetooth controller stack

        config BT_CONTROLLER_ENABLED
            bool "Enabled"
            help
                This option is recommended for Bluetooth controller usecases

        config BT_CONTROLLER_DISABLED
            bool "Disabled"
            help
                This option is recommended for Bluetooth Host only usecases

    endchoice

    menu "Bluedroid Options"
        depends on BT_BLUEDROID_ENABLED
        source "$IDF_PATH/components/bt/host/bluedroid/Kconfig.in"
    endmenu

    menu "NimBLE Options"
        depends on BT_NIMBLE_ENABLED
        source "$IDF_PATH/components/bt/host/nimble/Kconfig.in"
    endmenu

    menu "Controller Options"
        depends on BT_CONTROLLER_ENABLED
        source "$IDF_PATH/components/bt/controller/$IDF_TARGET/Kconfig.in"
    endmenu

    config BT_RELEASE_IRAM
        depends on BT_ENABLED && BT_LE_RELEASE_IRAM_SUPPORTED
        bool "Release Bluetooth text (READ DOCS FIRST)"
        default n
        help
            This option release Bluetooth text section and merge Bluetooth data, bss & text into
            a large free heap region when esp_bt_mem_release is called, total saving ~21kB or more of IRAM.
            ESP32-C2 only 3 configurable PMP entries available, rest of them are hard-coded.
            We cannot split the memory into 3 different regions (IRAM, BLE-IRAM, DRAM).
            So this option will disable the PMP (ESP_SYSTEM_PMP_IDRAM_SPLIT)

endmenu

menuconfig BLE_MESH
    bool "ESP BLE Mesh Support"
    depends on BT_ENABLED
    help
        This option enables ESP BLE Mesh support. The specific features that are
        available may depend on other features that have been enabled in the
        stack, such as Bluetooth Support, Bluedroid Support & GATT support.

source "$IDF_PATH/components/bt/esp_ble_mesh/Kconfig.in"