WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
hal_coex_reg_rom.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2020-2022. All rights reserved.
3 * Description: Header file for hal_coex_reg.c.
4 */
5
6#ifndef HAL_COEX_REG_ROM_H
7#define HAL_COEX_REG_ROM_H
8
9/*****************************************************************************
10 其他头文件包含
11*****************************************************************************/
12
13#include "oal_ext_if_rom.h"
14#include "hal_device_rom.h"
15#include "hal_chip_rom.h"
16#include "hal_soc_reg.h"
17#include "hal_gp_reg_rom.h"
18
19#ifdef __cplusplus
20#if __cplusplus
21extern "C" {
22#endif
23#endif
24
25/*****************************************************************************/
26/* WiFi状态存储寄存器,GP_REG2(0x40019388) 32bit */
27/* | 1 | 4 | 4 | 1 | 22 | */
28/* | wlan_on | channel | band_width | wlan_con | rsv | */
29/*****************************************************************************/
30
31/*****************************************************************************************/
32/* BSLE状态存储寄存器,GP_REG3(0x4001938C) 32bit */
33/* | 1 | 1 | 1 | 1 | 1 | 1 | 5 | 21 | */
34/* | ble_on | ble_scan | ble_adv | ble_init | ble_con | ble_hid | ble_con_num | rsv | */
35/*****************************************************************************************/
36
37/******************************************************************************/
38/* BSLE请求寄存器器,COEX_GP_REG0(0x40017010) 16bit */
39/* | 1 | 15 | */
40/* | req_ba | rsv | */
41/******************************************************************************/
42
43#define BLE_STATUS_MASK 0xFFFF
44#define BT_STATUS_OFFSET 16
45
46#define BT_ACL_STATUS_MASK (BIT14)
47#define BT_SCO_STATUS_MASK (BIT4)
48#define BT_M2S_6SLOT_MASK (BIT0)
49#define BT_M2S_LDAC_MASK (BIT1)
50#define BT_M2S_A2DP_MASK (BIT3)
51#define BT_ACL_STATUS_OFFSET_LEN 14
52#define BT_SCO_STATUS_OFFSET_LEN 4
53#define BTCOEX_POWSAVE_TIMEOUT_LEVEL0 100 // 音乐或者数传 ps时间 ms 蓝牙可能重传较多时,由65ms改成100ms
54#define BTCOEX_POWSAVE_TIMEOUT_LEVEL1 200 // page或inquiry或ldac时间 ms
55#define BTCOEX_POWSAVE_TIMEOUT_LEVEL2 300 // a2dp|transfer和page或inquiry的ps时间
56#define BTCOEX_S2M_RESUME_TIMEOUT 3000 // 切回mimo 状态等待时间
57/* wifi状态结构体, GP_REG2(0x40019388) 32bit */
58typedef struct { /* 73仅启用前三个状态 */
59 osal_u32 wlan_on : 1, /* WIFI:1:on,0:off */
60 wlan_chan_num : 4, /* 信道:1-14 */
61 wlan_bandwidth : 4, /* 带宽: 20/40M */
62 wlan_connect : 1, /* 连接 */
63 wlan_sleep : 1, /* 睡眠 */
64 wlan_scan : 1, /* 扫描 */
65 wlan_ps_stop : 1, /* 停止ps机制 */
66 wlan_fre : 1, /* 频段 */
67 wlan_p2p_scan : 1, /* p2p扫描 */
68 wlan_p2p_conn : 1, /* p2p连接 */
69 wlan_dbac : 4, /* dbac状态 */
70 wlan_diff_chan : 1, /* dbac下多信道共存 */
71 wlan_joining : 1, /* sta加入ap */
72 wlan_pro_11bgn : 1, /* 11bgn协议 */
73 wlan_pro_11ax : 1, /* 11ax协议 */
74 wlan_ps_slot_step : 2, /* ps请求申请提前量 */
77
82
83typedef struct {
88 bt_sco : 1,
89 bt_data_send : 1, // acl data send
90 bt_data_rcv : 1, // acl data recv
91 bt_transfer : 1, // not use (only wifi self) bt_data_send || bt_data_rcv
92 bt_6slot : 2, // BT soc slot, 12slot=1, 6solt=2
93 bt_ldac : 3, // a2dp_code状态:2/3为ldac,wifi侧处理时,重设1为ldac, 其他为0
94 bt_acl : 1, // 蓝牙有业务时,通过wifi发送ps状态给路由
95 bt_ba : 1, // not use (only wifi self)
98
99/* BSLE状态存储寄存器,GP_REG3(0x4001938C) 32bit */
104
105typedef struct {
106 osal_u32 ble_on : 1, // 只要有ble_scan,ble_adv,ble_init,ble_con有一个启动, 就为1
107 ble_scan : 1, // BLE进入扫描状态
108 ble_adv : 1, // BLE起业务时, 有广播发送
109 ble_init : 1, // 有ble设备创建连接时, 才设置1
110 ble_con : 1, // ble设备已经建立连接
111 ble_hid : 1, // BLE HID设备
112 ble_con_num : 5, // ble总连接数
115
120
121typedef struct {
122 osal_u16 req_ba : 1, // 请求删建0/1
123 req_ps : 1, // 请求ps操作
126
131
138
146
147typedef struct {
148 osal_u8 abort_duration_on; // abort统计开关
149 osal_u8 msl_cnt_enable; // ps事件延迟时间统计开关
150 osal_u8 post_dev_enable; // 抛事件到device侧的开关
152 osal_u32 abort_duration_start_us; // abort_start的时刻
153 osal_u32 abort_duration_us; // abort_start-abort_end的时间累计和
154 osal_u32 abort_duration_; // abort_duration_us超过1s的次数
155
156 osal_u32 msl_intr_cnt[HAL_BTCOEX_PS_BUTT]; // 两次维测命令期间mode_slect中断发生的次数
157 osal_u32 msl_bt_duration[HAL_BTCOEX_PS_BUTT]; // 两次维测命令期间mode_slect为低的次数
158 osal_u32 abort_start_cnt[HAL_BTCOEX_PS_BUTT]; // 两次维测命令期间abort_start中断发生的次数
159 osal_u32 ps_on_duration; // 两次维测命令期间处在ps_on的总时间
160 osal_u32 ps_on_last; // 记录上次ps_on开始时刻
161 osal_u32 abort_start_last; // 记录上次abort_start次数
162 osal_u16 ps_msg_delay[8]; // 分别记录ps事件 1~8ms delay 次数
163
164 /* DFX命令行使用 */
167
168/*****************************************************************************
169 函数声明
170*****************************************************************************/
193// 原host函数
204 oal_bool_enum_uint8 *sco_status);
205
210 osal_u32 qosnull_seq_num);
212 osal_u32 *qosnull_seq_num);
221 osal_u32 *abort_start, osal_u32 *abort_done, osal_u32 *abort_end);
224
225#ifdef __cplusplus
226#if __cplusplus
227}
228#endif
229#endif
230
231
232#endif
osal_void hal_set_btcoex_priority_period(osal_u16 priority_period)
osal_void hal_set_btcoex_abort_preempt_frame_param(osal_u16 preempt_param)
osal_void hal_btcoex_set_waite_rf_timeout(osal_u32 timeout)
osal_void hal_device_btcoex_sw_init(hal_to_dmac_device_stru *hal_device_base)
osal_void hal_btcoex_clear_reg(osal_void)
osal_u32 hal_btcoex_update_ap_beacon_count(osal_void)
osal_void hal_set_btcoex_sw_all_abort_ctrl(oal_bool_enum_uint8 sw_abort_ctrl)
struct hal_btcoex_btble_status_msg hal_btcoex_btble_status_msg_stru
osal_void hal_set_btcoex_abort_qos_null_seq_num(hal_to_dmac_device_stru *hal_device, osal_u32 qosnull_seq_num)
osal_void hal_btcoex_sync_rf_phy_cb(mac_channel_stru *channel)
osal_void hal_set_btcoex_wifi_status_notify(hal_btcoex_wifi_state_id_enum_uint8 id, osal_u32 val)
osal_void hal_btcoex_abort_end_isr(hal_device_stru *hal_device, osal_u8 data)
osal_void hal_btcoex_abort_start_isr(hal_device_stru *hal_device, osal_u8 data)
osal_void hal_btcoex_wait_bt_release_rf(osal_void)
osal_void hal_update_btcoex_btble_status(hal_btcoex_btble_status_stru *st_cur)
osal_void hal_btcoex_sw_preempt_exit(hal_to_dmac_device_stru *hal_device)
osal_void hal_btcoex_mode_select_end_isr(hal_device_stru *hal_device, osal_u8 data)
osal_void hal_set_btcoex_hw_priority_en(oal_bool_enum_uint8 hw_prio_en)
osal_s32 hal_irq_coex_isr(osal_s32 p1, osal_void *p2)
osal_u32(* process_bt_status_cb)(osal_void)
Definition hal_coex_reg_rom.h:188
osal_void hal_btcoex_sync_btble_status(hal_btcoex_btble_status_msg_stru *status_msg)
osal_void(* process_mode_select_cb)(osal_void)
Definition hal_coex_reg_rom.h:190
osal_u32(* process_pm_cb)(hal_work_sub_state_uint8 last, hal_work_sub_state_uint8 curr)
Definition hal_coex_reg_rom.h:191
osal_void hal_coex_sw_irq_set(hal_coex_sw_irq_type_enum_uint8 coex_irq_type)
osal_void hal_set_btcoex_hw_rx_priority_dis(oal_bool_enum_uint8 hw_rx_prio_dis)
osal_void hal_btcoex_get_ps_service_status(const hal_to_dmac_device_stru *hal_device, hal_btcoex_ps_status_enum_uint8 *ps_status)
osal_void hal_btcoex_register_irq(osal_void)
osal_void hal_device_set_state_btcoex_notify(oal_bool_enum_uint8 wifi_work)
hal_btcoex_btble_status_stru * hal_btcoex_btble_status_last(osal_void)
osal_void hal_coex_notify_irq_en(osal_u8 intr_en)
osal_void hal_btcoex_get_bt_sco_status(const hal_to_dmac_device_stru *hal_device, oal_bool_enum_uint8 *sco_status)
osal_void hal_get_btcoex_abort_qos_null_seq_num(hal_to_dmac_device_stru *hal_device, osal_u32 *qosnull_seq_num)
osal_void hal_btcoex_process_pm(hal_work_sub_state_uint8 last, hal_work_sub_state_uint8 curr)
osal_void hal_set_btcoex_abort_null_buff_addr(osal_u32 abort_null_buff_addr)
osal_void hal_btcoex_unregister_irq(osal_void)
osal_void(* sync_rf_phy_cb)(mac_channel_stru *channel)
Definition hal_coex_reg_rom.h:189
osal_void hal_btcoex_config_rf_reg2phy(mac_channel_stru *channel)
struct hal_btcoex_btble_status hal_btcoex_btble_status_stru
osal_void hal_btcoex_get_abort_cnt(hal_to_dmac_chip_stru *hal_chip, osal_u32 *abort_start, osal_u32 *abort_done, osal_u32 *abort_end)
hal_btcoex_statistics_stru * hal_btcoex_statistics(osal_void)
osal_void hal_set_btcoex_tx_abort_preempt_type(hal_coex_hw_preempt_mode_enum_uint8 preempt_type)
osal_void hal_set_btcoex_occupied_period(osal_u16 occupied_period)
osal_u8 hal_coex_hw_preempt_mode_enum_uint8
Definition hal_common_ops_device_rom.h:178
osal_u8 hal_btcoex_ps_status_enum_uint8
Definition hal_common_ops_device_rom.h:168
osal_u8 hal_coex_sw_irq_type_enum_uint8
Definition hal_common_ops_device_rom.h:338
@ HAL_BTCOEX_PS_BUTT
Definition hal_common_ops_device_rom.h:214
osal_u8 hal_work_sub_state_uint8
Definition hal_common_ops_device_rom.h:232
osal_u8 hal_btcoex_wifi_state_id_enum_uint8
Definition hal_common_ops_device_rom.h:209
osal_u8 oal_bool_enum_uint8
Definition oal_types_device_rom.h:45
int osal_s32
Definition osal_types.h:19
unsigned char osal_u8
Definition osal_types.h:11
void osal_void
Definition osal_types.h:29
unsigned int osal_u32
Definition osal_types.h:13
unsigned short osal_u16
Definition osal_types.h:12
Definition hal_coex_reg_rom.h:105
osal_u32 ble_adv
Definition hal_coex_reg_rom.h:108
osal_u32 ble_hid
Definition hal_coex_reg_rom.h:111
osal_u32 ble_scan
Definition hal_coex_reg_rom.h:107
osal_u32 ble_con
Definition hal_coex_reg_rom.h:110
osal_u32 ble_init
Definition hal_coex_reg_rom.h:109
osal_u32 ble_con_num
Definition hal_coex_reg_rom.h:112
osal_u32 ble_rsv
Definition hal_coex_reg_rom.h:113
osal_u32 ble_on
Definition hal_coex_reg_rom.h:106
Definition hal_coex_reg_rom.h:121
osal_u16 req_ps
Definition hal_coex_reg_rom.h:123
osal_u16 req_ba
Definition hal_coex_reg_rom.h:122
osal_u16 req_rsv
Definition hal_coex_reg_rom.h:124
Definition hal_coex_reg_rom.h:83
osal_u16 bt_data_send
Definition hal_coex_reg_rom.h:89
osal_u16 bt_ba
Definition hal_coex_reg_rom.h:95
osal_u16 bt_ldac
Definition hal_coex_reg_rom.h:93
osal_u16 bt_a2dp
Definition hal_coex_reg_rom.h:87
osal_u16 bt_data_rcv
Definition hal_coex_reg_rom.h:90
osal_u16 bt_on
Definition hal_coex_reg_rom.h:84
osal_u16 bt_acl
Definition hal_coex_reg_rom.h:94
osal_u16 bt_sco
Definition hal_coex_reg_rom.h:88
osal_u16 bt_resv
Definition hal_coex_reg_rom.h:96
osal_u16 bt_transfer
Definition hal_coex_reg_rom.h:91
osal_u16 bt_6slot
Definition hal_coex_reg_rom.h:92
osal_u16 bt_page
Definition hal_coex_reg_rom.h:86
osal_u16 bt_inquiry
Definition hal_coex_reg_rom.h:85
Definition hal_coex_reg_rom.h:139
osal_u16 rsv
Definition hal_coex_reg_rom.h:143
bt_status_stru bt_status
Definition hal_coex_reg_rom.h:141
bsle_req_stru action_req
Definition hal_coex_reg_rom.h:142
osal_u32 timestamp
Definition hal_coex_reg_rom.h:144
ble_status_stru ble_status
Definition hal_coex_reg_rom.h:140
Definition hal_coex_reg_rom.h:132
btcoex_bt_status_union bt_status
Definition hal_coex_reg_rom.h:134
osal_u16 rsv
Definition hal_coex_reg_rom.h:136
btcoex_ble_req_union action_req
Definition hal_coex_reg_rom.h:135
btcoex_ble_status_union ble_status
Definition hal_coex_reg_rom.h:133
Definition hal_coex_reg_rom.h:147
osal_u8 abort_duration_on
Definition hal_coex_reg_rom.h:148
osal_u32 timestamp_record
Definition hal_coex_reg_rom.h:165
osal_u8 rsv
Definition hal_coex_reg_rom.h:151
osal_u32 abort_duration_
Definition hal_coex_reg_rom.h:154
osal_u8 msl_cnt_enable
Definition hal_coex_reg_rom.h:149
osal_u32 abort_duration_us
Definition hal_coex_reg_rom.h:153
osal_u32 ps_on_last
Definition hal_coex_reg_rom.h:160
osal_u32 abort_duration_start_us
Definition hal_coex_reg_rom.h:152
osal_u8 post_dev_enable
Definition hal_coex_reg_rom.h:150
osal_u32 ps_on_duration
Definition hal_coex_reg_rom.h:159
osal_u32 abort_start_last
Definition hal_coex_reg_rom.h:161
Definition wlan_types_base_rom.h:258
Definition hal_device_rom.h:39
Definition hal_common_ops_device_rom.h:1122
Definition hal_ops_common_rom.h:529
Definition hal_coex_reg_rom.h:58
osal_u32 wlan_sleep
Definition hal_coex_reg_rom.h:63
osal_u32 wlan_pro_11ax
Definition hal_coex_reg_rom.h:73
osal_u32 wlan_fre
Definition hal_coex_reg_rom.h:66
osal_u32 wlan_p2p_scan
Definition hal_coex_reg_rom.h:67
osal_u32 wlan_diff_chan
Definition hal_coex_reg_rom.h:70
osal_u32 wlan_p2p_conn
Definition hal_coex_reg_rom.h:68
osal_u32 wlan_ps_slot_step
Definition hal_coex_reg_rom.h:74
osal_u32 wlan_bandwidth
Definition hal_coex_reg_rom.h:61
osal_u32 wlan_pro_11bgn
Definition hal_coex_reg_rom.h:72
osal_u32 wlan_chan_num
Definition hal_coex_reg_rom.h:60
osal_u32 wlan_joining
Definition hal_coex_reg_rom.h:71
osal_u32 wlan_ps_stop
Definition hal_coex_reg_rom.h:65
osal_u32 wlan_dbac
Definition hal_coex_reg_rom.h:69
osal_u32 wlan_scan
Definition hal_coex_reg_rom.h:64
osal_u32 wlan_connect
Definition hal_coex_reg_rom.h:62
osal_u32 wlan_on
Definition hal_coex_reg_rom.h:59
osal_u32 wlan_rsv
Definition hal_coex_reg_rom.h:75
Definition hal_coex_reg_rom.h:127
bsle_req_stru ble_req
Definition hal_coex_reg_rom.h:129
osal_u16 ble_req_reg
Definition hal_coex_reg_rom.h:128
Definition hal_coex_reg_rom.h:116
ble_status_stru ble_status
Definition hal_coex_reg_rom.h:118
osal_u32 ble_status_reg
Definition hal_coex_reg_rom.h:117
Definition hal_coex_reg_rom.h:100
bt_status_stru bt_status
Definition hal_coex_reg_rom.h:102
osal_u16 bt_status_reg
Definition hal_coex_reg_rom.h:101
Definition hal_uart_v151_regs_def.h:38
Definition hal_uart_v151_regs_def.h:109
Definition hal_coex_reg_rom.h:78
osal_u32 u32
Definition hal_coex_reg_rom.h:80
wifi_status_stru wifi_status
Definition hal_coex_reg_rom.h:79