Skip to content

Commit 87a188b

Browse files
committed
hal: ambiq: add apollo3x BT controller deinitialization API.
This commit adds the BT controller deinitialization API for Ambiq Apollo3x. Signed-off-by: Aaron Ye <[email protected]>
1 parent d3092f9 commit 87a188b

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

components/bluetooth/am_apollo3_bt_support.c

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ uint32_t am_apollo3_bt_controller_init(void)
7676
}
7777
else
7878
{
79-
return AM_HAL_STATUS_FAIL;
79+
am_hal_ble_initialize(0, &BLE);
80+
am_hal_ble_power_control(BLE, AM_HAL_BLE_POWER_ACTIVE);
8081
}
8182

8283
//
@@ -159,6 +160,31 @@ uint32_t am_apollo3_bt_controller_init(void)
159160
return AM_HAL_STATUS_SUCCESS;
160161
}
161162

163+
//*****************************************************************************
164+
//
165+
// Deinitialize the Apollo3x BLE controller driver.
166+
//
167+
//*****************************************************************************
168+
uint32_t am_apollo3_bt_controller_deinit(void)
169+
{
170+
uint32_t ui32Status;
171+
172+
ui32Status = am_hal_ble_power_control(BLE, AM_HAL_BLE_POWER_OFF);
173+
if (ui32Status != AM_HAL_STATUS_SUCCESS)
174+
{
175+
return ui32Status;
176+
}
177+
178+
//
179+
// Give some time to power off the BLE controller
180+
//
181+
k_sleep(K_SECONDS(1));
182+
183+
ui32Status = am_hal_ble_deinitialize(BLE);
184+
185+
return ui32Status;
186+
}
187+
162188
//*****************************************************************************
163189
//
164190
// BLE ISR preprocessing.

components/bluetooth/am_apollo3_bt_support.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,15 @@ typedef enum
6666
//*****************************************************************************
6767
uint32_t am_apollo3_bt_controller_init(void);
6868

69+
//*****************************************************************************
70+
//
71+
//! @brief Deinitialize the Apollo3x BLE controller driver.
72+
//!
73+
//! @return status of BLE controller deinitialization.
74+
//
75+
//*****************************************************************************
76+
uint32_t am_apollo3_bt_controller_deinit(void);
77+
6978
//*****************************************************************************
7079
//
7180
//! @brief BLE ISR preprocessing.

0 commit comments

Comments
 (0)