Merge branch 'feat/ble_iso_nimble_support_v5.4' into 'release/v5.4'

feat(ble): ISO minor support for NimBLE Host (v5.4)

See merge request espressif/esp-idf!41374
This commit is contained in:
Island
2025-08-21 14:02:30 +08:00
3 changed files with 173 additions and 0 deletions

View File

@@ -759,6 +759,13 @@ if(CONFIG_BT_ENABLED)
"host/nimble/nimble/nimble/host/src/ble_eatt.c"
)
if(CONFIG_BT_NIMBLE_ISO)
list(APPEND srcs
"host/nimble/nimble/nimble/host/src/ble_hs_iso_hci.c"
"host/nimble/nimble/nimble/host/src/ble_hs_iso.c"
)
endif()
if(CONFIG_BT_CONTROLLER_DISABLED AND CONFIG_BT_NIMBLE_TRANSPORT_UART)
list(APPEND srcs
"host/nimble/nimble/nimble/transport/uart_ll/src/hci_uart.c"

View File

@@ -734,6 +734,84 @@ if BT_NIMBLE_50_FEATURE_SUPPORT
default n
help
Enable support for Connectionless and Connection Oriented Direction Finding
config BT_NIMBLE_ISO
bool "Isochronous channels"
depends on BT_NIMBLE_50_FEATURE_SUPPORT
help
Enable BLE Isochronous functionality.
if BT_NIMBLE_ISO
choice BT_NIMBLE_ISO_FLOW_CONTROL
prompt "ISO flow control mode"
default BT_NIMBLE_ISO_NON_STD_FLOW_CTRL
help
ISO flow control mode
config BT_NIMBLE_ISO_STD_FLOW_CTRL
bool "Standard"
help
ISO standard flow control
config BT_NIMBLE_ISO_NON_STD_FLOW_CTRL
bool "Non-standard"
help
ISO non-standard flow control
endchoice
config BT_NIMBLE_ISO_TEST
bool "ISO Test mode"
default y
help
Enable BLE Isochronous Test functionality.
config BT_NIMBLE_ISO_BIG
int "Maximum number of BIG"
range 1 2
default 1
help
Maximum number of BIG.
config BT_NIMBLE_ISO_BIS
int "Maximum number of BIS"
range 1 3
default 2
help
Maximum number of BIS.
config BT_NIMBLE_ISO_BIS_PER_BIG
int "Maximum number of BIS per BIG"
range 1 3
default 2
help
Maximum number of BIS per BIG.
config BT_NIMBLE_ISO_CIG
int "Maximum number of CIG"
range 1 2
default 1
help
Maximum number of CIG.
config BT_NIMBLE_ISO_CIS
int "Maximum number of CIS"
range 1 3
default 2
help
Maximum number of CIS.
config BT_NIMBLE_ISO_CIS_PER_CIG
int "Maximum number of CIS per CIG"
range 1 3
default 2
help
Maximum number of CIS per CIG.
config BT_NIMBLE_ISO_CIS_ESTAB_V2
bool "LE CIS Established event [v2]"
help
Enable this to support LE CIS Established event [v2].
endif
endif
menuconfig BT_NIMBLE_GATT_CACHING

View File

@@ -2010,6 +2010,94 @@
#endif
#endif
#ifndef MYNEWT_VAL_BLE_ISO
#ifdef CONFIG_BT_NIMBLE_ISO
#define MYNEWT_VAL_BLE_ISO CONFIG_BT_NIMBLE_ISO
#else
#define MYNEWT_VAL_BLE_ISO (0)
#endif
#endif
#ifndef MYNEWT_VAL_BLE_ISO_STD_FLOW_CTRL
#ifdef CONFIG_BT_NIMBLE_ISO_STD_FLOW_CTRL
#define MYNEWT_VAL_BLE_ISO_STD_FLOW_CTRL CONFIG_BT_NIMBLE_ISO_STD_FLOW_CTRL
#else
#define MYNEWT_VAL_BLE_ISO_STD_FLOW_CTRL (0)
#endif
#endif
#ifndef MYNEWT_VAL_BLE_ISO_NON_STD_FLOW_CTRL
#ifdef CONFIG_BT_NIMBLE_ISO_NON_STD_FLOW_CTRL
#define MYNEWT_VAL_BLE_ISO_NON_STD_FLOW_CTRL CONFIG_BT_NIMBLE_ISO_NON_STD_FLOW_CTRL
#else
#define MYNEWT_VAL_BLE_ISO_NON_STD_FLOW_CTRL (0)
#endif
#endif
#ifndef MYNEWT_VAL_BLE_ISO_TEST
#ifdef CONFIG_BT_NIMBLE_ISO_TEST
#define MYNEWT_VAL_BLE_ISO_TEST CONFIG_BT_NIMBLE_ISO_TEST
#else
#define MYNEWT_VAL_BLE_ISO_TEST (0)
#endif
#endif
#ifndef MYNEWT_VAL_BLE_ISO_BIG
#ifdef CONFIG_BT_NIMBLE_ISO_BIG
#define MYNEWT_VAL_BLE_ISO_BIG CONFIG_BT_NIMBLE_ISO_BIG
#else
#define MYNEWT_VAL_BLE_ISO_BIG (0)
#endif
#endif
#ifndef MYNEWT_VAL_BLE_ISO_BIS
#ifdef CONFIG_BT_NIMBLE_ISO_BIS
#define MYNEWT_VAL_BLE_ISO_BIS CONFIG_BT_NIMBLE_ISO_BIS
#else
#define MYNEWT_VAL_BLE_ISO_BIS (0)
#endif
#endif
#ifndef MYNEWT_VAL_BLE_ISO_BIS_PER_BIG
#ifdef CONFIG_BT_NIMBLE_ISO_BIS_PER_BIG
#define MYNEWT_VAL_BLE_ISO_BIS_PER_BIG CONFIG_BT_NIMBLE_ISO_BIS_PER_BIG
#else
#define MYNEWT_VAL_BLE_ISO_BIS_PER_BIG (0)
#endif
#endif
#ifndef MYNEWT_VAL_BLE_ISO_CIG
#ifdef CONFIG_BT_NIMBLE_ISO_CIG
#define MYNEWT_VAL_BLE_ISO_CIG CONFIG_BT_NIMBLE_ISO_CIG
#else
#define MYNEWT_VAL_BLE_ISO_CIG (0)
#endif
#endif
#ifndef MYNEWT_VAL_BLE_ISO_CIS
#ifdef CONFIG_BT_NIMBLE_ISO_CIS
#define MYNEWT_VAL_BLE_ISO_CIS CONFIG_BT_NIMBLE_ISO_CIS
#else
#define MYNEWT_VAL_BLE_ISO_CIS (0)
#endif
#endif
#ifndef MYNEWT_VAL_BLE_ISO_CIS_PER_CIG
#ifdef CONFIG_BT_NIMBLE_ISO_CIS_PER_CIG
#define MYNEWT_VAL_BLE_ISO_CIS_PER_CIG CONFIG_BT_NIMBLE_ISO_CIS_PER_CIG
#else
#define MYNEWT_VAL_BLE_ISO_CIS_PER_CIG (0)
#endif
#endif
#ifndef MYNEWT_VAL_BLE_ISO_CIS_ESTAB_V2
#ifdef CONFIG_BT_NIMBLE_ISO_CIS_ESTAB_V2
#define MYNEWT_VAL_BLE_ISO_CIS_ESTAB_V2 CONFIG_BT_NIMBLE_ISO_CIS_ESTAB_V2
#else
#define MYNEWT_VAL_BLE_ISO_CIS_ESTAB_V2 (0)
#endif
#endif
#ifndef MYNEWT_VAL_BLE_GATTC_PROC_PREEMPTION_PROTECT
#ifdef CONFIG_BT_NIMBLE_GATTC_PROC_PREEMPTION_PROTECT
#define MYNEWT_VAL_BLE_GATTC_PROC_PREEMPTION_PROTECT CONFIG_BT_NIMBLE_GATTC_PROC_PREEMPTION_PROTECT