1 /****************************************************************************** 2 * 3 * This file is provided under a dual BSD/GPLv2 license. When using or 4 * redistributing this file, you may do so under either license. 5 * 6 * GPL LICENSE SUMMARY 7 * 8 * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. 9 * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH 10 * Copyright(c) 2016 - 2017 Intel Deutschland GmbH 11 * Copyright (C) 2018 Intel Corporation 12 * 13 * This program is free software; you can redistribute it and/or modify 14 * it under the terms of version 2 of the GNU General Public License as 15 * published by the Free Software Foundation. 16 * 17 * This program is distributed in the hope that it will be useful, but 18 * WITHOUT ANY WARRANTY; without even the implied warranty of 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 20 * General Public License for more details. 21 * 22 * The full GNU General Public License is included in this distribution 23 * in the file called COPYING. 24 * 25 * Contact Information: 26 * Intel Linux Wireless <linuxwifi@intel.com> 27 * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 28 * 29 * BSD LICENSE 30 * 31 * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. 32 * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH 33 * Copyright(c) 2016 - 2017 Intel Deutschland GmbH 34 * Copyright (C) 2018 Intel Corporation 35 * All rights reserved. 36 * 37 * Redistribution and use in source and binary forms, with or without 38 * modification, are permitted provided that the following conditions 39 * are met: 40 * 41 * * Redistributions of source code must retain the above copyright 42 * notice, this list of conditions and the following disclaimer. 43 * * Redistributions in binary form must reproduce the above copyright 44 * notice, this list of conditions and the following disclaimer in 45 * the documentation and/or other materials provided with the 46 * distribution. 47 * * Neither the name Intel Corporation nor the names of its 48 * contributors may be used to endorse or promote products derived 49 * from this software without specific prior written permission. 50 * 51 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 52 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 53 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 54 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 55 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 56 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 57 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 58 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 59 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 60 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 61 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 62 * 63 *****************************************************************************/ 64 65 #ifndef __iwl_fw_api_config_h__ 66 #define __iwl_fw_api_config_h__ 67 68 /* 69 * struct iwl_dqa_enable_cmd 70 * @cmd_queue: the TXQ number of the command queue 71 */ 72 struct iwl_dqa_enable_cmd { 73 __le32 cmd_queue; 74 } __packed; /* DQA_CONTROL_CMD_API_S_VER_1 */ 75 76 /* 77 * struct iwl_tx_ant_cfg_cmd 78 * @valid: valid antenna configuration 79 */ 80 struct iwl_tx_ant_cfg_cmd { 81 __le32 valid; 82 } __packed; 83 84 /** 85 * struct iwl_calib_ctrl - Calibration control struct. 86 * Sent as part of the phy configuration command. 87 * @flow_trigger: bitmap for which calibrations to perform according to 88 * flow triggers, using &enum iwl_calib_cfg 89 * @event_trigger: bitmap for which calibrations to perform according to 90 * event triggers, using &enum iwl_calib_cfg 91 */ 92 struct iwl_calib_ctrl { 93 __le32 flow_trigger; 94 __le32 event_trigger; 95 } __packed; 96 97 /* This enum defines the bitmap of various calibrations to enable in both 98 * init ucode and runtime ucode through CALIBRATION_CFG_CMD. 99 */ 100 enum iwl_calib_cfg { 101 IWL_CALIB_CFG_XTAL_IDX = BIT(0), 102 IWL_CALIB_CFG_TEMPERATURE_IDX = BIT(1), 103 IWL_CALIB_CFG_VOLTAGE_READ_IDX = BIT(2), 104 IWL_CALIB_CFG_PAPD_IDX = BIT(3), 105 IWL_CALIB_CFG_TX_PWR_IDX = BIT(4), 106 IWL_CALIB_CFG_DC_IDX = BIT(5), 107 IWL_CALIB_CFG_BB_FILTER_IDX = BIT(6), 108 IWL_CALIB_CFG_LO_LEAKAGE_IDX = BIT(7), 109 IWL_CALIB_CFG_TX_IQ_IDX = BIT(8), 110 IWL_CALIB_CFG_TX_IQ_SKEW_IDX = BIT(9), 111 IWL_CALIB_CFG_RX_IQ_IDX = BIT(10), 112 IWL_CALIB_CFG_RX_IQ_SKEW_IDX = BIT(11), 113 IWL_CALIB_CFG_SENSITIVITY_IDX = BIT(12), 114 IWL_CALIB_CFG_CHAIN_NOISE_IDX = BIT(13), 115 IWL_CALIB_CFG_DISCONNECTED_ANT_IDX = BIT(14), 116 IWL_CALIB_CFG_ANT_COUPLING_IDX = BIT(15), 117 IWL_CALIB_CFG_DAC_IDX = BIT(16), 118 IWL_CALIB_CFG_ABS_IDX = BIT(17), 119 IWL_CALIB_CFG_AGC_IDX = BIT(18), 120 }; 121 122 /** 123 * struct iwl_phy_cfg_cmd - Phy configuration command 124 * @phy_cfg: PHY configuration value, uses &enum iwl_fw_phy_cfg 125 * @calib_control: calibration control data 126 */ 127 struct iwl_phy_cfg_cmd { 128 __le32 phy_cfg; 129 struct iwl_calib_ctrl calib_control; 130 } __packed; 131 132 /* 133 * enum iwl_dc2dc_config_id - flag ids 134 * 135 * Ids of dc2dc configuration flags 136 */ 137 enum iwl_dc2dc_config_id { 138 DCDC_LOW_POWER_MODE_MSK_SET = 0x1, /* not used */ 139 DCDC_FREQ_TUNE_SET = 0x2, 140 }; /* MARKER_ID_API_E_VER_1 */ 141 142 /** 143 * struct iwl_dc2dc_config_cmd - configure dc2dc values 144 * 145 * (DC2DC_CONFIG_CMD = 0x83) 146 * 147 * Set/Get & configure dc2dc values. 148 * The command always returns the current dc2dc values. 149 * 150 * @flags: set/get dc2dc 151 * @enable_low_power_mode: not used. 152 * @dc2dc_freq_tune0: frequency divider - digital domain 153 * @dc2dc_freq_tune1: frequency divider - analog domain 154 */ 155 struct iwl_dc2dc_config_cmd { 156 __le32 flags; 157 __le32 enable_low_power_mode; /* not used */ 158 __le32 dc2dc_freq_tune0; 159 __le32 dc2dc_freq_tune1; 160 } __packed; /* DC2DC_CONFIG_CMD_API_S_VER_1 */ 161 162 /** 163 * struct iwl_dc2dc_config_resp - response for iwl_dc2dc_config_cmd 164 * 165 * Current dc2dc values returned by the FW. 166 * 167 * @dc2dc_freq_tune0: frequency divider - digital domain 168 * @dc2dc_freq_tune1: frequency divider - analog domain 169 */ 170 struct iwl_dc2dc_config_resp { 171 __le32 dc2dc_freq_tune0; 172 __le32 dc2dc_freq_tune1; 173 } __packed; /* DC2DC_CONFIG_RESP_API_S_VER_1 */ 174 175 #endif /* __iwl_fw_api_config_h__ */ 176