1menu "Bluetooth"
2    visible if (IDF_TARGET_ESP32 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3)
3
4    config BT_ENABLED
5        bool "Bluetooth"
6        depends on (IDF_TARGET_ESP32 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3)
7        help
8            Select this option to enable Bluetooth and show the submenu with Bluetooth configuration choices.
9
10    config BT_CTRL_ESP32
11        bool
12        depends on BT_ENABLED && IDF_TARGET_ESP32
13        default y
14
15    config BT_CTRL_ESP32C3
16        bool
17        depends on BT_ENABLED && IDF_TARGET_ESP32C3
18        default y
19    config BT_CTRL_ESP32S3
20        bool
21        depends on BT_ENABLED && IDF_TARGET_ESP32S3
22        default y
23
24    config BT_SOC_SUPPORT_5_0
25        bool
26        depends on BT_ENABLED && (IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3)
27        default y if BT_ENABLED && (IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3)
28        default n
29
30    menu "Bluetooth controller(ESP32 Dual Mode Bluetooth)"
31        visible if BT_CTRL_ESP32
32
33        source "$IDF_PATH/components/bt/controller/esp32/Kconfig.in"
34    endmenu
35
36    menu "Bluetooth controller(ESP32C3 Bluetooth Low Energy)"
37        visible if BT_CTRL_ESP32C3
38
39        source "$IDF_PATH/components/bt/controller/esp32c3/Kconfig.in"
40    endmenu
41
42    menu "Bluetooth controller(ESP32S3 Bluetooth Low Energy)"
43        visible if BT_CTRL_ESP32S3
44
45        source "$IDF_PATH/components/bt/controller/esp32s3/Kconfig.in"
46    endmenu
47
48    choice BT_HOST
49        prompt "Bluetooth Host"
50        depends on BT_ENABLED && (BTDM_CTRL_HCI_MODE_VHCI || BT_CTRL_HCI_MODE_VHCI)
51        default BT_BLUEDROID_ENABLED
52        help
53            This helps to choose Bluetooth host stack
54
55        config BT_BLUEDROID_ENABLED
56            bool "Bluedroid - Dual-mode"
57            help
58                This option is recommended for classic Bluetooth or for dual-mode
59                usecases
60
61        config BT_NIMBLE_ENABLED
62            bool "NimBLE - BLE only"
63            help
64                This option is recommended for BLE only usecases to save on memory
65
66        config BT_CONTROLLER_ONLY
67            bool "Controller Only"
68            help
69                This option is recommended when you want to communicate directly with the
70                controller (without any host) or when you are using any other host stack
71                not supported by Espressif (not mentioned here).
72
73    endchoice
74
75    menu "Bluedroid Options"
76        visible if BT_BLUEDROID_ENABLED
77
78        source "$IDF_PATH/components/bt/host/bluedroid/Kconfig.in"
79    endmenu
80    menu "NimBLE Options"
81        visible if BT_NIMBLE_ENABLED
82
83        source "$IDF_PATH/components/bt/host/nimble/Kconfig.in"
84    endmenu
85
86endmenu
87
88menuconfig BLE_MESH
89    bool "ESP BLE Mesh Support"
90    depends on BT_ENABLED
91    help
92        This option enables ESP BLE Mesh support. The specific features that are
93        available may depend on other features that have been enabled in the
94        stack, such as Bluetooth Support, Bluedroid Support & GATT support.
95
96source "$IDF_PATH/components/bt/esp_ble_mesh/Kconfig.in"
97