105 lines
3.5 KiB
C
105 lines
3.5 KiB
C
/***************************************************************************
|
|
*
|
|
* Copyright 2015-2019 BES.
|
|
* All rights reserved. All unpublished rights reserved.
|
|
*
|
|
* No part of this work may be used or reproduced in any form or by any
|
|
* means, or stored in a database or retrieval system, without prior written
|
|
* permission of BES.
|
|
*
|
|
* Use of this work is governed by a license granted by BES.
|
|
* This work contains confidential and proprietary information of
|
|
* BES. which is protected by copyright, trade secret,
|
|
* trademark and other intellectual property rights.
|
|
*
|
|
****************************************************************************/
|
|
#ifndef __BT_DRV_INTERNAL_H__
|
|
#define __BT_DRV_INTERNAL_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "stdint.h"
|
|
#include "stdbool.h"
|
|
|
|
#define ASSERT_ERR(cond) { if (!(cond)) { BT_DRV_TRACE(2,"line is %d file is %s", __LINE__, __FILE__); } }
|
|
|
|
#define BT_DRIVER_GET_U8_REG_VAL(regAddr) (*(uint8_t *)(uintptr_t)(regAddr))
|
|
#define BT_DRIVER_GET_U16_REG_VAL(regAddr) (*(uint16_t *)(uintptr_t)(regAddr))
|
|
#define BT_DRIVER_GET_U32_REG_VAL(regAddr) (*(uint32_t *)(uintptr_t)(regAddr))
|
|
|
|
#define BT_DRIVER_PUT_U8_REG_VAL(regAddr, val) *(uint8_t *)(uintptr_t)(regAddr) = (val)
|
|
#define BT_DRIVER_PUT_U16_REG_VAL(regAddr, val) *(uint16_t *)(uintptr_t)(regAddr) = (val)
|
|
#define BT_DRIVER_PUT_U32_REG_VAL(regAddr, val) *(uint32_t *)(uintptr_t)(regAddr) = (val)
|
|
|
|
typedef uint32_t BT_CONTROLER_TRACE_TYPE;
|
|
#define BT_CONTROLER_TRACE_TYPE_INTERSYS 0x01
|
|
#define BT_CONTROLER_TRACE_TYPE_CONTROLLER 0x02
|
|
#define BT_CONTROLER_TRACE_TYPE_LMP_TRACE 0x04
|
|
#define BT_CONTROLER_TRACE_TYPE_SPUV_HCI_BUFF 0x08
|
|
#define BT_CONTROLER_FILTER_TRACE_TYPE_A2DP_STREAM 0x10
|
|
#define BT_CONTROLER_TRACE_TYPE_DUMP_BUFF 0x20
|
|
|
|
#define BT_SUB_SYS_TYPE 0
|
|
#define MCU_SYS_TYPE 1
|
|
#define BT_EM_AREA_1_TYPE 2
|
|
#define BT_EM_AREA_2_TYPE 3
|
|
|
|
#define BT_FA_INVERT_EN 1
|
|
#define BT_FA_INVERT_DISABLE 0
|
|
|
|
void bt_drv_set_fa_invert_enable(uint8_t en);
|
|
uint8_t btdrv_rf_init(void);
|
|
void btdrv_test_mode_rf_txpwr_init(void);
|
|
void btdrv_ins_patch_init(void);
|
|
void btdrv_data_patch_init(void);
|
|
void btdrv_patch_en(uint8_t en);
|
|
void btdrv_config_init(void);
|
|
void btdrv_config_end(void);
|
|
void btdrv_testmode_config_init(void);
|
|
void btdrv_bt_spi_rawbuf_init(void);
|
|
void btdrv_bt_spi_xtal_init(void);
|
|
void btdrv_sync_config(void);
|
|
void btdrv_rf_rx_gain_adjust_req(uint32_t user, bool lowgain);
|
|
#ifdef BT_50_FUNCTION
|
|
void btdrv_config_init_ble5(void);
|
|
void btdrv_ins_patch_init_50(void);
|
|
void btdrv_data_patch_init_50(void);
|
|
#endif
|
|
void btdrv_trace_config(BT_CONTROLER_TRACE_TYPE trace_config);
|
|
void btdrv_btc_fault_dump(void);
|
|
void btdrv_dump_mem(uint8_t *dump_mem_start, uint32_t dump_length, uint8_t dump_type);
|
|
void ld_util_bch_create(uint8_t *lap, uint8_t *bch);
|
|
void btdrv_fast_lock_config(bool fastlock_on);
|
|
void btdrv_ecc_config(void);
|
|
|
|
enum BT_SYNCMODE_REQ_USER_T {
|
|
BT_SYNCMODE_REQ_USER_BT,
|
|
BT_SYNCMODE_REQ_USER_BLE,
|
|
|
|
BT_SYNCMODE_REQ_USER_QTY
|
|
};
|
|
void btdrv_hw_agc_stop_mode(enum BT_SYNCMODE_REQ_USER_T user, bool hw_agc_mode);
|
|
|
|
|
|
inline uint16_t co_read16p(void const *ptr16)
|
|
{
|
|
uint16_t value = ((uint8_t *)ptr16)[0] | ((uint8_t *)ptr16)[1] << 8;
|
|
return value;
|
|
}
|
|
|
|
inline uint32_t co_read32p(void const *ptr32)
|
|
{
|
|
uint16_t addr_l, addr_h;
|
|
addr_l = co_read16p((uint16_t *)ptr32);
|
|
addr_h = co_read16p((uint16_t *)ptr32 + 1);
|
|
return ((uint32_t)addr_l | (uint32_t)addr_h << 16);
|
|
}
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|