1bfcc09ddSBjoern A. Zeeb /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 2bfcc09ddSBjoern A. Zeeb /* 3*a4128aadSBjoern A. Zeeb * Copyright (C) 2012-2014, 2018-2019, 2023-2024 Intel Corporation 4bfcc09ddSBjoern A. Zeeb * Copyright (C) 2013-2015 Intel Mobile Communications GmbH 5bfcc09ddSBjoern A. Zeeb * Copyright (C) 2016-2017 Intel Deutschland GmbH 6bfcc09ddSBjoern A. Zeeb */ 7bfcc09ddSBjoern A. Zeeb #ifndef __iwl_fw_api_config_h__ 8bfcc09ddSBjoern A. Zeeb #define __iwl_fw_api_config_h__ 9bfcc09ddSBjoern A. Zeeb 10bfcc09ddSBjoern A. Zeeb /* 11bfcc09ddSBjoern A. Zeeb * struct iwl_dqa_enable_cmd 12bfcc09ddSBjoern A. Zeeb * @cmd_queue: the TXQ number of the command queue 13bfcc09ddSBjoern A. Zeeb */ 14bfcc09ddSBjoern A. Zeeb struct iwl_dqa_enable_cmd { 15bfcc09ddSBjoern A. Zeeb __le32 cmd_queue; 16bfcc09ddSBjoern A. Zeeb } __packed; /* DQA_CONTROL_CMD_API_S_VER_1 */ 17bfcc09ddSBjoern A. Zeeb 18bfcc09ddSBjoern A. Zeeb /* 19bfcc09ddSBjoern A. Zeeb * struct iwl_tx_ant_cfg_cmd 20bfcc09ddSBjoern A. Zeeb * @valid: valid antenna configuration 21bfcc09ddSBjoern A. Zeeb */ 22bfcc09ddSBjoern A. Zeeb struct iwl_tx_ant_cfg_cmd { 23bfcc09ddSBjoern A. Zeeb __le32 valid; 24bfcc09ddSBjoern A. Zeeb } __packed; 25bfcc09ddSBjoern A. Zeeb 26bfcc09ddSBjoern A. Zeeb /** 27bfcc09ddSBjoern A. Zeeb * struct iwl_calib_ctrl - Calibration control struct. 28bfcc09ddSBjoern A. Zeeb * Sent as part of the phy configuration command. 29bfcc09ddSBjoern A. Zeeb * @flow_trigger: bitmap for which calibrations to perform according to 30bfcc09ddSBjoern A. Zeeb * flow triggers, using &enum iwl_calib_cfg 31bfcc09ddSBjoern A. Zeeb * @event_trigger: bitmap for which calibrations to perform according to 32bfcc09ddSBjoern A. Zeeb * event triggers, using &enum iwl_calib_cfg 33bfcc09ddSBjoern A. Zeeb */ 34bfcc09ddSBjoern A. Zeeb struct iwl_calib_ctrl { 35bfcc09ddSBjoern A. Zeeb __le32 flow_trigger; 36bfcc09ddSBjoern A. Zeeb __le32 event_trigger; 37bfcc09ddSBjoern A. Zeeb } __packed; 38bfcc09ddSBjoern A. Zeeb 39bfcc09ddSBjoern A. Zeeb /* This enum defines the bitmap of various calibrations to enable in both 40bfcc09ddSBjoern A. Zeeb * init ucode and runtime ucode through CALIBRATION_CFG_CMD. 41bfcc09ddSBjoern A. Zeeb */ 42bfcc09ddSBjoern A. Zeeb enum iwl_calib_cfg { 43bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_XTAL_IDX = BIT(0), 44bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_TEMPERATURE_IDX = BIT(1), 45bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_VOLTAGE_READ_IDX = BIT(2), 46bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_PAPD_IDX = BIT(3), 47bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_TX_PWR_IDX = BIT(4), 48bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_DC_IDX = BIT(5), 49bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_BB_FILTER_IDX = BIT(6), 50bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_LO_LEAKAGE_IDX = BIT(7), 51bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_TX_IQ_IDX = BIT(8), 52bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_TX_IQ_SKEW_IDX = BIT(9), 53bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_RX_IQ_IDX = BIT(10), 54bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_RX_IQ_SKEW_IDX = BIT(11), 55bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_SENSITIVITY_IDX = BIT(12), 56bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_CHAIN_NOISE_IDX = BIT(13), 57bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_DISCONNECTED_ANT_IDX = BIT(14), 58bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_ANT_COUPLING_IDX = BIT(15), 59bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_DAC_IDX = BIT(16), 60bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_ABS_IDX = BIT(17), 61bfcc09ddSBjoern A. Zeeb IWL_CALIB_CFG_AGC_IDX = BIT(18), 62bfcc09ddSBjoern A. Zeeb }; 63bfcc09ddSBjoern A. Zeeb 64bfcc09ddSBjoern A. Zeeb /** 65bfcc09ddSBjoern A. Zeeb * struct iwl_phy_specific_cfg - specific PHY filter configuration 66bfcc09ddSBjoern A. Zeeb * 67bfcc09ddSBjoern A. Zeeb * Sent as part of the phy configuration command (v3) to configure specific FW 68bfcc09ddSBjoern A. Zeeb * defined PHY filters that can be applied to each antenna. 69bfcc09ddSBjoern A. Zeeb * 709af1bba4SBjoern A. Zeeb * @filter_cfg_chains: filter config id for LMAC1 chain A, LMAC1 chain B, 719af1bba4SBjoern A. Zeeb * LMAC2 chain A, LMAC2 chain B (in that order) 729af1bba4SBjoern A. Zeeb * values: 0: no filter; 0xffffffff: reserved; otherwise: filter id 73bfcc09ddSBjoern A. Zeeb */ 74bfcc09ddSBjoern A. Zeeb struct iwl_phy_specific_cfg { 759af1bba4SBjoern A. Zeeb __le32 filter_cfg_chains[4]; 76bfcc09ddSBjoern A. Zeeb } __packed; /* PHY_SPECIFIC_CONFIGURATION_API_VER_1*/ 77bfcc09ddSBjoern A. Zeeb 78bfcc09ddSBjoern A. Zeeb /** 79*a4128aadSBjoern A. Zeeb * struct iwl_phy_cfg_cmd_v1 - Phy configuration command 80bfcc09ddSBjoern A. Zeeb * 81bfcc09ddSBjoern A. Zeeb * @phy_cfg: PHY configuration value, uses &enum iwl_fw_phy_cfg 82bfcc09ddSBjoern A. Zeeb * @calib_control: calibration control data 83bfcc09ddSBjoern A. Zeeb */ 84bfcc09ddSBjoern A. Zeeb struct iwl_phy_cfg_cmd_v1 { 85bfcc09ddSBjoern A. Zeeb __le32 phy_cfg; 86bfcc09ddSBjoern A. Zeeb struct iwl_calib_ctrl calib_control; 87bfcc09ddSBjoern A. Zeeb } __packed; 88bfcc09ddSBjoern A. Zeeb 89bfcc09ddSBjoern A. Zeeb /** 90bfcc09ddSBjoern A. Zeeb * struct iwl_phy_cfg_cmd_v3 - Phy configuration command (v3) 91bfcc09ddSBjoern A. Zeeb * 92bfcc09ddSBjoern A. Zeeb * @phy_cfg: PHY configuration value, uses &enum iwl_fw_phy_cfg 93bfcc09ddSBjoern A. Zeeb * @calib_control: calibration control data 94bfcc09ddSBjoern A. Zeeb * @phy_specific_cfg: configure predefined PHY filters 95bfcc09ddSBjoern A. Zeeb */ 96bfcc09ddSBjoern A. Zeeb struct iwl_phy_cfg_cmd_v3 { 97bfcc09ddSBjoern A. Zeeb __le32 phy_cfg; 98bfcc09ddSBjoern A. Zeeb struct iwl_calib_ctrl calib_control; 99bfcc09ddSBjoern A. Zeeb struct iwl_phy_specific_cfg phy_specific_cfg; 100bfcc09ddSBjoern A. Zeeb } __packed; /* PHY_CONFIGURATION_CMD_API_S_VER_3 */ 101bfcc09ddSBjoern A. Zeeb 102bfcc09ddSBjoern A. Zeeb /* 103bfcc09ddSBjoern A. Zeeb * enum iwl_dc2dc_config_id - flag ids 104bfcc09ddSBjoern A. Zeeb * 105bfcc09ddSBjoern A. Zeeb * Ids of dc2dc configuration flags 106bfcc09ddSBjoern A. Zeeb */ 107bfcc09ddSBjoern A. Zeeb enum iwl_dc2dc_config_id { 108bfcc09ddSBjoern A. Zeeb DCDC_LOW_POWER_MODE_MSK_SET = 0x1, /* not used */ 109bfcc09ddSBjoern A. Zeeb DCDC_FREQ_TUNE_SET = 0x2, 110bfcc09ddSBjoern A. Zeeb }; /* MARKER_ID_API_E_VER_1 */ 111bfcc09ddSBjoern A. Zeeb 112bfcc09ddSBjoern A. Zeeb #endif /* __iwl_fw_api_config_h__ */ 113