/* Initialize Framework Layer. 
Initialize companion module and register callback. */
ADI_BLER_RESULT adi_ble_Init(ADI_CALLBACK const pCallbackFunc, void *const pCBParam)
/* Initialize Framework Layer. 
Initialize companion module and register callback. */
ADI_BLER_RESULT adi_ble_Init(ADI_CALLBACK const pCallbackFunc, void *const pCBParam)
{
    ADI_BLER_RESULT eResult;
    ADI_TMR_RESULT  eTmrResult;
    ASSERT(pCallbackFunc != NULL);
    pApplicationCallback  = pCallbackFunc;
    pApplicationParameter = pCBParam;
    eTmrResult = adi_tmr_Init(ADI_BLE_NOOS_GP_TIMER, TimerCallback, NULL, true);
    RETURN_ERROR(eTmrResult, ADI_TMR_SUCCESS, ADI_BLER_FAILURE);    
    eResult = adi_radio_Init(BleCallback);
    RETURN_ERROR(eResult, ADI_BLER_SUCCESS, eResult);
    return adi_ble_WaitForEventWithTimeout(CORE_INITIALIZATION_RSP, ADI_BLE_INIT_CORE_INIT_RSP_TIME_MS);
}