1menu "Bluetooth"
2
3    config BT_ENABLED
4        bool "Bluetooth"
5        depends on !APP_NO_BLOBS
6        help
7            Select this option to enable Bluetooth and show the submenu with Bluetooth configuration choices.
8
9    choice BT_HOST
10        prompt "Host"
11        depends on BT_ENABLED
12        default BT_BLUEDROID_ENABLED
13        help
14            This helps to choose Bluetooth host stack
15
16        config BT_BLUEDROID_ENABLED
17            depends on BT_CONTROLLER_ENABLED
18            bool "Bluedroid - Dual-mode"
19            help
20                This option is recommended for classic Bluetooth or for dual-mode
21                usecases
22
23        config BT_NIMBLE_ENABLED
24            bool "NimBLE - BLE only"
25            help
26                This option is recommended for BLE only usecases to save on memory
27
28        config BT_CONTROLLER_ONLY
29            depends on SOC_BT_SUPPORTED
30            bool "Disabled"
31            help
32                This option is recommended when you want to communicate directly with the
33                controller (without any host) or when you are using any other host stack
34                not supported by Espressif (not mentioned here).
35
36    endchoice
37
38    choice BT_CONTROLLER
39        prompt "Controller"
40        depends on BT_ENABLED
41        default BT_CONTROLLER_ENABLED
42        help
43            This helps to choose Bluetooth controller stack
44
45        config BT_CONTROLLER_ENABLED
46            depends on SOC_BT_SUPPORTED
47            bool "Enabled"
48            help
49                This option is recommended for Bluetooth controller usecases
50
51        config BT_CONTROLLER_DISABLED
52            bool "Disabled"
53            help
54                This option is recommended for Bluetooth Host only usecases
55
56    endchoice
57
58    menu "Bluedroid Options"
59        depends on BT_BLUEDROID_ENABLED
60        source "$IDF_PATH/components/bt/host/bluedroid/Kconfig.in"
61    endmenu
62
63    menu "NimBLE Options"
64        depends on BT_NIMBLE_ENABLED
65        source "$IDF_PATH/components/bt/host/nimble/Kconfig.in"
66    endmenu
67
68    menu "Controller Options"
69        depends on BT_CONTROLLER_ENABLED
70        source "$IDF_PATH/components/bt/controller/$IDF_TARGET/Kconfig.in"
71    endmenu
72
73    config BT_RELEASE_IRAM
74        depends on BT_ENABLED && BT_LE_RELEASE_IRAM_SUPPORTED
75        bool "Release Bluetooth text (READ DOCS FIRST)"
76        default n
77        help
78            This option release Bluetooth text section and merge Bluetooth data, bss & text into
79            a large free heap region when esp_bt_mem_release is called, total saving ~21kB or more of IRAM.
80            ESP32-C2 only 3 configurable PMP entries available, rest of them are hard-coded.
81            We cannot split the memory into 3 different regions (IRAM, BLE-IRAM, DRAM).
82            So this option will disable the PMP (ESP_SYSTEM_PMP_IDRAM_SPLIT)
83
84    config BT_HCI_LOG_DEBUG_EN
85        depends on BT_BLUEDROID_ENABLED || BT_NIMBLE_ENABLED
86        bool "Enable Bluetooth HCI debug mode"
87        default n
88        help
89            This option is used to enable bluetooth debug mode, which saves the hci layer data stream.
90
91    config BT_HCI_LOG_DATA_BUFFER_SIZE
92        depends on BT_HCI_LOG_DEBUG_EN
93        int "Size of the cache used for HCI data in Bluetooth HCI debug mode (N*1024 bytes)"
94        range 1 100
95        default 5
96        help
97            This option is to configure the buffer size of the hci data steam cache in hci debug mode.
98            This is a ring buffer, the new data will overwrite the oldest data if the buffer is full.
99
100    config BT_HCI_LOG_ADV_BUFFER_SIZE
101        depends on BT_HCI_LOG_DEBUG_EN
102        int "Size of the cache used for adv report in Bluetooth HCI debug mode (N*1024 bytes)"
103        range 1 100
104        default 8
105        help
106            This option is to configure the buffer size of the hci adv report cache in hci debug mode.
107            This is a ring buffer, the new data will overwrite the oldest data if the buffer is full.
108
109    menu "Common Options"
110        visible if (BT_BLUEDROID_ENABLED || BT_NIMBLE_ENABLED)
111
112        source "$IDF_PATH/components/bt/common/Kconfig.in"
113    endmenu
114
115endmenu
116
117menuconfig BLE_MESH
118    bool "ESP BLE Mesh Support"
119    depends on BT_ENABLED
120    help
121        This option enables ESP BLE Mesh support. The specific features that are
122        available may depend on other features that have been enabled in the
123        stack, such as Bluetooth Support, Bluedroid Support & GATT support.
124
125source "$IDF_PATH/components/bt/esp_ble_mesh/Kconfig.in"
126