1*5113495bSYour Name /* 2*5113495bSYour Name * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved. 3*5113495bSYour Name * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. 4*5113495bSYour Name * 5*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for 6*5113495bSYour Name * any purpose with or without fee is hereby granted, provided that the 7*5113495bSYour Name * above copyright notice and this permission notice appear in all 8*5113495bSYour Name * copies. 9*5113495bSYour Name * 10*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11*5113495bSYour Name * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12*5113495bSYour Name * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13*5113495bSYour Name * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14*5113495bSYour Name * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15*5113495bSYour Name * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16*5113495bSYour Name * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17*5113495bSYour Name * PERFORMANCE OF THIS SOFTWARE. 18*5113495bSYour Name */ 19*5113495bSYour Name 20*5113495bSYour Name /** 21*5113495bSYour Name * DOC: This file contains centralized definitions of converged configuration. 22*5113495bSYour Name */ 23*5113495bSYour Name 24*5113495bSYour Name #ifndef __CFG_COEX_H 25*5113495bSYour Name #define __CFG_COEX_H 26*5113495bSYour Name 27*5113495bSYour Name /* 28*5113495bSYour Name * <ini> 29*5113495bSYour Name * gSetBTCMode - Config BTC mode 30*5113495bSYour Name * @Min: 0 31*5113495bSYour Name * @Max: 2 32*5113495bSYour Name * @Default: 0 33*5113495bSYour Name * 34*5113495bSYour Name * 0 - TDD 35*5113495bSYour Name * 1 - FDD 36*5113495bSYour Name * 2 - Hybrid 37*5113495bSYour Name * 38*5113495bSYour Name * Usage: External 39*5113495bSYour Name * 40*5113495bSYour Name * </ini> 41*5113495bSYour Name */ 42*5113495bSYour Name #define CFG_BTC_MODE CFG_INI_UINT( \ 43*5113495bSYour Name "gSetBTCMode", \ 44*5113495bSYour Name 0, \ 45*5113495bSYour Name 2, \ 46*5113495bSYour Name 0, \ 47*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 48*5113495bSYour Name "BTC mode") 49*5113495bSYour Name 50*5113495bSYour Name /* 51*5113495bSYour Name * <ini> 52*5113495bSYour Name * gSetAntennaIsolation - Set Antenna Isolation 53*5113495bSYour Name * @Min: 0 54*5113495bSYour Name * @Max: 255 55*5113495bSYour Name * @Default: 25 56*5113495bSYour Name * 57*5113495bSYour Name * Usage: External 58*5113495bSYour Name * 59*5113495bSYour Name * </ini> 60*5113495bSYour Name */ 61*5113495bSYour Name #define CFG_ANTENNA_ISOLATION CFG_INI_UINT( \ 62*5113495bSYour Name "gSetAntennaIsolation", \ 63*5113495bSYour Name 0, \ 64*5113495bSYour Name 255, \ 65*5113495bSYour Name 25, \ 66*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 67*5113495bSYour Name "Antenna Isolation") 68*5113495bSYour Name 69*5113495bSYour Name /* 70*5113495bSYour Name * <ini> 71*5113495bSYour Name * gSetMaxTxPowerForBTC - Set Max WLAN Tx power in COEX scenario 72*5113495bSYour Name * @Min: 0 73*5113495bSYour Name * @Max: 100 74*5113495bSYour Name * @Default: 100 75*5113495bSYour Name * 76*5113495bSYour Name * Usage: External 77*5113495bSYour Name * 78*5113495bSYour Name * </ini> 79*5113495bSYour Name */ 80*5113495bSYour Name #define CFG_MAX_TX_POWER_FOR_BTC CFG_INI_UINT( \ 81*5113495bSYour Name "gSetMaxTxPowerForBTC", \ 82*5113495bSYour Name 0, \ 83*5113495bSYour Name 100, \ 84*5113495bSYour Name 100, \ 85*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 86*5113495bSYour Name "Max Tx Power for BTC") 87*5113495bSYour Name 88*5113495bSYour Name /* 89*5113495bSYour Name * <ini> 90*5113495bSYour Name * gSetWlanLowRssiThreshold - Set WLAN low RSSI threshold for BTC mode switching 91*5113495bSYour Name * @Min: -100 92*5113495bSYour Name * @Max: 0 93*5113495bSYour Name * @Default: -80 94*5113495bSYour Name * 95*5113495bSYour Name * Usage: External 96*5113495bSYour Name * 97*5113495bSYour Name * </ini> 98*5113495bSYour Name */ 99*5113495bSYour Name #define CFG_WLAN_LOW_RSSI_THRESHOLD CFG_INI_INT( \ 100*5113495bSYour Name "gSetWlanLowRssiThreshold", \ 101*5113495bSYour Name -100, \ 102*5113495bSYour Name 0, \ 103*5113495bSYour Name -80, \ 104*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 105*5113495bSYour Name "WLAN Low RSSI Threshold") 106*5113495bSYour Name 107*5113495bSYour Name /* 108*5113495bSYour Name * <ini> 109*5113495bSYour Name * gSetBtLowRssiThreshold - Set BT low RSSI threshold for BTC mode switching 110*5113495bSYour Name * @Min: -100 111*5113495bSYour Name * @Max: 0 112*5113495bSYour Name * @Default: -65 113*5113495bSYour Name * 114*5113495bSYour Name * Usage: External 115*5113495bSYour Name * 116*5113495bSYour Name * </ini> 117*5113495bSYour Name */ 118*5113495bSYour Name #define CFG_BT_LOW_RSSI_THRESHOLD CFG_INI_INT( \ 119*5113495bSYour Name "gSetBtLowRssiThreshold", \ 120*5113495bSYour Name -100, \ 121*5113495bSYour Name 0, \ 122*5113495bSYour Name -65, \ 123*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 124*5113495bSYour Name "BT Low RSSI Threshold") 125*5113495bSYour Name 126*5113495bSYour Name /* 127*5113495bSYour Name * <ini> 128*5113495bSYour Name * gSetBtInterferenceLowLL - Set lower limit of low level BT interference 129*5113495bSYour Name * @Min: -100 130*5113495bSYour Name * @Max: 100 131*5113495bSYour Name * @Default: -25 132*5113495bSYour Name * 133*5113495bSYour Name * Usage: External 134*5113495bSYour Name * 135*5113495bSYour Name * </ini> 136*5113495bSYour Name */ 137*5113495bSYour Name #define CFG_BT_INTERFERENCE_LOW_LL CFG_INI_INT( \ 138*5113495bSYour Name "gSetBtInterferenceLowLL", \ 139*5113495bSYour Name -100, \ 140*5113495bSYour Name 100, \ 141*5113495bSYour Name -25, \ 142*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 143*5113495bSYour Name "BT Interference Low LL") 144*5113495bSYour Name 145*5113495bSYour Name /* 146*5113495bSYour Name * <ini> 147*5113495bSYour Name * gSetBtInterferenceLowUL - Set upper limit of low level BT interference 148*5113495bSYour Name * @Min: -100 149*5113495bSYour Name * @Max: 100 150*5113495bSYour Name * @Default: -21 151*5113495bSYour Name * 152*5113495bSYour Name * Usage: External 153*5113495bSYour Name * 154*5113495bSYour Name * </ini> 155*5113495bSYour Name */ 156*5113495bSYour Name #define CFG_BT_INTERFERENCE_LOW_UL CFG_INI_INT( \ 157*5113495bSYour Name "gSetBtInterferenceLowUL", \ 158*5113495bSYour Name -100, \ 159*5113495bSYour Name 100, \ 160*5113495bSYour Name -21, \ 161*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 162*5113495bSYour Name "BT Interference Low UL") 163*5113495bSYour Name 164*5113495bSYour Name /* 165*5113495bSYour Name * <ini> 166*5113495bSYour Name * gSetBtInterferenceMediumLL - Set lower limit of medium level BT interference 167*5113495bSYour Name * @Min: -100 168*5113495bSYour Name * @Max: 100 169*5113495bSYour Name * @Default: -20 170*5113495bSYour Name * 171*5113495bSYour Name * Usage: External 172*5113495bSYour Name * 173*5113495bSYour Name * </ini> 174*5113495bSYour Name */ 175*5113495bSYour Name #define CFG_BT_INTERFERENCE_MEDIUM_LL CFG_INI_INT( \ 176*5113495bSYour Name "gSetBtInterferenceMediumLL", \ 177*5113495bSYour Name -100, \ 178*5113495bSYour Name 100, \ 179*5113495bSYour Name -20, \ 180*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 181*5113495bSYour Name "BT Interference Medium LL") 182*5113495bSYour Name 183*5113495bSYour Name /* 184*5113495bSYour Name * <ini> 185*5113495bSYour Name * gSetBtInterferenceMediumUL - Set upper limit of medium level BT interference 186*5113495bSYour Name * @Min: -100 187*5113495bSYour Name * @Max: 100 188*5113495bSYour Name * @Default: -16 189*5113495bSYour Name * 190*5113495bSYour Name * Usage: External 191*5113495bSYour Name * 192*5113495bSYour Name * </ini> 193*5113495bSYour Name */ 194*5113495bSYour Name #define CFG_BT_INTERFERENCE_MEDIUM_UL CFG_INI_INT( \ 195*5113495bSYour Name "gSetBtInterferenceMediumUL", \ 196*5113495bSYour Name -100, \ 197*5113495bSYour Name 100, \ 198*5113495bSYour Name -16, \ 199*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 200*5113495bSYour Name "BT Interference Medium UL") 201*5113495bSYour Name 202*5113495bSYour Name /* 203*5113495bSYour Name * <ini> 204*5113495bSYour Name * gSetBtInterferenceHighLL - Set lower limit of high level BT interference 205*5113495bSYour Name * @Min: -100 206*5113495bSYour Name * @Max: 100 207*5113495bSYour Name * @Default: -15 208*5113495bSYour Name * 209*5113495bSYour Name * Usage: External 210*5113495bSYour Name * 211*5113495bSYour Name * </ini> 212*5113495bSYour Name */ 213*5113495bSYour Name #define CFG_BT_INTERFERENCE_HIGH_LL CFG_INI_INT( \ 214*5113495bSYour Name "gSetBtInterferenceHighLL", \ 215*5113495bSYour Name -100, \ 216*5113495bSYour Name 100, \ 217*5113495bSYour Name -15, \ 218*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 219*5113495bSYour Name "BT Interference High LL") 220*5113495bSYour Name 221*5113495bSYour Name /* 222*5113495bSYour Name * <ini> 223*5113495bSYour Name * gSetBtInterferenceHighUL - Set upper limit of high level BT interference 224*5113495bSYour Name * @Min: -100 225*5113495bSYour Name * @Max: 100 226*5113495bSYour Name * @Default: -11 227*5113495bSYour Name * 228*5113495bSYour Name * Usage: External 229*5113495bSYour Name * 230*5113495bSYour Name * </ini> 231*5113495bSYour Name */ 232*5113495bSYour Name #define CFG_BT_INTERFERENCE_HIGH_UL CFG_INI_INT( \ 233*5113495bSYour Name "gSetBtInterferenceHighUL", \ 234*5113495bSYour Name -100, \ 235*5113495bSYour Name 100, \ 236*5113495bSYour Name -11, \ 237*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 238*5113495bSYour Name "BT Interference High UL") 239*5113495bSYour Name 240*5113495bSYour Name #ifdef FEATURE_MPTA_HELPER 241*5113495bSYour Name /* 242*5113495bSYour Name * <ini> 243*5113495bSYour Name * gMPTAHelperEnable - Enable MPTA Helper 244*5113495bSYour Name * @Min: 0 245*5113495bSYour Name * @Max: 1 246*5113495bSYour Name * @Default: 0 247*5113495bSYour Name * 248*5113495bSYour Name * This ini is used to enable or disable coex MPTA Helper. 249*5113495bSYour Name * 250*5113495bSYour Name * Usage: External 251*5113495bSYour Name * 252*5113495bSYour Name * </ini> 253*5113495bSYour Name */ 254*5113495bSYour Name #define CFG_COEX_MPTA_HELPER CFG_INI_BOOL( \ 255*5113495bSYour Name "gMPTAHelperEnable", \ 256*5113495bSYour Name 0, \ 257*5113495bSYour Name "Enable/Disable MPTA Helper") 258*5113495bSYour Name 259*5113495bSYour Name #define COEX_MPTA_HELPER_CFG CFG(CFG_COEX_MPTA_HELPER) 260*5113495bSYour Name #else 261*5113495bSYour Name #define COEX_MPTA_HELPER_CFG 262*5113495bSYour Name #endif 263*5113495bSYour Name 264*5113495bSYour Name /* 265*5113495bSYour Name * <ini> 266*5113495bSYour Name * gBtScoAllowWlan2GScan - Allow wlan 2g scan when BT SCO connection is on 267*5113495bSYour Name * @Min: 0 268*5113495bSYour Name * @Max: 1 269*5113495bSYour Name * @Default: 1 270*5113495bSYour Name * 271*5113495bSYour Name * 0 - Disable 272*5113495bSYour Name * 1 - Enable 273*5113495bSYour Name * 274*5113495bSYour Name * This ini is used to enable or disable wlan 2g scan 275*5113495bSYour Name * when BT SCO connection is on. 276*5113495bSYour Name * 277*5113495bSYour Name * Usage: External 278*5113495bSYour Name * 279*5113495bSYour Name * </ini> 280*5113495bSYour Name */ 281*5113495bSYour Name #define CFG_BT_SCO_ALLOW_WLAN_2G_SCAN CFG_INI_BOOL( \ 282*5113495bSYour Name "gBtScoAllowWlan2GScan", \ 283*5113495bSYour Name 1, \ 284*5113495bSYour Name "Bt Sco Allow Wlan 2G Scan") 285*5113495bSYour Name 286*5113495bSYour Name /* 287*5113495bSYour Name * <ini> 288*5113495bSYour Name * ble_scan_coex_policy - Ini to configure coex policy 289*5113495bSYour Name * @Min: 0 290*5113495bSYour Name * @Max: 1 291*5113495bSYour Name * @Default: 0 292*5113495bSYour Name * 293*5113495bSYour Name * 0 - Better BLE Advertiser reception performance 294*5113495bSYour Name * 1 - Better WLAN performance 295*5113495bSYour Name * 296*5113495bSYour Name * This ini is used to control the performance of ble scan case,’0’ to place 297*5113495bSYour Name * more emphasis on BLE Scan results , ‘1’ to place more emphasis on WLAN 298*5113495bSYour Name * performance 299*5113495bSYour Name * 300*5113495bSYour Name * Usage: External 301*5113495bSYour Name * 302*5113495bSYour Name * </ini> 303*5113495bSYour Name */ 304*5113495bSYour Name #define CFG_BLE_SCAN_COEX_POLICY CFG_INI_BOOL( \ 305*5113495bSYour Name "ble_scan_coex_policy", \ 306*5113495bSYour Name 0, \ 307*5113495bSYour Name "BLE scan Coex policy") 308*5113495bSYour Name 309*5113495bSYour Name #ifdef FEATURE_COEX_CONFIG 310*5113495bSYour Name /* 311*5113495bSYour Name * <ini> 312*5113495bSYour Name * gThreeWayCoexConfigLegacyEnable - Enable coex config legacy feature 313*5113495bSYour Name * @Min: 0 314*5113495bSYour Name * @Max: 1 315*5113495bSYour Name * @Default: 0 316*5113495bSYour Name * 317*5113495bSYour Name * This ini is used to enable or disable three way coex config legacy feature. 318*5113495bSYour Name * This feature is designed only for non-mobile solution. 319*5113495bSYour Name * When the feature is disabled, Firmware use the default configuration to 320*5113495bSYour Name * set the coex priority of three antenna(WLAN, BT, ZIGBEE). 321*5113495bSYour Name * when enable this feature, customer can use the vendor command to set antenna 322*5113495bSYour Name * coex priority dynamically. 323*5113495bSYour Name * 324*5113495bSYour Name * Supported Feature: three way coex config 325*5113495bSYour Name * 326*5113495bSYour Name * Usage: External 327*5113495bSYour Name * 328*5113495bSYour Name * </ini> 329*5113495bSYour Name */ 330*5113495bSYour Name #define CFG_THREE_WAY_COEX_CONFIG_LEGACY CFG_INI_BOOL( \ 331*5113495bSYour Name "gThreeWayCoexConfigLegacyEnable", \ 332*5113495bSYour Name 0, \ 333*5113495bSYour Name "Enable/Disable COEX Config Legacy") 334*5113495bSYour Name 335*5113495bSYour Name #define THREE_WAY_COEX_CONFIG_LEGACY_CFG CFG(CFG_THREE_WAY_COEX_CONFIG_LEGACY) 336*5113495bSYour Name #else 337*5113495bSYour Name #define THREE_WAY_COEX_CONFIG_LEGACY_CFG 338*5113495bSYour Name #endif 339*5113495bSYour Name 340*5113495bSYour Name #ifdef FEATURE_BTC_CHAIN_MODE 341*5113495bSYour Name /* 342*5113495bSYour Name * <ini> 343*5113495bSYour Name * gSetInitChainModeForBTC - Used to set init chain mode for BTC 344*5113495bSYour Name * @Min: 0 345*5113495bSYour Name * @Max: 0xFF 346*5113495bSYour Name * @Default: 0xFF 347*5113495bSYour Name * 348*5113495bSYour Name * This ini is used to set init chain mode for BTC, default value 349*5113495bSYour Name * should be set to the same as macro WLAN_COEX_BTC_CHAIN_MODE_UNSETTLED(0xFF), 350*5113495bSYour Name * only below values can be set: 351*5113495bSYour Name * 0 - init WLAN 2.4G to support 2x2. 352*5113495bSYour Name * It means chains of BT and WLAN 2.4G are shared, or BT is OFF. 353*5113495bSYour Name * 1 - init WLAN 2.4G as 1x1, chains of BT and WLAN 2.4G are separated, 354*5113495bSYour Name * fixed FDD. 355*5113495bSYour Name * 2 - init WLAN 2.4G as 1x1, chains of BT and WLAN 2.4G are separated, 356*5113495bSYour Name * hybrid mode 357*5113495bSYour Name * 0xFF - no need to send init chain mode for BTC to firmware. 358*5113495bSYour Name * 359*5113495bSYour Name * Supported Feature: init chain mode for BTC 360*5113495bSYour Name * 361*5113495bSYour Name * Usage: External 362*5113495bSYour Name * 363*5113495bSYour Name * </ini> 364*5113495bSYour Name */ 365*5113495bSYour Name #define CFG_SET_INIT_CHAIN_MODE_FOR_BTC CFG_INI_UINT( \ 366*5113495bSYour Name "gSetInitChainModeForBTC", \ 367*5113495bSYour Name 0, \ 368*5113495bSYour Name 0xFF, \ 369*5113495bSYour Name 0xFF, \ 370*5113495bSYour Name CFG_VALUE_OR_DEFAULT, \ 371*5113495bSYour Name "Init Chain Mode For BTC") 372*5113495bSYour Name 373*5113495bSYour Name #define SET_INIT_CHAIN_MODE_FOR_BTC_CFG CFG(CFG_SET_INIT_CHAIN_MODE_FOR_BTC) 374*5113495bSYour Name #else 375*5113495bSYour Name #define SET_INIT_CHAIN_MODE_FOR_BTC_CFG 376*5113495bSYour Name #endif 377*5113495bSYour Name 378*5113495bSYour Name #ifdef FEATURE_COEX_TPUT_SHAPING_CONFIG 379*5113495bSYour Name /* 380*5113495bSYour Name * <ini> 381*5113495bSYour Name * coex_tput_shaping_enable - Ini to enable wifi configure traffic shaping 382*5113495bSYour Name * @Min: 0 383*5113495bSYour Name * @Max: 1 384*5113495bSYour Name * @Default: 0 385*5113495bSYour Name * 386*5113495bSYour Name * 0 - traffic shaping is disable 387*5113495bSYour Name * 1 - traffic shaping is enable 388*5113495bSYour Name * 389*5113495bSYour Name * This ini is used to enable and disable wifi traffic shaping 390*5113495bSYour Name * 391*5113495bSYour Name * Usage: External 392*5113495bSYour Name * 393*5113495bSYour Name * </ini> 394*5113495bSYour Name */ 395*5113495bSYour Name #define CFG_TPUT_SHAPING_ENABLE CFG_INI_BOOL( \ 396*5113495bSYour Name "coex_tput_shaping_enable", \ 397*5113495bSYour Name 0, \ 398*5113495bSYour Name "coex_tput_shaping_enable") 399*5113495bSYour Name #define TPUT_SHAPING_ENABLE_CFG CFG(CFG_TPUT_SHAPING_ENABLE) 400*5113495bSYour Name #else 401*5113495bSYour Name #define TPUT_SHAPING_ENABLE_CFG 402*5113495bSYour Name #endif 403*5113495bSYour Name 404*5113495bSYour Name #define CFG_COEX_ALL \ 405*5113495bSYour Name CFG(CFG_BTC_MODE) \ 406*5113495bSYour Name CFG(CFG_ANTENNA_ISOLATION) \ 407*5113495bSYour Name CFG(CFG_MAX_TX_POWER_FOR_BTC) \ 408*5113495bSYour Name CFG(CFG_WLAN_LOW_RSSI_THRESHOLD) \ 409*5113495bSYour Name CFG(CFG_BT_LOW_RSSI_THRESHOLD) \ 410*5113495bSYour Name CFG(CFG_BT_INTERFERENCE_LOW_LL) \ 411*5113495bSYour Name CFG(CFG_BT_INTERFERENCE_LOW_UL) \ 412*5113495bSYour Name CFG(CFG_BT_INTERFERENCE_MEDIUM_LL) \ 413*5113495bSYour Name CFG(CFG_BT_INTERFERENCE_MEDIUM_UL) \ 414*5113495bSYour Name CFG(CFG_BT_INTERFERENCE_HIGH_LL) \ 415*5113495bSYour Name CFG(CFG_BT_INTERFERENCE_HIGH_UL) \ 416*5113495bSYour Name COEX_MPTA_HELPER_CFG \ 417*5113495bSYour Name CFG(CFG_BT_SCO_ALLOW_WLAN_2G_SCAN) \ 418*5113495bSYour Name THREE_WAY_COEX_CONFIG_LEGACY_CFG \ 419*5113495bSYour Name SET_INIT_CHAIN_MODE_FOR_BTC_CFG \ 420*5113495bSYour Name CFG(CFG_BLE_SCAN_COEX_POLICY) \ 421*5113495bSYour Name TPUT_SHAPING_ENABLE_CFG 422*5113495bSYour Name #endif 423