1258035Sadrian/*- 2258035Sadrian * Copyright (c) 2013 Cedric GROSS <cg@cgross.info> 3258035Sadrian * Copyright (c) 2011 Intel Corporation 4258035Sadrian * 5258035Sadrian * Permission to use, copy, modify, and distribute this software for any 6258035Sadrian * purpose with or without fee is hereby granted, provided that the above 7258035Sadrian * copyright notice and this permission notice appear in all copies. 8258035Sadrian * 9258035Sadrian * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10258035Sadrian * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11258035Sadrian * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12258035Sadrian * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13258035Sadrian * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14258035Sadrian * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15258035Sadrian * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16258035Sadrian * 17258035Sadrian * $FreeBSD: stable/11/sys/dev/iwn/if_iwn_chip_cfg.h 337949 2018-08-17 03:01:01Z kevans $ 18258035Sadrian */ 19258035Sadrian 20258035Sadrian#ifndef __IF_IWN_CHIP_CFG_H__ 21258035Sadrian#define __IF_IWN_CHIP_CFG_H__ 22258035Sadrian 23258035Sadrian/* ========================================================================== 24258035Sadrian * NIC PARAMETERS 25258035Sadrian * 26258035Sadrian * ========================================================================== 27258035Sadrian */ 28258035Sadrian 29258035Sadrian/* 30258035Sadrian * Flags for managing calibration result. See calib_need 31258035Sadrian * in iwn_base_params struct 32258035Sadrian * 33258035Sadrian * These are bitmasks that determine which indexes in the calibcmd 34258035Sadrian * array are pushed up. 35258035Sadrian */ 36258035Sadrian#define IWN_FLG_NEED_PHY_CALIB_DC (1<<0) 37258035Sadrian#define IWN_FLG_NEED_PHY_CALIB_LO (1<<1) 38258035Sadrian#define IWN_FLG_NEED_PHY_CALIB_TX_IQ (1<<2) 39258035Sadrian#define IWN_FLG_NEED_PHY_CALIB_TX_IQ_PERIODIC (1<<3) 40258035Sadrian#define IWN_FLG_NEED_PHY_CALIB_BASE_BAND (1<<4) 41258035Sadrian/* 42258035Sadrian * These aren't (yet) included in the calibcmd array, but 43258035Sadrian * are used as flags for which calibrations to use. 44258035Sadrian * 45258035Sadrian * XXX I think they should be named differently and 46258035Sadrian * stuffed in a different member in the config struct! 47258035Sadrian */ 48258035Sadrian#define IWN_FLG_NEED_PHY_CALIB_TEMP_OFFSET (1<<5) 49258035Sadrian#define IWN_FLG_NEED_PHY_CALIB_CRYSTAL (1<<6) 50258035Sadrian#define IWN_FLG_NEED_PHY_CALIB_TEMP_OFFSETv2 (1<<7) 51258035Sadrian 52258035Sadrian/* 53259059Sadrian * Each chip has a different threshold for PLCP errors that should trigger a 54259059Sadrian * retune. 55259059Sadrian */ 56259059Sadrian#define IWN_PLCP_ERR_DEFAULT_THRESHOLD 50 57259059Sadrian#define IWN_PLCP_ERR_LONG_THRESHOLD 100 58259059Sadrian#define IWN_PLCP_ERR_EXT_LONG_THRESHOLD 200 59259059Sadrian 60259059Sadrian/* 61258035Sadrian * Define some parameters for managing different NIC. 62258035Sadrian * Refer to linux specific file like iwl-xxxx.c to determine correct value 63258035Sadrian * for NIC. 64258035Sadrian * 65258035Sadrian * @max_ll_items: max number of OTP blocks 66258035Sadrian * @shadow_ram_support: shadow support for OTP memory 67258035Sadrian * @shadow_reg_enable: HW shadhow register bit 68258035Sadrian * @no_idle_support: do not support idle mode 69258035Sadrian * @advanced_bt_coexist : Advanced BT management 70258035Sadrian * @bt_session_2 : NIC need a new struct for configure BT coexistence. Needed 71258035Sadrian * only if advanced_bt_coexist is true 72258035Sadrian * @bt_sco_disable : 73258035Sadrian * @additional_nic_config: For 6005 series 74258035Sadrian * @iq_invert : ? But need it for N 2000 series 75258035Sadrian * @regulatory_bands : XXX 76258035Sadrian * @enhanced_TX_power : EEPROM Has advanced TX power options. Set 'True' 77258035Sadrian * if update_enhanced_txpower = iwl_eeprom_enhanced_txpower. 78258035Sadrian * See iwl-agn-devices.c file to determine that(enhanced_txpower) 79258035Sadrian * @need_temp_offset_calib : Need to compute some temp offset for calibration. 80258035Sadrian * @calib_need : Use IWN_FLG_NEED_PHY_CALIB_* flags to specify which 81258035Sadrian * calibration data ucode need. See calib_init_cfg in iwl-xxxx.c 82258035Sadrian * linux kernel file 83258035Sadrian * @support_hostap: Define IEEE80211_C_HOSTAP for ic_caps 84258035Sadrian * @no_multi_vaps: See iwn_vap_create 85258035Sadrian * @additional_gp_drv_bit : Specific bit to defined during nic_config 86258035Sadrian * @bt_mode: BT configuration mode 87258035Sadrian */ 88258035Sadrianenum bt_mode_enum { 89258035Sadrian IWN_BT_NONE, 90258035Sadrian IWN_BT_SIMPLE, 91258035Sadrian IWN_BT_ADVANCED 92258035Sadrian}; 93258035Sadrian 94258035Sadrianstruct iwn_base_params { 95258035Sadrian uint32_t pll_cfg_val; 96258035Sadrian const uint16_t max_ll_items; 97258035Sadrian#define IWN_OTP_MAX_LL_ITEMS_1000 (3) /* OTP blocks for 1000 */ 98258035Sadrian#define IWN_OTP_MAX_LL_ITEMS_6x00 (4) /* OTP blocks for 6x00 */ 99258035Sadrian#define IWN_OTP_MAX_LL_ITEMS_6x50 (7) /* OTP blocks for 6x50 */ 100258035Sadrian#define IWN_OTP_MAX_LL_ITEMS_2x00 (4) /* OTP blocks for 2x00 */ 101258035Sadrian const bool shadow_ram_support; 102258035Sadrian const bool shadow_reg_enable; 103258035Sadrian const bool bt_session_2; 104258035Sadrian const bool bt_sco_disable; 105258035Sadrian const bool additional_nic_config; 106258035Sadrian const uint32_t *regulatory_bands; 107258035Sadrian const bool enhanced_TX_power; 108258035Sadrian const uint16_t calib_need; 109258035Sadrian const bool support_hostap; 110258035Sadrian const bool no_multi_vaps; 111258035Sadrian uint8_t additional_gp_drv_bit; 112258035Sadrian enum bt_mode_enum bt_mode; 113259059Sadrian uint32_t plcp_err_threshold; 114258035Sadrian}; 115258035Sadrian 116258035Sadrianstatic const struct iwn_base_params iwn5000_base_params = { 117258035Sadrian .pll_cfg_val = IWN_ANA_PLL_INIT, /* pll_cfg_val; */ 118258035Sadrian .max_ll_items = IWN_OTP_MAX_LL_ITEMS_6x00, /* max_ll_items */ 119267466Sadrian .shadow_ram_support = false, /* shadow_ram_support */ 120258035Sadrian .shadow_reg_enable = false, /* shadow_reg_enable */ 121258035Sadrian .bt_session_2 = false, /* bt_session_2 */ 122258035Sadrian .bt_sco_disable = true, /* bt_sco_disable */ 123258035Sadrian .additional_nic_config = false, /* additional_nic_config */ 124258035Sadrian .regulatory_bands = iwn5000_regulatory_bands, /* regulatory_bands */ 125258035Sadrian .enhanced_TX_power = false, /* enhanced_TX_power */ 126258035Sadrian .calib_need = 127258035Sadrian ( IWN_FLG_NEED_PHY_CALIB_LO 128258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TX_IQ_PERIODIC 129258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TX_IQ 130258035Sadrian | IWN_FLG_NEED_PHY_CALIB_BASE_BAND ), 131258035Sadrian .support_hostap = false, /* support_hostap */ 132258035Sadrian .no_multi_vaps = true, /* no_multi_vaps */ 133258035Sadrian .additional_gp_drv_bit = IWN_GP_DRIVER_NONE, /* additional_gp_drv_bit */ 134258035Sadrian .bt_mode = IWN_BT_NONE, /* bt_mode */ 135259059Sadrian .plcp_err_threshold = IWN_PLCP_ERR_LONG_THRESHOLD, 136258035Sadrian}; 137258035Sadrian 138258035Sadrian/* 139258035Sadrian * 4965 support 140258035Sadrian */ 141258035Sadrianstatic const struct iwn_base_params iwn4965_base_params = { 142258035Sadrian .pll_cfg_val = 0, /* pll_cfg_val; */ 143258035Sadrian .max_ll_items = IWN_OTP_MAX_LL_ITEMS_6x00, /* max_ll_items - ignored for 4965 */ 144258035Sadrian .shadow_ram_support = true, /* shadow_ram_support */ 145258035Sadrian .shadow_reg_enable = false, /* shadow_reg_enable */ 146258035Sadrian .bt_session_2 = false, /* bt_session_2 XXX unknown? */ 147258035Sadrian .bt_sco_disable = true, /* bt_sco_disable XXX unknown? */ 148258035Sadrian .additional_nic_config = false, /* additional_nic_config - not for 4965 */ 149258035Sadrian .regulatory_bands = iwn5000_regulatory_bands, /* regulatory_bands */ 150258035Sadrian .enhanced_TX_power = false, /* enhanced_TX_power - not for 4965 */ 151258035Sadrian .calib_need = 152258035Sadrian (IWN_FLG_NEED_PHY_CALIB_DC 153258035Sadrian | IWN_FLG_NEED_PHY_CALIB_LO 154258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TX_IQ_PERIODIC 155258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TX_IQ 156258035Sadrian | IWN_FLG_NEED_PHY_CALIB_BASE_BAND ), 157258035Sadrian .support_hostap = false, /* support_hostap - XXX should work on fixing! */ 158258035Sadrian .no_multi_vaps = true, /* no_multi_vaps - XXX should work on fixing! */ 159258035Sadrian .additional_gp_drv_bit = IWN_GP_DRIVER_NONE, /* additional_gp_drv_bit */ 160258035Sadrian .bt_mode = IWN_BT_SIMPLE, /* bt_mode */ 161259059Sadrian .plcp_err_threshold = IWN_PLCP_ERR_DEFAULT_THRESHOLD, 162258035Sadrian}; 163258035Sadrian 164258035Sadrian 165258035Sadrianstatic const struct iwn_base_params iwn2000_base_params = { 166258035Sadrian .pll_cfg_val = 0, 167258035Sadrian .max_ll_items = IWN_OTP_MAX_LL_ITEMS_2x00, 168258035Sadrian .shadow_ram_support = true, 169258035Sadrian .shadow_reg_enable = false, 170258035Sadrian .bt_session_2 = false, 171258035Sadrian .bt_sco_disable = true, 172258035Sadrian .additional_nic_config = false, 173258035Sadrian .regulatory_bands = iwn2030_regulatory_bands, 174258035Sadrian .enhanced_TX_power = true, 175258035Sadrian .calib_need = 176258035Sadrian (IWN_FLG_NEED_PHY_CALIB_DC 177258035Sadrian | IWN_FLG_NEED_PHY_CALIB_LO 178258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TX_IQ 179258035Sadrian | IWN_FLG_NEED_PHY_CALIB_BASE_BAND 180258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TEMP_OFFSETv2 ), 181258035Sadrian .support_hostap = true, 182258035Sadrian .no_multi_vaps = false, 183258035Sadrian .additional_gp_drv_bit = IWN_GP_DRIVER_REG_BIT_RADIO_IQ_INVERT, 184258208Seadler .bt_mode = IWN_BT_NONE, 185259059Sadrian .plcp_err_threshold = IWN_PLCP_ERR_DEFAULT_THRESHOLD, 186258035Sadrian}; 187258035Sadrian 188258035Sadrianstatic const struct iwn_base_params iwn2030_base_params = { 189258035Sadrian .pll_cfg_val = 0, 190258035Sadrian .max_ll_items = IWN_OTP_MAX_LL_ITEMS_2x00, 191258035Sadrian .shadow_ram_support = true, 192258035Sadrian .shadow_reg_enable = false, /* XXX check? */ 193258035Sadrian .bt_session_2 = true, 194258035Sadrian .bt_sco_disable = true, 195258035Sadrian .additional_nic_config = false, 196258035Sadrian .regulatory_bands = iwn2030_regulatory_bands, 197258035Sadrian .enhanced_TX_power = true, 198258035Sadrian .calib_need = 199258035Sadrian (IWN_FLG_NEED_PHY_CALIB_DC 200258035Sadrian | IWN_FLG_NEED_PHY_CALIB_LO 201258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TX_IQ 202258035Sadrian | IWN_FLG_NEED_PHY_CALIB_BASE_BAND 203258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TEMP_OFFSETv2 ), 204258035Sadrian .support_hostap = true, 205258035Sadrian .no_multi_vaps = false, 206258035Sadrian .additional_gp_drv_bit = IWN_GP_DRIVER_REG_BIT_RADIO_IQ_INVERT, 207258035Sadrian .bt_mode = IWN_BT_ADVANCED, 208259059Sadrian .plcp_err_threshold = IWN_PLCP_ERR_DEFAULT_THRESHOLD, 209258035Sadrian}; 210258035Sadrian 211258035Sadrianstatic const struct iwn_base_params iwn1000_base_params = { 212258035Sadrian .pll_cfg_val = IWN_ANA_PLL_INIT, 213258035Sadrian .max_ll_items = IWN_OTP_MAX_LL_ITEMS_1000, 214258035Sadrian .shadow_ram_support = false, 215258035Sadrian .shadow_reg_enable = false, /* XXX check? */ 216258035Sadrian .bt_session_2 = false, 217258035Sadrian .bt_sco_disable = false, 218258035Sadrian .additional_nic_config = false, 219258035Sadrian .regulatory_bands = iwn5000_regulatory_bands, 220258035Sadrian .enhanced_TX_power = false, 221258035Sadrian .calib_need = 222265803Sadrian ( IWN_FLG_NEED_PHY_CALIB_LO 223265803Sadrian | IWN_FLG_NEED_PHY_CALIB_TX_IQ_PERIODIC 224258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TX_IQ 225265803Sadrian | IWN_FLG_NEED_PHY_CALIB_BASE_BAND 226265803Sadrian ), 227258035Sadrian .support_hostap = false, 228258035Sadrian .no_multi_vaps = true, 229258035Sadrian .additional_gp_drv_bit = IWN_GP_DRIVER_NONE, 230265803Sadrian /* XXX 1000 - no BT */ 231265803Sadrian .bt_mode = IWN_BT_SIMPLE, 232259059Sadrian .plcp_err_threshold = IWN_PLCP_ERR_EXT_LONG_THRESHOLD, 233258035Sadrian}; 234258035Sadrianstatic const struct iwn_base_params iwn_6000_base_params = { 235258035Sadrian .pll_cfg_val = 0, 236258035Sadrian .max_ll_items = IWN_OTP_MAX_LL_ITEMS_6x00, 237258035Sadrian .shadow_ram_support = true, 238258035Sadrian .shadow_reg_enable = true, 239258035Sadrian .bt_session_2 = false, 240258035Sadrian .bt_sco_disable = false, 241258035Sadrian .additional_nic_config = false, 242258035Sadrian .regulatory_bands = iwn6000_regulatory_bands, 243258035Sadrian .enhanced_TX_power = true, 244258035Sadrian .calib_need = 245258035Sadrian (IWN_FLG_NEED_PHY_CALIB_DC 246258035Sadrian | IWN_FLG_NEED_PHY_CALIB_LO 247258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TX_IQ 248258035Sadrian | IWN_FLG_NEED_PHY_CALIB_BASE_BAND ), 249258035Sadrian .support_hostap = false, 250258035Sadrian .no_multi_vaps = true, 251258035Sadrian .additional_gp_drv_bit = IWN_GP_DRIVER_NONE, 252258035Sadrian .bt_mode = IWN_BT_SIMPLE, 253259059Sadrian .plcp_err_threshold = IWN_PLCP_ERR_DEFAULT_THRESHOLD, 254258035Sadrian}; 255258035Sadrianstatic const struct iwn_base_params iwn_6000i_base_params = { 256258035Sadrian .pll_cfg_val = 0, 257258035Sadrian .max_ll_items = IWN_OTP_MAX_LL_ITEMS_6x00, 258258035Sadrian .shadow_ram_support = true, 259258035Sadrian .shadow_reg_enable = true, 260258035Sadrian .bt_session_2 = false, 261258035Sadrian .bt_sco_disable = true, 262258035Sadrian .additional_nic_config = false, 263258035Sadrian .regulatory_bands = iwn6000_regulatory_bands, 264258035Sadrian .enhanced_TX_power = true, 265258035Sadrian .calib_need = 266258035Sadrian (IWN_FLG_NEED_PHY_CALIB_DC 267258035Sadrian | IWN_FLG_NEED_PHY_CALIB_LO 268258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TX_IQ 269258035Sadrian | IWN_FLG_NEED_PHY_CALIB_BASE_BAND ), 270258035Sadrian .support_hostap = false, 271258035Sadrian .no_multi_vaps = true, 272258035Sadrian .additional_gp_drv_bit = IWN_GP_DRIVER_NONE, 273258035Sadrian .bt_mode = IWN_BT_SIMPLE, 274259059Sadrian .plcp_err_threshold = IWN_PLCP_ERR_DEFAULT_THRESHOLD, 275258035Sadrian}; 276258035Sadrianstatic const struct iwn_base_params iwn_6000g2_base_params = { 277258035Sadrian .pll_cfg_val = 0, 278258035Sadrian .max_ll_items = IWN_OTP_MAX_LL_ITEMS_6x00, 279258035Sadrian .shadow_ram_support = true, 280258035Sadrian .shadow_reg_enable = true, 281258035Sadrian .bt_session_2 = false, 282258035Sadrian .bt_sco_disable = true, 283258035Sadrian .additional_nic_config = false, 284258035Sadrian .regulatory_bands = iwn6000_regulatory_bands, 285258035Sadrian .enhanced_TX_power = true, 286258035Sadrian .calib_need = 287258035Sadrian (IWN_FLG_NEED_PHY_CALIB_DC 288258035Sadrian | IWN_FLG_NEED_PHY_CALIB_LO 289258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TX_IQ 290258035Sadrian | IWN_FLG_NEED_PHY_CALIB_BASE_BAND 291258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TEMP_OFFSET ), 292258035Sadrian .support_hostap = false, 293258035Sadrian .no_multi_vaps = true, 294258035Sadrian .additional_gp_drv_bit = 0, 295258035Sadrian .bt_mode = IWN_BT_SIMPLE, 296259059Sadrian .plcp_err_threshold = IWN_PLCP_ERR_DEFAULT_THRESHOLD, 297258035Sadrian}; 298258035Sadrian 299258035Sadrianstatic const struct iwn_base_params iwn_6050_base_params = { 300258035Sadrian .pll_cfg_val = 0, 301258035Sadrian .max_ll_items = IWN_OTP_MAX_LL_ITEMS_6x50, 302258035Sadrian .shadow_ram_support = true, 303258035Sadrian .shadow_reg_enable = true, 304258035Sadrian .bt_session_2 = false, 305258035Sadrian .bt_sco_disable = true, 306258035Sadrian .additional_nic_config = true, 307258035Sadrian .regulatory_bands = iwn6000_regulatory_bands, 308258035Sadrian .enhanced_TX_power = true, 309258035Sadrian .calib_need = 310258035Sadrian (IWN_FLG_NEED_PHY_CALIB_LO 311258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TX_IQ 312260001Sadrian | IWN_FLG_NEED_PHY_CALIB_BASE_BAND ), 313258035Sadrian .support_hostap = false, 314258035Sadrian .no_multi_vaps = true, 315258035Sadrian .additional_gp_drv_bit = IWN_GP_DRIVER_NONE, 316258035Sadrian .bt_mode = IWN_BT_SIMPLE, 317259059Sadrian .plcp_err_threshold = IWN_PLCP_ERR_DEFAULT_THRESHOLD, 318258035Sadrian}; 319258035Sadrianstatic const struct iwn_base_params iwn_6150_base_params = { 320258035Sadrian .pll_cfg_val = 0, 321258035Sadrian .max_ll_items = IWN_OTP_MAX_LL_ITEMS_6x50, 322258035Sadrian .shadow_ram_support = true, 323258035Sadrian .shadow_reg_enable = true, 324258035Sadrian .bt_session_2 = false, 325258035Sadrian .bt_sco_disable = true, 326258035Sadrian .additional_nic_config = true, 327258035Sadrian .regulatory_bands = iwn6000_regulatory_bands, 328258035Sadrian .enhanced_TX_power = true, 329258035Sadrian .calib_need = 330258035Sadrian (IWN_FLG_NEED_PHY_CALIB_LO 331258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TX_IQ 332258035Sadrian | IWN_FLG_NEED_PHY_CALIB_BASE_BAND), 333258035Sadrian .support_hostap = false, 334258035Sadrian .no_multi_vaps = true, 335258035Sadrian .additional_gp_drv_bit = IWN_GP_DRIVER_6050_1X2, 336258035Sadrian .bt_mode = IWN_BT_SIMPLE, 337259059Sadrian .plcp_err_threshold = IWN_PLCP_ERR_DEFAULT_THRESHOLD, 338258035Sadrian}; 339258035Sadrian 340258035Sadrian/* IWL_DEVICE_6035 & IWL_DEVICE_6030 */ 341258035Sadrianstatic const struct iwn_base_params iwn_6000g2b_base_params = { 342258035Sadrian .pll_cfg_val = 0, 343258035Sadrian .max_ll_items = IWN_OTP_MAX_LL_ITEMS_6x00, 344258035Sadrian .shadow_ram_support = true, 345258035Sadrian .shadow_reg_enable = true, 346258035Sadrian .bt_session_2 = false, 347258035Sadrian .bt_sco_disable = true, 348258035Sadrian .additional_nic_config = false, 349258035Sadrian .regulatory_bands = iwn6000_regulatory_bands, 350258035Sadrian .enhanced_TX_power = true, 351258035Sadrian .calib_need = 352258035Sadrian (IWN_FLG_NEED_PHY_CALIB_DC 353258035Sadrian | IWN_FLG_NEED_PHY_CALIB_LO 354258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TX_IQ 355258035Sadrian | IWN_FLG_NEED_PHY_CALIB_BASE_BAND 356258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TEMP_OFFSET ), 357258035Sadrian .support_hostap = false, 358258035Sadrian .no_multi_vaps = true, 359258035Sadrian .additional_gp_drv_bit = IWN_GP_DRIVER_NONE, 360258035Sadrian .bt_mode = IWN_BT_ADVANCED, 361259059Sadrian .plcp_err_threshold = IWN_PLCP_ERR_DEFAULT_THRESHOLD, 362258035Sadrian}; 363259116Sadrian 364259116Sadrian/* 365259116Sadrian * 6235 series NICs. 366259116Sadrian */ 367259116Sadrianstatic const struct iwn_base_params iwn_6235_base_params = { 368259116Sadrian .pll_cfg_val = 0, 369259116Sadrian .max_ll_items = IWN_OTP_MAX_LL_ITEMS_6x00, 370259116Sadrian .shadow_ram_support = true, 371259116Sadrian .shadow_reg_enable = true, 372259116Sadrian .bt_session_2 = false, 373259116Sadrian .bt_sco_disable = true, 374259116Sadrian .additional_nic_config = true, 375259116Sadrian .regulatory_bands = iwn6000_regulatory_bands, 376259116Sadrian .enhanced_TX_power = true, 377259116Sadrian .calib_need = 378259116Sadrian (IWN_FLG_NEED_PHY_CALIB_DC 379259116Sadrian | IWN_FLG_NEED_PHY_CALIB_LO 380259116Sadrian | IWN_FLG_NEED_PHY_CALIB_TX_IQ 381259116Sadrian | IWN_FLG_NEED_PHY_CALIB_BASE_BAND 382259116Sadrian | IWN_FLG_NEED_PHY_CALIB_TEMP_OFFSET ), 383259116Sadrian .support_hostap = false, 384259116Sadrian .no_multi_vaps = true, 385337949Skevans .additional_gp_drv_bit = 0, 386259116Sadrian .bt_mode = IWN_BT_ADVANCED, 387259116Sadrian .plcp_err_threshold = IWN_PLCP_ERR_DEFAULT_THRESHOLD, 388259116Sadrian}; 389259116Sadrian 390258035Sadrianstatic const struct iwn_base_params iwn_5x50_base_params = { 391258035Sadrian .pll_cfg_val = IWN_ANA_PLL_INIT, 392258035Sadrian .max_ll_items = IWN_OTP_MAX_LL_ITEMS_6x00, 393258035Sadrian .shadow_ram_support = true, 394258035Sadrian .shadow_reg_enable = false, 395258035Sadrian .bt_session_2 = false, 396258035Sadrian .bt_sco_disable = true, 397258035Sadrian .additional_nic_config = false, 398258035Sadrian .regulatory_bands = iwn5000_regulatory_bands, 399258035Sadrian .enhanced_TX_power =false, 400258035Sadrian .calib_need = 401258035Sadrian (IWN_FLG_NEED_PHY_CALIB_DC 402258035Sadrian | IWN_FLG_NEED_PHY_CALIB_LO 403258035Sadrian | IWN_FLG_NEED_PHY_CALIB_TX_IQ 404258035Sadrian | IWN_FLG_NEED_PHY_CALIB_BASE_BAND ), 405258035Sadrian .support_hostap = false, 406258035Sadrian .no_multi_vaps = true, 407258035Sadrian .additional_gp_drv_bit = IWN_GP_DRIVER_NONE, 408258035Sadrian .bt_mode = IWN_BT_SIMPLE, 409259059Sadrian .plcp_err_threshold = IWN_PLCP_ERR_LONG_THRESHOLD, 410258035Sadrian}; 411258035Sadrian 412258035Sadrian#endif /* __IF_IWN_CHIP_CFG_H__ */ 413