Bluetooth: controller: Add initial ULL Periodic Sync code
Add initial files and code for Periodic Sync feature support. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
parent
5acdb7d9d2
commit
b0cc96ec61
7 changed files with 80 additions and 2 deletions
|
@ -43,6 +43,10 @@ if(CONFIG_BT_LL_SW_SPLIT)
|
|||
CONFIG_BT_CTLR_ADV_EXT
|
||||
ll_sw/ull_scan_aux.c
|
||||
)
|
||||
zephyr_library_sources_ifdef(
|
||||
CONFIG_BT_CTLR_SCAN_PERIODIC
|
||||
ll_sw/ull_scan_sync.c
|
||||
)
|
||||
endif()
|
||||
if(CONFIG_BT_CONN)
|
||||
zephyr_library_sources(
|
||||
|
@ -64,7 +68,9 @@ if(CONFIG_BT_LL_SW_SPLIT)
|
|||
)
|
||||
endif()
|
||||
endif()
|
||||
if(CONFIG_BT_CONN OR CONFIG_BT_CTLR_ADV_PERIODIC)
|
||||
if(CONFIG_BT_CONN OR
|
||||
CONFIG_BT_CTLR_ADV_PERIODIC OR
|
||||
CONFIG_BT_CTLR_SCAN_PERIODIC)
|
||||
zephyr_library_sources(
|
||||
ll_sw/ull_chan.c
|
||||
ll_sw/lll_chan.c
|
||||
|
|
|
@ -45,6 +45,10 @@ config BT_CTLR_ADV_PERIODIC_SUPPORT
|
|||
depends on BT_CTLR_ADV_EXT_SUPPORT
|
||||
bool
|
||||
|
||||
config BT_CTLR_SCAN_PERIODIC_SUPPORT
|
||||
depends on BT_CTLR_ADV_EXT_SUPPORT
|
||||
bool
|
||||
|
||||
config BT_CTLR_CHAN_SEL_2_SUPPORT
|
||||
bool
|
||||
|
||||
|
@ -371,7 +375,7 @@ config BT_CTLR_PHY_CODED
|
|||
|
||||
config BT_CTLR_CHAN_SEL_2
|
||||
bool "Channel Selection Algorithm #2"
|
||||
depends on (BT_CONN || BT_CTLR_ADV_PERIODIC) && BT_CTLR_CHAN_SEL_2_SUPPORT
|
||||
depends on (BT_CONN || BT_CTLR_ADV_PERIODIC || BT_CTLR_SCAN_PERIODIC) && BT_CTLR_CHAN_SEL_2_SUPPORT
|
||||
default y
|
||||
help
|
||||
Enable support for Bluetooth 5.0 LE Channel Selection Algorithm #2 in
|
||||
|
@ -409,6 +413,15 @@ config BT_CTLR_ADV_PERIODIC
|
|||
Enable support for Bluetooth 5.0 LE Periodic Advertising in the
|
||||
Controller.
|
||||
|
||||
config BT_CTLR_SCAN_PERIODIC
|
||||
bool "LE Periodic Advertising Sync"
|
||||
depends on BT_OBSERVER && BT_CTLR_SCAN_PERIODIC_SUPPORT
|
||||
select BT_CTLR_CHAN_SEL_2
|
||||
default y if BT_PER_ADV_SYNC
|
||||
help
|
||||
Enable support for Bluetooth 5.0 LE Periodic Advertising Sync in the
|
||||
Controller.
|
||||
|
||||
config BT_CTLR_ADV_DATA_LEN_MAX
|
||||
int "Maximum Advertising Data Length"
|
||||
range 31 1650
|
||||
|
|
|
@ -28,6 +28,7 @@ config BT_LLL_VENDOR_NORDIC
|
|||
BT_CTLR_PHY_CODED_SUPPORT
|
||||
select BT_CTLR_ADV_EXT_SUPPORT
|
||||
select BT_CTLR_ADV_PERIODIC_SUPPORT
|
||||
select BT_CTLR_SCAN_PERIODIC_SUPPORT
|
||||
select BT_CTLR_CHAN_SEL_2_SUPPORT
|
||||
select BT_CTLR_MIN_USED_CHAN_SUPPORT
|
||||
select BT_CTLR_DTM_HCI_SUPPORT
|
||||
|
|
|
@ -94,9 +94,21 @@ uint8_t ll_adv_enable(uint8_t handle, uint8_t enable,
|
|||
uint8_t ll_adv_enable(uint8_t enable);
|
||||
#endif /* !CONFIG_BT_CTLR_ADV_EXT || !CONFIG_BT_HCI_MESH_EXT */
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_ADV_EXT)
|
||||
uint8_t ll_scan_params_set(uint8_t type, uint16_t interval, uint16_t window,
|
||||
uint8_t own_addr_type, uint8_t filter_policy);
|
||||
uint8_t ll_scan_enable(uint8_t enable);
|
||||
uint8_t ll_scan_sync_create(uint8_t options, uint8_t sid, uint8_t adv_addr_type,
|
||||
uint8_t *adv_addr, uint16_t skip,
|
||||
uint16_t sync_timeout, uint8_t sync_cte_type);
|
||||
uint8_t ll_scan_sync_create_cancel(void);
|
||||
uint8_t ll_scan_sync_terminate(uint16_t handle);
|
||||
uint8_t ll_scan_sync_recv_enable(uint16_t handle, uint8_t enable);
|
||||
#else /* !CONFIG_BT_CTLR_ADV_EXT */
|
||||
uint8_t ll_scan_params_set(uint8_t type, uint16_t interval, uint16_t window,
|
||||
uint8_t own_addr_type, uint8_t filter_policy);
|
||||
uint8_t ll_scan_enable(uint8_t enable);
|
||||
#endif /* !CONFIG_BT_CTLR_ADV_EXT */
|
||||
|
||||
uint8_t ll_wl_size_get(void);
|
||||
uint8_t ll_wl_clear(void);
|
||||
|
|
|
@ -107,6 +107,13 @@
|
|||
#define LL_FEAT_BIT_EXT_ADV 0
|
||||
#endif /* !CONFIG_BT_CTLR_ADV_EXT */
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_ADV_PERIODIC) || \
|
||||
defined(CONFIG_BT_CTLR_SCAN_PERIODIC)
|
||||
#define LL_FEAT_BIT_PER_ADV BIT64(BT_LE_FEAT_BIT_PER_ADV)
|
||||
#else /* !CONFIG_BT_CTLR_ADV_PERIODIC && !CONFIG_BT_CTLR_SCAN_PERIODIC */
|
||||
#define LL_FEAT_BIT_PER_ADV 0
|
||||
#endif /* !CONFIG_BT_CTLR_ADV_PERIODIC && !CONFIG_BT_CTLR_SCAN_PERIODIC */
|
||||
|
||||
#define LL_FEAT_BIT_MASK 0x1FFFF
|
||||
#define LL_FEAT_BIT_MASK_VALID 0x1CF2F
|
||||
#define LL_FEAT_FILTER_OCTET0 0x1FF00
|
||||
|
@ -123,5 +130,6 @@
|
|||
LL_FEAT_BIT_SMI_RX | \
|
||||
LL_FEAT_BIT_PHY_CODED | \
|
||||
LL_FEAT_BIT_EXT_ADV | \
|
||||
LL_FEAT_BIT_PER_ADV | \
|
||||
LL_FEAT_BIT_CHAN_SEL_2 | \
|
||||
LL_FEAT_BIT_MIN_USED_CHAN)
|
||||
|
|
35
subsys/bluetooth/controller/ll_sw/ull_scan_sync.c
Normal file
35
subsys/bluetooth/controller/ll_sw/ull_scan_sync.c
Normal file
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Copyright (c) 2020 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include <bluetooth/hci.h>
|
||||
|
||||
uint8_t ll_scan_sync_create(uint8_t options, uint8_t sid, uint8_t adv_addr_type,
|
||||
uint8_t *adv_addr, uint16_t skip,
|
||||
uint16_t sync_timeout, uint8_t sync_cte_type)
|
||||
{
|
||||
/* TODO: */
|
||||
return BT_HCI_ERR_CMD_DISALLOWED;
|
||||
}
|
||||
|
||||
uint8_t ll_scan_sync_create_cancel(void)
|
||||
{
|
||||
/* TODO: */
|
||||
return BT_HCI_ERR_CMD_DISALLOWED;
|
||||
}
|
||||
|
||||
uint8_t ll_scan_sync_terminate(uint16_t handle)
|
||||
{
|
||||
/* TODO: */
|
||||
return BT_HCI_ERR_CMD_DISALLOWED;
|
||||
}
|
||||
|
||||
uint8_t ll_scan_sync_recv_enable(uint16_t handle, uint8_t enable)
|
||||
{
|
||||
/* TODO: */
|
||||
return BT_HCI_ERR_CMD_DISALLOWED;
|
||||
}
|
|
@ -5,6 +5,9 @@ CONFIG_BT_PERIPHERAL=y
|
|||
CONFIG_BT_OBSERVER=y
|
||||
CONFIG_BT_CENTRAL=y
|
||||
CONFIG_BT_EXT_ADV=y
|
||||
CONFIG_BT_PER_ADV=y
|
||||
CONFIG_BT_PER_ADV_SYNC=y
|
||||
|
||||
CONFIG_BT_CTLR_ADV_EXT=y
|
||||
CONFIG_BT_CTLR_ADV_PERIODIC=y
|
||||
CONFIG_BT_CTLR_SCAN_PERIODIC=y
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue