2016-08-15 12:28:31 +02:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2016 Nordic Semiconductor ASA
|
|
|
|
* Copyright (c) 2016 Vinayak Kariappa Chettimada
|
|
|
|
*
|
2017-01-18 17:01:01 -08:00
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
2016-08-15 12:28:31 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _LL_H_
|
|
|
|
#define _LL_H_
|
|
|
|
|
2017-03-14 17:09:36 +01:00
|
|
|
int ll_init(struct k_sem *sem_rx);
|
2017-03-13 15:32:37 +01:00
|
|
|
void ll_reset(void);
|
2017-04-28 10:44:22 +02:00
|
|
|
u8_t *ll_addr_get(u8_t addr_type, u8_t *p_bdaddr);
|
|
|
|
void ll_addr_set(u8_t addr_type, u8_t const *const p_bdaddr);
|
2017-05-30 22:41:20 +02:00
|
|
|
|
|
|
|
#if defined(CONFIG_BLUETOOTH_CONTROLLER_ADV_EXT)
|
|
|
|
u32_t ll_adv_params_set(u8_t handle, u16_t evt_prop, u32_t interval,
|
|
|
|
u8_t adv_type, u8_t own_addr_type,
|
|
|
|
u8_t direct_addr_type, u8_t const *const direct_addr,
|
|
|
|
u8_t chl_map, u8_t filter_policy, u8_t *tx_pwr,
|
|
|
|
u8_t phy_p, u8_t skip, u8_t phy_s, u8_t sid, u8_t sreq);
|
|
|
|
#else /* !CONFIG_BLUETOOTH_CONTROLLER_ADV_EXT */
|
2017-06-07 13:58:27 +02:00
|
|
|
u32_t ll_adv_params_set(u16_t interval, u8_t adv_type,
|
|
|
|
u8_t own_addr_type, u8_t direct_addr_type,
|
2017-05-30 22:41:20 +02:00
|
|
|
u8_t const *const direct_addr, u8_t chl_map,
|
2017-06-07 13:58:27 +02:00
|
|
|
u8_t filter_policy);
|
2017-05-30 22:41:20 +02:00
|
|
|
#endif /* !CONFIG_BLUETOOTH_CONTROLLER_ADV_EXT */
|
|
|
|
|
2017-04-20 12:00:29 -05:00
|
|
|
void ll_adv_data_set(u8_t len, u8_t const *const p_data);
|
|
|
|
void ll_scan_data_set(u8_t len, u8_t const *const p_data);
|
|
|
|
u32_t ll_adv_enable(u8_t enable);
|
2017-06-07 20:50:35 +02:00
|
|
|
u32_t ll_scan_params_set(u8_t type, u16_t interval, u16_t window,
|
2017-06-07 13:58:27 +02:00
|
|
|
u8_t own_addr_type, u8_t filter_policy);
|
2017-04-20 12:00:29 -05:00
|
|
|
u32_t ll_scan_enable(u8_t enable);
|
2017-06-13 13:57:04 +02:00
|
|
|
|
|
|
|
u32_t ll_wl_size_get(void);
|
|
|
|
u32_t ll_wl_clear(void);
|
|
|
|
u32_t ll_wl_add(bt_addr_le_t *addr);
|
|
|
|
u32_t ll_wl_remove(bt_addr_le_t *addr);
|
2017-03-13 15:32:37 +01:00
|
|
|
|
|
|
|
void ll_irk_clear(void);
|
2017-04-20 12:00:29 -05:00
|
|
|
u32_t ll_irk_add(u8_t *irk);
|
|
|
|
u32_t ll_create_connection(u16_t scan_interval, u16_t scan_window,
|
2017-04-21 13:18:52 +02:00
|
|
|
u8_t filter_policy, u8_t peer_addr_type,
|
|
|
|
u8_t *p_peer_addr, u8_t own_addr_type,
|
|
|
|
u16_t interval, u16_t latency,
|
|
|
|
u16_t timeout);
|
2017-04-20 12:00:29 -05:00
|
|
|
u32_t ll_connect_disable(void);
|
|
|
|
u32_t ll_conn_update(u16_t handle, u8_t cmd, u8_t status,
|
2017-04-21 13:18:52 +02:00
|
|
|
u16_t interval, u16_t latency,
|
|
|
|
u16_t timeout);
|
2017-04-20 12:00:29 -05:00
|
|
|
u32_t ll_chm_update(u8_t *chm);
|
|
|
|
u32_t ll_chm_get(u16_t handle, u8_t *chm);
|
|
|
|
u32_t ll_enc_req_send(u16_t handle, u8_t *rand, u8_t *ediv,
|
2017-04-21 13:18:52 +02:00
|
|
|
u8_t *ltk);
|
2017-04-20 12:00:29 -05:00
|
|
|
u32_t ll_start_enc_req_send(u16_t handle, u8_t err_code,
|
2017-04-21 13:18:52 +02:00
|
|
|
u8_t const *const ltk);
|
2017-04-20 12:00:29 -05:00
|
|
|
u32_t ll_feature_req_send(u16_t handle);
|
|
|
|
u32_t ll_version_ind_send(u16_t handle);
|
|
|
|
u32_t ll_terminate_ind_send(u16_t handle, u8_t reason);
|
2017-03-13 15:32:37 +01:00
|
|
|
|
|
|
|
#if defined(CONFIG_BLUETOOTH_CONTROLLER_DATA_LENGTH)
|
2017-04-20 12:00:29 -05:00
|
|
|
u32_t ll_length_req_send(u16_t handle, u16_t tx_octets);
|
|
|
|
void ll_length_default_get(u16_t *max_tx_octets, u16_t *max_tx_time);
|
|
|
|
u32_t ll_length_default_set(u16_t max_tx_octets, u16_t max_tx_time);
|
|
|
|
void ll_length_max_get(u16_t *max_tx_octets, u16_t *max_tx_time,
|
2017-04-21 13:18:52 +02:00
|
|
|
u16_t *max_rx_octets, u16_t *max_rx_time);
|
2017-03-13 15:32:37 +01:00
|
|
|
#endif /* CONFIG_BLUETOOTH_CONTROLLER_DATA_LENGTH */
|
2016-08-15 12:28:31 +02:00
|
|
|
|
2017-04-29 06:50:52 +02:00
|
|
|
#if defined(CONFIG_BLUETOOTH_CONTROLLER_PHY)
|
|
|
|
u32_t ll_phy_get(u16_t handle, u8_t *tx, u8_t *rx);
|
|
|
|
u32_t ll_phy_default_set(u8_t tx, u8_t rx);
|
|
|
|
u32_t ll_phy_req_send(u16_t handle, u8_t tx, u8_t flags, u8_t rx);
|
|
|
|
#endif /* CONFIG_BLUETOOTH_CONTROLLER_PHY */
|
|
|
|
|
2016-08-15 12:28:31 +02:00
|
|
|
#endif /* _LL_H_ */
|