162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * This file is part of wl18xx 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2011 Texas Instruments Inc. 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#ifndef __WL18XX_CONF_H__ 962306a36Sopenharmony_ci#define __WL18XX_CONF_H__ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#define WL18XX_CONF_MAGIC 0x10e100ca 1262306a36Sopenharmony_ci#define WL18XX_CONF_VERSION (WLCORE_CONF_VERSION | 0x0007) 1362306a36Sopenharmony_ci#define WL18XX_CONF_MASK 0x0000ffff 1462306a36Sopenharmony_ci#define WL18XX_CONF_SIZE (WLCORE_CONF_SIZE + \ 1562306a36Sopenharmony_ci sizeof(struct wl18xx_priv_conf)) 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci#define NUM_OF_CHANNELS_11_ABG 150 1862306a36Sopenharmony_ci#define NUM_OF_CHANNELS_11_P 7 1962306a36Sopenharmony_ci#define SRF_TABLE_LEN 16 2062306a36Sopenharmony_ci#define PIN_MUXING_SIZE 2 2162306a36Sopenharmony_ci#define WL18XX_TRACE_LOSS_GAPS_TX 10 2262306a36Sopenharmony_ci#define WL18XX_TRACE_LOSS_GAPS_RX 18 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_cistruct wl18xx_mac_and_phy_params { 2562306a36Sopenharmony_ci u8 phy_standalone; 2662306a36Sopenharmony_ci u8 spare0; 2762306a36Sopenharmony_ci u8 enable_clpc; 2862306a36Sopenharmony_ci u8 enable_tx_low_pwr_on_siso_rdl; 2962306a36Sopenharmony_ci u8 auto_detect; 3062306a36Sopenharmony_ci u8 dedicated_fem; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci u8 low_band_component; 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci /* Bit 0: One Hot, Bit 1: Control Enable, Bit 2: 1.8V, Bit 3: 3V */ 3562306a36Sopenharmony_ci u8 low_band_component_type; 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci u8 high_band_component; 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci /* Bit 0: One Hot, Bit 1: Control Enable, Bit 2: 1.8V, Bit 3: 3V */ 4062306a36Sopenharmony_ci u8 high_band_component_type; 4162306a36Sopenharmony_ci u8 number_of_assembled_ant2_4; 4262306a36Sopenharmony_ci u8 number_of_assembled_ant5; 4362306a36Sopenharmony_ci u8 pin_muxing_platform_options[PIN_MUXING_SIZE]; 4462306a36Sopenharmony_ci u8 external_pa_dc2dc; 4562306a36Sopenharmony_ci u8 tcxo_ldo_voltage; 4662306a36Sopenharmony_ci u8 xtal_itrim_val; 4762306a36Sopenharmony_ci u8 srf_state; 4862306a36Sopenharmony_ci u8 srf1[SRF_TABLE_LEN]; 4962306a36Sopenharmony_ci u8 srf2[SRF_TABLE_LEN]; 5062306a36Sopenharmony_ci u8 srf3[SRF_TABLE_LEN]; 5162306a36Sopenharmony_ci u8 io_configuration; 5262306a36Sopenharmony_ci u8 sdio_configuration; 5362306a36Sopenharmony_ci u8 settings; 5462306a36Sopenharmony_ci u8 rx_profile; 5562306a36Sopenharmony_ci u8 per_chan_pwr_limit_arr_11abg[NUM_OF_CHANNELS_11_ABG]; 5662306a36Sopenharmony_ci u8 pwr_limit_reference_11_abg; 5762306a36Sopenharmony_ci u8 per_chan_pwr_limit_arr_11p[NUM_OF_CHANNELS_11_P]; 5862306a36Sopenharmony_ci u8 pwr_limit_reference_11p; 5962306a36Sopenharmony_ci u8 spare1; 6062306a36Sopenharmony_ci u8 per_chan_bo_mode_11_abg[13]; 6162306a36Sopenharmony_ci u8 per_chan_bo_mode_11_p[4]; 6262306a36Sopenharmony_ci u8 primary_clock_setting_time; 6362306a36Sopenharmony_ci u8 clock_valid_on_wake_up; 6462306a36Sopenharmony_ci u8 secondary_clock_setting_time; 6562306a36Sopenharmony_ci u8 board_type; 6662306a36Sopenharmony_ci /* enable point saturation */ 6762306a36Sopenharmony_ci u8 psat; 6862306a36Sopenharmony_ci /* low/medium/high Tx power in dBm for STA-HP BG */ 6962306a36Sopenharmony_ci s8 low_power_val; 7062306a36Sopenharmony_ci s8 med_power_val; 7162306a36Sopenharmony_ci s8 high_power_val; 7262306a36Sopenharmony_ci s8 per_sub_band_tx_trace_loss[WL18XX_TRACE_LOSS_GAPS_TX]; 7362306a36Sopenharmony_ci s8 per_sub_band_rx_trace_loss[WL18XX_TRACE_LOSS_GAPS_RX]; 7462306a36Sopenharmony_ci u8 tx_rf_margin; 7562306a36Sopenharmony_ci /* low/medium/high Tx power in dBm for other role */ 7662306a36Sopenharmony_ci s8 low_power_val_2nd; 7762306a36Sopenharmony_ci s8 med_power_val_2nd; 7862306a36Sopenharmony_ci s8 high_power_val_2nd; 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci u8 padding[1]; 8162306a36Sopenharmony_ci} __packed; 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_cienum wl18xx_ht_mode { 8462306a36Sopenharmony_ci /* Default - use MIMO, fallback to SISO20 */ 8562306a36Sopenharmony_ci HT_MODE_DEFAULT = 0, 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci /* Wide - use SISO40 */ 8862306a36Sopenharmony_ci HT_MODE_WIDE = 1, 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci /* Use SISO20 */ 9162306a36Sopenharmony_ci HT_MODE_SISO20 = 2, 9262306a36Sopenharmony_ci}; 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_cistruct wl18xx_ht_settings { 9562306a36Sopenharmony_ci /* DEFAULT / WIDE / SISO20 */ 9662306a36Sopenharmony_ci u8 mode; 9762306a36Sopenharmony_ci} __packed; 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_cistruct conf_ap_sleep_settings { 10062306a36Sopenharmony_ci /* Duty Cycle (20-80% of staying Awake) for IDLE AP 10162306a36Sopenharmony_ci * (0: disable) 10262306a36Sopenharmony_ci */ 10362306a36Sopenharmony_ci u8 idle_duty_cycle; 10462306a36Sopenharmony_ci /* Duty Cycle (20-80% of staying Awake) for Connected AP 10562306a36Sopenharmony_ci * (0: disable) 10662306a36Sopenharmony_ci */ 10762306a36Sopenharmony_ci u8 connected_duty_cycle; 10862306a36Sopenharmony_ci /* Maximum stations that are allowed to be connected to AP 10962306a36Sopenharmony_ci * (255: no limit) 11062306a36Sopenharmony_ci */ 11162306a36Sopenharmony_ci u8 max_stations_thresh; 11262306a36Sopenharmony_ci /* Timeout till enabling the Sleep Mechanism after data stops 11362306a36Sopenharmony_ci * [unit: 100 msec] 11462306a36Sopenharmony_ci */ 11562306a36Sopenharmony_ci u8 idle_conn_thresh; 11662306a36Sopenharmony_ci} __packed; 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_cistruct wl18xx_priv_conf { 11962306a36Sopenharmony_ci /* Module params structures */ 12062306a36Sopenharmony_ci struct wl18xx_ht_settings ht; 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci /* this structure is copied wholesale to FW */ 12362306a36Sopenharmony_ci struct wl18xx_mac_and_phy_params phy; 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci struct conf_ap_sleep_settings ap_sleep; 12662306a36Sopenharmony_ci} __packed; 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_cienum wl18xx_sg_params { 12962306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_0 = 0, 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci /* Configuration Parameters */ 13262306a36Sopenharmony_ci WL18XX_CONF_SG_ANTENNA_CONFIGURATION, 13362306a36Sopenharmony_ci WL18XX_CONF_SG_ZIGBEE_COEX, 13462306a36Sopenharmony_ci WL18XX_CONF_SG_TIME_SYNC, 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_4, 13762306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_5, 13862306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_6, 13962306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_7, 14062306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_8, 14162306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_9, 14262306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_10, 14362306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_11, 14462306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_12, 14562306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_13, 14662306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_14, 14762306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_15, 14862306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_16, 14962306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_17, 15062306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_18, 15162306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_19, 15262306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_20, 15362306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_21, 15462306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_22, 15562306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_23, 15662306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_24, 15762306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_25, 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ci /* Active Scan Parameters */ 16062306a36Sopenharmony_ci WL18XX_CONF_SG_AUTO_SCAN_PROBE_REQ, 16162306a36Sopenharmony_ci WL18XX_CONF_SG_ACTIVE_SCAN_DURATION_FACTOR_HV3, 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_28, 16462306a36Sopenharmony_ci 16562306a36Sopenharmony_ci /* Passive Scan Parameters */ 16662306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_29, 16762306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_30, 16862306a36Sopenharmony_ci WL18XX_CONF_SG_PASSIVE_SCAN_DURATION_FACTOR_HV3, 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ci /* Passive Scan in Dual Antenna Parameters */ 17162306a36Sopenharmony_ci WL18XX_CONF_SG_CONSECUTIVE_HV3_IN_PASSIVE_SCAN, 17262306a36Sopenharmony_ci WL18XX_CONF_SG_BEACON_HV3_COLL_TH_IN_PASSIVE_SCAN, 17362306a36Sopenharmony_ci WL18XX_CONF_SG_TX_RX_PROTECT_BW_IN_PASSIVE_SCAN, 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci /* General Parameters */ 17662306a36Sopenharmony_ci WL18XX_CONF_SG_STA_FORCE_PS_IN_BT_SCO, 17762306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_36, 17862306a36Sopenharmony_ci WL18XX_CONF_SG_BEACON_MISS_PERCENT, 17962306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_38, 18062306a36Sopenharmony_ci WL18XX_CONF_SG_RXT, 18162306a36Sopenharmony_ci WL18XX_CONF_SG_UNUSED, 18262306a36Sopenharmony_ci WL18XX_CONF_SG_ADAPTIVE_RXT_TXT, 18362306a36Sopenharmony_ci WL18XX_CONF_SG_GENERAL_USAGE_BIT_MAP, 18462306a36Sopenharmony_ci WL18XX_CONF_SG_HV3_MAX_SERVED, 18562306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_44, 18662306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_45, 18762306a36Sopenharmony_ci WL18XX_CONF_SG_CONSECUTIVE_CTS_THRESHOLD, 18862306a36Sopenharmony_ci WL18XX_CONF_SG_GEMINI_PARAM_47, 18962306a36Sopenharmony_ci WL18XX_CONF_SG_STA_CONNECTION_PROTECTION_TIME, 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ci /* AP Parameters */ 19262306a36Sopenharmony_ci WL18XX_CONF_SG_AP_BEACON_MISS_TX, 19362306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_50, 19462306a36Sopenharmony_ci WL18XX_CONF_SG_AP_BEACON_WINDOW_INTERVAL, 19562306a36Sopenharmony_ci WL18XX_CONF_SG_AP_CONNECTION_PROTECTION_TIME, 19662306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_53, 19762306a36Sopenharmony_ci WL18XX_CONF_SG_PARAM_54, 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_ci /* CTS Diluting Parameters */ 20062306a36Sopenharmony_ci WL18XX_CONF_SG_CTS_DILUTED_BAD_RX_PACKETS_TH, 20162306a36Sopenharmony_ci WL18XX_CONF_SG_CTS_CHOP_IN_DUAL_ANT_SCO_MASTER, 20262306a36Sopenharmony_ci 20362306a36Sopenharmony_ci WL18XX_CONF_SG_TEMP_PARAM_1, 20462306a36Sopenharmony_ci WL18XX_CONF_SG_TEMP_PARAM_2, 20562306a36Sopenharmony_ci WL18XX_CONF_SG_TEMP_PARAM_3, 20662306a36Sopenharmony_ci WL18XX_CONF_SG_TEMP_PARAM_4, 20762306a36Sopenharmony_ci WL18XX_CONF_SG_TEMP_PARAM_5, 20862306a36Sopenharmony_ci WL18XX_CONF_SG_TEMP_PARAM_6, 20962306a36Sopenharmony_ci WL18XX_CONF_SG_TEMP_PARAM_7, 21062306a36Sopenharmony_ci WL18XX_CONF_SG_TEMP_PARAM_8, 21162306a36Sopenharmony_ci WL18XX_CONF_SG_TEMP_PARAM_9, 21262306a36Sopenharmony_ci WL18XX_CONF_SG_TEMP_PARAM_10, 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ci WL18XX_CONF_SG_PARAMS_MAX, 21562306a36Sopenharmony_ci WL18XX_CONF_SG_PARAMS_ALL = 0xff 21662306a36Sopenharmony_ci}; 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ci#endif /* __WL18XX_CONF_H__ */ 219