xref: /openbmc/linux/drivers/net/wireless/intel/iwlwifi/iwl-config.h (revision 34d6f206a88c2651d216bd3487ac956a40b2ba8e)
18e99ea8dSJohannes Berg /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
28e99ea8dSJohannes Berg /*
34886460cSMatti Gottlieb  * Copyright (C) 2005-2014, 2018-2021 Intel Corporation
45da083d1SLiad Kaufman  * Copyright (C) 2016-2017 Intel Deutschland GmbH
5e1374ed2SMukesh Sisodiya  * Copyright (C) 2018-2023 Intel Corporation
68e99ea8dSJohannes Berg  */
7e705c121SKalle Valo #ifndef __IWL_CONFIG_H__
8e705c121SKalle Valo #define __IWL_CONFIG_H__
9e705c121SKalle Valo 
10e705c121SKalle Valo #include <linux/types.h>
115e7d7eb9SJohannes Berg #include <linux/netdevice.h>
125e7d7eb9SJohannes Berg #include <linux/ieee80211.h>
135e7d7eb9SJohannes Berg #include <linux/nl80211.h>
14a8cbb46fSGolan Ben Ami #include "iwl-csr.h"
15e705c121SKalle Valo 
16e705c121SKalle Valo enum iwl_device_family {
17e705c121SKalle Valo 	IWL_DEVICE_FAMILY_UNDEFINED,
18e705c121SKalle Valo 	IWL_DEVICE_FAMILY_1000,
19e705c121SKalle Valo 	IWL_DEVICE_FAMILY_100,
20e705c121SKalle Valo 	IWL_DEVICE_FAMILY_2000,
21e705c121SKalle Valo 	IWL_DEVICE_FAMILY_2030,
22e705c121SKalle Valo 	IWL_DEVICE_FAMILY_105,
23e705c121SKalle Valo 	IWL_DEVICE_FAMILY_135,
24e705c121SKalle Valo 	IWL_DEVICE_FAMILY_5000,
25e705c121SKalle Valo 	IWL_DEVICE_FAMILY_5150,
26e705c121SKalle Valo 	IWL_DEVICE_FAMILY_6000,
27e705c121SKalle Valo 	IWL_DEVICE_FAMILY_6000i,
28e705c121SKalle Valo 	IWL_DEVICE_FAMILY_6005,
29e705c121SKalle Valo 	IWL_DEVICE_FAMILY_6030,
30e705c121SKalle Valo 	IWL_DEVICE_FAMILY_6050,
31e705c121SKalle Valo 	IWL_DEVICE_FAMILY_6150,
32e705c121SKalle Valo 	IWL_DEVICE_FAMILY_7000,
33e705c121SKalle Valo 	IWL_DEVICE_FAMILY_8000,
346e584873SSara Sharon 	IWL_DEVICE_FAMILY_9000,
352f7a3863SLuca Coelho 	IWL_DEVICE_FAMILY_22000,
36ff911dcaSShaul Triebitz 	IWL_DEVICE_FAMILY_AX210,
37d98cee05SJohannes Berg 	IWL_DEVICE_FAMILY_BZ,
385afe98b2SJohannes Berg 	IWL_DEVICE_FAMILY_SC,
39e705c121SKalle Valo };
40e705c121SKalle Valo 
41e705c121SKalle Valo /*
42e705c121SKalle Valo  * LED mode
43e705c121SKalle Valo  *    IWL_LED_DEFAULT:  use device default
44e705c121SKalle Valo  *    IWL_LED_RF_STATE: turn LED on/off based on RF state
45e705c121SKalle Valo  *			LED ON  = RF ON
46e705c121SKalle Valo  *			LED OFF = RF OFF
47e705c121SKalle Valo  *    IWL_LED_BLINK:    adjust led blink rate based on blink table
48e705c121SKalle Valo  *    IWL_LED_DISABLE:	led disabled
49e705c121SKalle Valo  */
50e705c121SKalle Valo enum iwl_led_mode {
51e705c121SKalle Valo 	IWL_LED_DEFAULT,
52e705c121SKalle Valo 	IWL_LED_RF_STATE,
53e705c121SKalle Valo 	IWL_LED_BLINK,
54e705c121SKalle Valo 	IWL_LED_DISABLE,
55e705c121SKalle Valo };
56e705c121SKalle Valo 
5744fd09daSChaya Rachel Ivgi /**
5844fd09daSChaya Rachel Ivgi  * enum iwl_nvm_type - nvm formats
5944fd09daSChaya Rachel Ivgi  * @IWL_NVM: the regular format
6044fd09daSChaya Rachel Ivgi  * @IWL_NVM_EXT: extended NVM format
6144fd09daSChaya Rachel Ivgi  * @IWL_NVM_SDP: NVM format used by 3168 series
6244fd09daSChaya Rachel Ivgi  */
6344fd09daSChaya Rachel Ivgi enum iwl_nvm_type {
6444fd09daSChaya Rachel Ivgi 	IWL_NVM,
6544fd09daSChaya Rachel Ivgi 	IWL_NVM_EXT,
6644fd09daSChaya Rachel Ivgi 	IWL_NVM_SDP,
6744fd09daSChaya Rachel Ivgi };
6844fd09daSChaya Rachel Ivgi 
69e705c121SKalle Valo /*
70e705c121SKalle Valo  * This is the threshold value of plcp error rate per 100mSecs.  It is
71e705c121SKalle Valo  * used to set and check for the validity of plcp_delta.
72e705c121SKalle Valo  */
73e705c121SKalle Valo #define IWL_MAX_PLCP_ERR_THRESHOLD_MIN		1
74e705c121SKalle Valo #define IWL_MAX_PLCP_ERR_THRESHOLD_DEF		50
75e705c121SKalle Valo #define IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF	100
76e705c121SKalle Valo #define IWL_MAX_PLCP_ERR_EXT_LONG_THRESHOLD_DEF	200
77e705c121SKalle Valo #define IWL_MAX_PLCP_ERR_THRESHOLD_MAX		255
78e705c121SKalle Valo #define IWL_MAX_PLCP_ERR_THRESHOLD_DISABLE	0
79e705c121SKalle Valo 
80e705c121SKalle Valo /* TX queue watchdog timeouts in mSecs */
81e705c121SKalle Valo #define IWL_WATCHDOG_DISABLED	0
82e705c121SKalle Valo #define IWL_DEF_WD_TIMEOUT	2500
83e705c121SKalle Valo #define IWL_LONG_WD_TIMEOUT	10000
84e705c121SKalle Valo #define IWL_MAX_WD_TIMEOUT	120000
85e705c121SKalle Valo 
86e705c121SKalle Valo #define IWL_DEFAULT_MAX_TX_POWER 22
875e6a98dcSSara Sharon #define IWL_TX_CSUM_NETIF_FLAGS (NETIF_F_IPV6_CSUM | NETIF_F_IP_CSUM |\
885e6a98dcSSara Sharon 				 NETIF_F_TSO | NETIF_F_TSO6)
896769207fSJohannes Berg #define IWL_CSUM_NETIF_FLAGS_MASK (IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM)
90e705c121SKalle Valo 
91e705c121SKalle Valo /* Antenna presence definitions */
92e705c121SKalle Valo #define	ANT_NONE	0x0
938f6438f7SGregory Greenman #define	ANT_INVALID	0xff
94e705c121SKalle Valo #define	ANT_A		BIT(0)
95e705c121SKalle Valo #define	ANT_B		BIT(1)
96e705c121SKalle Valo #define ANT_C		BIT(2)
97e705c121SKalle Valo #define	ANT_AB		(ANT_A | ANT_B)
98e705c121SKalle Valo #define	ANT_AC		(ANT_A | ANT_C)
99e705c121SKalle Valo #define ANT_BC		(ANT_B | ANT_C)
100e705c121SKalle Valo #define ANT_ABC		(ANT_A | ANT_B | ANT_C)
1012c2b4bbcSNaftali Goldstein 
102e705c121SKalle Valo 
num_of_ant(u8 mask)103e705c121SKalle Valo static inline u8 num_of_ant(u8 mask)
104e705c121SKalle Valo {
105e705c121SKalle Valo 	return  !!((mask) & ANT_A) +
106e705c121SKalle Valo 		!!((mask) & ANT_B) +
107e705c121SKalle Valo 		!!((mask) & ANT_C);
108e705c121SKalle Valo }
109e705c121SKalle Valo 
11079b6c8feSLuca Coelho /**
11179b6c8feSLuca Coelho  * struct iwl_base_params - params not likely to change within a device family
112e705c121SKalle Valo  * @max_ll_items: max number of OTP blocks
113e705c121SKalle Valo  * @shadow_ram_support: shadow support for OTP memory
114e705c121SKalle Valo  * @led_compensation: compensate on the led on/off time per HW according
115e705c121SKalle Valo  *	to the deviation to achieve the desired led frequency.
116e705c121SKalle Valo  *	The detail algorithm is described in iwl-led.c
117e705c121SKalle Valo  * @wd_timeout: TX queues watchdog timeout
118e705c121SKalle Valo  * @max_event_log_size: size of event log buffer size for ucode event logging
119e705c121SKalle Valo  * @shadow_reg_enable: HW shadow register support
120e705c121SKalle Valo  * @apmg_wake_up_wa: should the MAC access REQ be asserted when a command
121e705c121SKalle Valo  *	is in flight. This is due to a HW bug in 7260, 3160 and 7265.
122e705c121SKalle Valo  * @scd_chain_ext_wa: should the chain extension feature in SCD be disabled.
1237b3e42eaSGolan Ben Ami  * @max_tfd_queue_size: max number of entries in tfd queue.
124e705c121SKalle Valo  */
125e705c121SKalle Valo struct iwl_base_params {
126e705c121SKalle Valo 	unsigned int wd_timeout;
12777d76931SJohannes Berg 
12877d76931SJohannes Berg 	u16 eeprom_size;
12977d76931SJohannes Berg 	u16 max_event_log_size;
13077d76931SJohannes Berg 
13177d76931SJohannes Berg 	u8 pll_cfg:1, /* for iwl_pcie_apm_init() */
13277d76931SJohannes Berg 	   shadow_ram_support:1,
13377d76931SJohannes Berg 	   shadow_reg_enable:1,
13477d76931SJohannes Berg 	   pcie_l1_allowed:1,
13577d76931SJohannes Berg 	   apmg_wake_up_wa:1,
13677d76931SJohannes Berg 	   scd_chain_ext_wa:1;
13777d76931SJohannes Berg 
138e982bc2cSSara Sharon 	u16 num_of_queues;	/* def: HW dependent */
1397b3e42eaSGolan Ben Ami 	u32 max_tfd_queue_size;	/* def: HW dependent */
14077d76931SJohannes Berg 
14177d76931SJohannes Berg 	u8 max_ll_items;
14277d76931SJohannes Berg 	u8 led_compensation;
143e705c121SKalle Valo };
144e705c121SKalle Valo 
145e705c121SKalle Valo /*
146e705c121SKalle Valo  * @stbc: support Tx STBC and 1*SS Rx STBC
147e705c121SKalle Valo  * @ldpc: support Tx/Rx with LDPC
148e705c121SKalle Valo  * @use_rts_for_aggregation: use rts/cts protection for HT traffic
14957fbcce3SJohannes Berg  * @ht40_bands: bitmap of bands (using %NL80211_BAND_*) that support HT40
150e705c121SKalle Valo  */
151e705c121SKalle Valo struct iwl_ht_params {
15277d76931SJohannes Berg 	u8 ht_greenfield_support:1,
15377d76931SJohannes Berg 	   stbc:1,
15477d76931SJohannes Berg 	   ldpc:1,
15577d76931SJohannes Berg 	   use_rts_for_aggregation:1;
156e705c121SKalle Valo 	u8 ht40_bands;
157e705c121SKalle Valo };
158e705c121SKalle Valo 
159e705c121SKalle Valo /*
160e705c121SKalle Valo  * Tx-backoff threshold
161e705c121SKalle Valo  * @temperature: The threshold in Celsius
162e705c121SKalle Valo  * @backoff: The tx-backoff in uSec
163e705c121SKalle Valo  */
164e705c121SKalle Valo struct iwl_tt_tx_backoff {
165e705c121SKalle Valo 	s32 temperature;
166e705c121SKalle Valo 	u32 backoff;
167e705c121SKalle Valo };
168e705c121SKalle Valo 
169e705c121SKalle Valo #define TT_TX_BACKOFF_SIZE 6
170e705c121SKalle Valo 
171e705c121SKalle Valo /**
172e705c121SKalle Valo  * struct iwl_tt_params - thermal throttling parameters
173e705c121SKalle Valo  * @ct_kill_entry: CT Kill entry threshold
174e705c121SKalle Valo  * @ct_kill_exit: CT Kill exit threshold
175e705c121SKalle Valo  * @ct_kill_duration: The time  intervals (in uSec) in which the driver needs
176e705c121SKalle Valo  *	to checks whether to exit CT Kill.
177e705c121SKalle Valo  * @dynamic_smps_entry: Dynamic SMPS entry threshold
178e705c121SKalle Valo  * @dynamic_smps_exit: Dynamic SMPS exit threshold
179e705c121SKalle Valo  * @tx_protection_entry: TX protection entry threshold
180e705c121SKalle Valo  * @tx_protection_exit: TX protection exit threshold
181e705c121SKalle Valo  * @tx_backoff: Array of thresholds for tx-backoff , in ascending order.
182e705c121SKalle Valo  * @support_ct_kill: Support CT Kill?
183e705c121SKalle Valo  * @support_dynamic_smps: Support dynamic SMPS?
184e705c121SKalle Valo  * @support_tx_protection: Support tx protection?
185e705c121SKalle Valo  * @support_tx_backoff: Support tx-backoff?
186e705c121SKalle Valo  */
187e705c121SKalle Valo struct iwl_tt_params {
188e705c121SKalle Valo 	u32 ct_kill_entry;
189e705c121SKalle Valo 	u32 ct_kill_exit;
190e705c121SKalle Valo 	u32 ct_kill_duration;
191e705c121SKalle Valo 	u32 dynamic_smps_entry;
192e705c121SKalle Valo 	u32 dynamic_smps_exit;
193e705c121SKalle Valo 	u32 tx_protection_entry;
194e705c121SKalle Valo 	u32 tx_protection_exit;
195e705c121SKalle Valo 	struct iwl_tt_tx_backoff tx_backoff[TT_TX_BACKOFF_SIZE];
19677d76931SJohannes Berg 	u8 support_ct_kill:1,
19777d76931SJohannes Berg 	   support_dynamic_smps:1,
19877d76931SJohannes Berg 	   support_tx_protection:1,
19977d76931SJohannes Berg 	   support_tx_backoff:1;
200e705c121SKalle Valo };
201e705c121SKalle Valo 
202e705c121SKalle Valo /*
203e705c121SKalle Valo  * information on how to parse the EEPROM
204e705c121SKalle Valo  */
205e705c121SKalle Valo #define EEPROM_REG_BAND_1_CHANNELS		0x08
206e705c121SKalle Valo #define EEPROM_REG_BAND_2_CHANNELS		0x26
207e705c121SKalle Valo #define EEPROM_REG_BAND_3_CHANNELS		0x42
208e705c121SKalle Valo #define EEPROM_REG_BAND_4_CHANNELS		0x5C
209e705c121SKalle Valo #define EEPROM_REG_BAND_5_CHANNELS		0x74
210e705c121SKalle Valo #define EEPROM_REG_BAND_24_HT40_CHANNELS	0x82
211e705c121SKalle Valo #define EEPROM_REG_BAND_52_HT40_CHANNELS	0x92
212e705c121SKalle Valo #define EEPROM_6000_REG_BAND_24_HT40_CHANNELS	0x80
213e705c121SKalle Valo #define EEPROM_REGULATORY_BAND_NO_HT40		0
214e705c121SKalle Valo 
215e705c121SKalle Valo /* lower blocks contain EEPROM image and calibration data */
2163e2b49d6SLuca Coelho #define OTP_LOW_IMAGE_SIZE_2K		(2 * 512 * sizeof(u16))  /*  2 KB */
2173e2b49d6SLuca Coelho #define OTP_LOW_IMAGE_SIZE_16K		(16 * 512 * sizeof(u16)) /* 16 KB */
2183e2b49d6SLuca Coelho #define OTP_LOW_IMAGE_SIZE_32K		(32 * 512 * sizeof(u16)) /* 32 KB */
219e705c121SKalle Valo 
220e705c121SKalle Valo struct iwl_eeprom_params {
221e705c121SKalle Valo 	const u8 regulatory_bands[7];
222e705c121SKalle Valo 	bool enhanced_txpower;
223e705c121SKalle Valo };
224e705c121SKalle Valo 
225e705c121SKalle Valo /* Tx-backoff power threshold
226e705c121SKalle Valo  * @pwr: The power limit in mw
227e705c121SKalle Valo  * @backoff: The tx-backoff in uSec
228e705c121SKalle Valo  */
229e705c121SKalle Valo struct iwl_pwr_tx_backoff {
230e705c121SKalle Valo 	u32 pwr;
231e705c121SKalle Valo 	u32 backoff;
232e705c121SKalle Valo };
233e705c121SKalle Valo 
2340928df0aSJohannes Berg enum iwl_cfg_trans_ltr_delay {
2350928df0aSJohannes Berg 	IWL_CFG_TRANS_LTR_DELAY_NONE	= 0,
2360928df0aSJohannes Berg 	IWL_CFG_TRANS_LTR_DELAY_200US	= 1,
2370928df0aSJohannes Berg 	IWL_CFG_TRANS_LTR_DELAY_2500US	= 2,
2380928df0aSJohannes Berg 	IWL_CFG_TRANS_LTR_DELAY_1820US	= 3,
2390928df0aSJohannes Berg };
2400928df0aSJohannes Berg 
241e705c121SKalle Valo /**
24279b6c8feSLuca Coelho  * struct iwl_cfg_trans - information needed to start the trans
24379b6c8feSLuca Coelho  *
2447897dfa2SLuca Coelho  * These values are specific to the device ID and do not change when
2457897dfa2SLuca Coelho  * multiple configs are used for a single device ID.  They values are
2467897dfa2SLuca Coelho  * used, among other things, to boot the NIC so that the HW REV or
2477897dfa2SLuca Coelho  * RFID can be read before deciding the remaining parameters to use.
24879b6c8feSLuca Coelho  *
24979b6c8feSLuca Coelho  * @base_params: pointer to basic parameters
25079b6c8feSLuca Coelho  * @csr: csr flags and addresses that are different across devices
25179b6c8feSLuca Coelho  * @device_family: the device family
25279b6c8feSLuca Coelho  * @umac_prph_offset: offset to add to UMAC periphery address
2537897dfa2SLuca Coelho  * @xtal_latency: power up latency to get the xtal stabilized
2547897dfa2SLuca Coelho  * @extra_phy_cfg_flags: extra configuration flags to pass to the PHY
25579b6c8feSLuca Coelho  * @rf_id: need to read rf_id to determine the firmware image
25679b6c8feSLuca Coelho  * @gen2: 22000 and on transport operation
25779b6c8feSLuca Coelho  * @mq_rx_supported: multi-queue rx support
2587897dfa2SLuca Coelho  * @integrated: discrete or integrated
259095650c0SLuca Coelho  * @low_latency_xtal: use the low latency xtal if supported
2600928df0aSJohannes Berg  * @ltr_delay: LTR delay parameter, &enum iwl_cfg_trans_ltr_delay.
2611c4db761SMukesh Sisodiya  * @imr_enabled: use the IMR if supported.
26279b6c8feSLuca Coelho  */
26379b6c8feSLuca Coelho struct iwl_cfg_trans_params {
26479b6c8feSLuca Coelho 	const struct iwl_base_params *base_params;
26579b6c8feSLuca Coelho 	enum iwl_device_family device_family;
26679b6c8feSLuca Coelho 	u32 umac_prph_offset;
2677897dfa2SLuca Coelho 	u32 xtal_latency;
2687897dfa2SLuca Coelho 	u32 extra_phy_cfg_flags;
26979b6c8feSLuca Coelho 	u32 rf_id:1,
27079b6c8feSLuca Coelho 	    gen2:1,
27179b6c8feSLuca Coelho 	    mq_rx_supported:1,
2727897dfa2SLuca Coelho 	    integrated:1,
273095650c0SLuca Coelho 	    low_latency_xtal:1,
2740928df0aSJohannes Berg 	    bisr_workaround:1,
2751c4db761SMukesh Sisodiya 	    ltr_delay:2,
2761c4db761SMukesh Sisodiya 	    imr_enabled:1;
27779b6c8feSLuca Coelho };
27879b6c8feSLuca Coelho 
27979b6c8feSLuca Coelho /**
280593fae3eSShahar S Matityahu  * struct iwl_fw_mon_reg - FW monitor register info
281593fae3eSShahar S Matityahu  * @addr: register address
282593fae3eSShahar S Matityahu  * @mask: register mask
283593fae3eSShahar S Matityahu  */
284593fae3eSShahar S Matityahu struct iwl_fw_mon_reg {
285593fae3eSShahar S Matityahu 	u32 addr;
286593fae3eSShahar S Matityahu 	u32 mask;
287593fae3eSShahar S Matityahu };
288593fae3eSShahar S Matityahu 
289593fae3eSShahar S Matityahu /**
290593fae3eSShahar S Matityahu  * struct iwl_fw_mon_regs - FW monitor registers
291593fae3eSShahar S Matityahu  * @write_ptr: write pointer register
292593fae3eSShahar S Matityahu  * @cycle_cnt: cycle count register
293593fae3eSShahar S Matityahu  * @cur_frag: current fragment in use
294593fae3eSShahar S Matityahu  */
295593fae3eSShahar S Matityahu struct iwl_fw_mon_regs {
296593fae3eSShahar S Matityahu 	struct iwl_fw_mon_reg write_ptr;
297593fae3eSShahar S Matityahu 	struct iwl_fw_mon_reg cycle_cnt;
298593fae3eSShahar S Matityahu 	struct iwl_fw_mon_reg cur_frag;
299593fae3eSShahar S Matityahu };
300593fae3eSShahar S Matityahu 
301593fae3eSShahar S Matityahu /**
302e705c121SKalle Valo  * struct iwl_cfg
30379b6c8feSLuca Coelho  * @trans: the trans-specific configuration part
304e705c121SKalle Valo  * @name: Official name of the device
305e705c121SKalle Valo  * @fw_name_pre: Firmware filename prefix. The api version and extension
306e705c121SKalle Valo  *	(.ucode) will be added to filename before loading from disk. The
30731aeae24SJohannes Berg  *	filename is constructed as <fw_name_pre>-<api>.ucode.
3083fd31289SJohannes Berg  * @fw_name_mac: MAC name for this config, the remaining pieces of the
3093fd31289SJohannes Berg  *	name will be generated dynamically
310e705c121SKalle Valo  * @ucode_api_max: Highest version of uCode API supported by driver.
311e705c121SKalle Valo  * @ucode_api_min: Lowest version of uCode API supported by driver.
3124efc272aSLuca Coelho  * @max_inst_size: The maximal length of the fw inst section (only DVM)
3134efc272aSLuca Coelho  * @max_data_size: The maximal length of the fw data section (only DVM)
314e705c121SKalle Valo  * @valid_tx_ant: valid transmit antenna
315e705c121SKalle Valo  * @valid_rx_ant: valid receive antenna
316e705c121SKalle Valo  * @non_shared_ant: the antenna that is for WiFi only
317e705c121SKalle Valo  * @nvm_ver: NVM version
318e705c121SKalle Valo  * @nvm_calib_ver: NVM calibration version
319e705c121SKalle Valo  * @lib: pointer to the lib ops
320e705c121SKalle Valo  * @ht_params: point to ht parameters
321e705c121SKalle Valo  * @led_mode: 0=blinking, 1=On(RF On)/Off(RF Off)
322e705c121SKalle Valo  * @rx_with_siso_diversity: 1x1 device with rx antenna diversity
3235952e0ecSHaim Dreyfuss  * @tx_with_siso_diversity: 1x1 device with tx antenna diversity
324e705c121SKalle Valo  * @internal_wimax_coex: internal wifi/wimax combo device
325e705c121SKalle Valo  * @high_temp: Is this NIC is designated to be in high temperature.
326e705c121SKalle Valo  * @host_interrupt_operation_mode: device needs host interrupt operation
327e705c121SKalle Valo  *	mode set
328e705c121SKalle Valo  * @nvm_hw_section_num: the ID of the HW NVM section
3297e6dffdaSJohannes Berg  * @mac_addr_from_csr: read HW address from CSR registers at this offset
330cdaba917SEmmanuel Grumbach  * @features: hw features, any combination of feature_passlist
331e705c121SKalle Valo  * @pwr_tx_backoffs: translation table between power limits and backoffs
332e705c121SKalle Valo  * @max_tx_agg_size: max TX aggregation size of the ADDBA request/response
333e705c121SKalle Valo  * @dccm_offset: offset from which DCCM begins
334e705c121SKalle Valo  * @dccm_len: length of DCCM (including runtime stack CCM)
335e705c121SKalle Valo  * @dccm2_offset: offset from which the second DCCM begins
336e705c121SKalle Valo  * @dccm2_len: length of the second DCCM
337e705c121SKalle Valo  * @smem_offset: offset from which the SMEM begins
338e705c121SKalle Valo  * @smem_len: the length of SMEM
339e48c947fSSara Sharon  * @vht_mu_mimo_supported: VHT MU-MIMO support
340386f4936SSara Sharon  * @cdb: CDB support
34144fd09daSChaya Rachel Ivgi  * @nvm_type: see &enum iwl_nvm_type
3422d8c2615SShahar S Matityahu  * @d3_debug_data_base_addr: base address where D3 debug data is stored
3432d8c2615SShahar S Matityahu  * @d3_debug_data_length: length of the D3 debug data
344b998fbbdSJohannes Berg  * @bisr_workaround: BISR hardware workaround (for 22260 series devices)
345ff911dcaSShaul Triebitz  * @min_txq_size: minimum number of slots required in a TX queue
346b15ef67cSShaul Triebitz  * @uhb_supported: ultra high band channels supported
347d5399f11SMordechay Goodstein  * @min_ba_txq_size: minimum number of slots required in a TX queue which
348d5399f11SMordechay Goodstein  *	based on hardware support (HE - 256, EHT - 1K).
349c042f0c7SJohannes Berg  * @num_rbds: number of receive buffer descriptors to use
350c042f0c7SJohannes Berg  *	(only used for multi-queue capable devices)
3517e6dffdaSJohannes Berg  * @mac_addr_csr_base: CSR base register for MAC address access, if not set
3527e6dffdaSJohannes Berg  *	assume 0x380
353e705c121SKalle Valo  *
354e705c121SKalle Valo  * We enable the driver to be backward compatible wrt. hardware features.
355e705c121SKalle Valo  * API differences in uCode shouldn't be handled here but through TLVs
356e705c121SKalle Valo  * and/or the uCode API version instead.
357e705c121SKalle Valo  */
358e705c121SKalle Valo struct iwl_cfg {
35979b6c8feSLuca Coelho 	struct iwl_cfg_trans_params trans;
360e705c121SKalle Valo 	/* params specific to an individual device within a device family */
361e705c121SKalle Valo 	const char *name;
362e705c121SKalle Valo 	const char *fw_name_pre;
3633fd31289SJohannes Berg 	const char *fw_name_mac;
364e705c121SKalle Valo 	/* params likely to change within a device family */
365e705c121SKalle Valo 	const struct iwl_ht_params *ht_params;
366e705c121SKalle Valo 	const struct iwl_eeprom_params *eeprom_params;
367e705c121SKalle Valo 	const struct iwl_pwr_tx_backoff *pwr_tx_backoffs;
368e705c121SKalle Valo 	const char *default_nvm_file_C_step;
369e705c121SKalle Valo 	const struct iwl_tt_params *thermal_params;
37077d76931SJohannes Berg 	enum iwl_led_mode led_mode;
37144fd09daSChaya Rachel Ivgi 	enum iwl_nvm_type nvm_type;
37277d76931SJohannes Berg 	u32 max_data_size;
37377d76931SJohannes Berg 	u32 max_inst_size;
37477d76931SJohannes Berg 	netdev_features_t features;
37577d76931SJohannes Berg 	u32 dccm_offset;
37677d76931SJohannes Berg 	u32 dccm_len;
37777d76931SJohannes Berg 	u32 dccm2_offset;
37877d76931SJohannes Berg 	u32 dccm2_len;
37977d76931SJohannes Berg 	u32 smem_offset;
38077d76931SJohannes Berg 	u32 smem_len;
38177d76931SJohannes Berg 	u16 nvm_ver;
38277d76931SJohannes Berg 	u16 nvm_calib_ver;
383c3039b10SLuca Coelho 	u32 rx_with_siso_diversity:1,
3845952e0ecSHaim Dreyfuss 	    tx_with_siso_diversity:1,
38577d76931SJohannes Berg 	    bt_shared_single_ant:1,
38677d76931SJohannes Berg 	    internal_wimax_coex:1,
38777d76931SJohannes Berg 	    host_interrupt_operation_mode:1,
38877d76931SJohannes Berg 	    high_temp:1,
3897e6dffdaSJohannes Berg 	    mac_addr_from_csr:10,
39077d76931SJohannes Berg 	    lp_xtal_workaround:1,
39177d76931SJohannes Berg 	    apmg_not_supported:1,
39277d76931SJohannes Berg 	    vht_mu_mimo_supported:1,
3937042678dSSara Sharon 	    cdb:1,
394b998fbbdSJohannes Berg 	    dbgc_supported:1,
395b15ef67cSShaul Triebitz 	    uhb_supported:1;
39677d76931SJohannes Berg 	u8 valid_tx_ant;
39777d76931SJohannes Berg 	u8 valid_rx_ant;
39877d76931SJohannes Berg 	u8 non_shared_ant;
39977d76931SJohannes Berg 	u8 nvm_hw_section_num;
40077d76931SJohannes Berg 	u8 max_tx_agg_size;
40177d76931SJohannes Berg 	u8 ucode_api_max;
40277d76931SJohannes Berg 	u8 ucode_api_min;
403c042f0c7SJohannes Berg 	u16 num_rbds;
4043485e76eSLuca Coelho 	u32 min_umac_error_event_table;
4052d8c2615SShahar S Matityahu 	u32 d3_debug_data_base_addr;
4062d8c2615SShahar S Matityahu 	u32 d3_debug_data_length;
407ff911dcaSShaul Triebitz 	u32 min_txq_size;
408afc1e3b4SAvraham Stern 	u32 gp2_reg_addr;
409d5399f11SMordechay Goodstein 	u32 min_ba_txq_size;
410593fae3eSShahar S Matityahu 	const struct iwl_fw_mon_regs mon_dram_regs;
411593fae3eSShahar S Matityahu 	const struct iwl_fw_mon_regs mon_smem_regs;
41234bc2778SRotem Saado 	const struct iwl_fw_mon_regs mon_dbgi_regs;
413e705c121SKalle Valo };
414e705c121SKalle Valo 
4152a612a60SLuca Coelho #define IWL_CFG_ANY (~0)
4162a612a60SLuca Coelho 
417f673a193SLuca Coelho #define IWL_CFG_MAC_TYPE_PU		0x31
418d6f2134aSLuca Coelho #define IWL_CFG_MAC_TYPE_TH		0x32
419d6f2134aSLuca Coelho #define IWL_CFG_MAC_TYPE_QU		0x33
42032ed101aSLuca Coelho #define IWL_CFG_MAC_TYPE_QUZ		0x35
4216f60fb03SLuca Coelho #define IWL_CFG_MAC_TYPE_SO		0x37
42208f4b0b1SLuca Coelho #define IWL_CFG_MAC_TYPE_SOF		0x43
423bc9296f4SIhab Zhaika #define IWL_CFG_MAC_TYPE_MA		0x44
4242be05dfdSMatti Gottlieb #define IWL_CFG_MAC_TYPE_BZ		0x46
425af82c007SMatti Gottlieb #define IWL_CFG_MAC_TYPE_GL		0x47
426e1374ed2SMukesh Sisodiya #define IWL_CFG_MAC_TYPE_SC		0x48
427d6f2134aSLuca Coelho 
428d6f2134aSLuca Coelho #define IWL_CFG_RF_TYPE_TH		0x105
429fe25b151SLuca Coelho #define IWL_CFG_RF_TYPE_TH1		0x108
430d6f2134aSLuca Coelho #define IWL_CFG_RF_TYPE_JF2		0x105
431d6f2134aSLuca Coelho #define IWL_CFG_RF_TYPE_JF1		0x108
4323f910a25SLuca Coelho #define IWL_CFG_RF_TYPE_HR2		0x10A
4333f910a25SLuca Coelho #define IWL_CFG_RF_TYPE_HR1		0x10C
434bc9296f4SIhab Zhaika #define IWL_CFG_RF_TYPE_GF		0x10D
435bc9296f4SIhab Zhaika #define IWL_CFG_RF_TYPE_MR		0x110
436ac4790dcSYaara Baruch #define IWL_CFG_RF_TYPE_MS		0x111
4377e2c1437SMatti Gottlieb #define IWL_CFG_RF_TYPE_FM		0x112
438e1374ed2SMukesh Sisodiya #define IWL_CFG_RF_TYPE_WH		0x113
439d6f2134aSLuca Coelho 
440f673a193SLuca Coelho #define IWL_CFG_RF_ID_TH		0x1
441f673a193SLuca Coelho #define IWL_CFG_RF_ID_TH1		0x1
442f673a193SLuca Coelho #define IWL_CFG_RF_ID_JF		0x3
443f673a193SLuca Coelho #define IWL_CFG_RF_ID_JF1		0x6
444b200dba7SLuca Coelho #define IWL_CFG_RF_ID_JF1_DIV		0xA
4453f910a25SLuca Coelho #define IWL_CFG_RF_ID_HR		0x7
4463f910a25SLuca Coelho #define IWL_CFG_RF_ID_HR1		0x4
447f673a193SLuca Coelho 
448568d3434SLuca Coelho #define IWL_CFG_NO_160			0x1
449568d3434SLuca Coelho #define IWL_CFG_160			0x0
450d6f2134aSLuca Coelho 
45195939551SLuca Coelho #define IWL_CFG_CORES_BT		0x0
45295939551SLuca Coelho #define IWL_CFG_CORES_BT_GNSS		0x5
45395939551SLuca Coelho 
454b964bfd0SMatti Gottlieb #define IWL_CFG_NO_CDB			0x0
455b964bfd0SMatti Gottlieb #define IWL_CFG_CDB			0x1
456b964bfd0SMatti Gottlieb 
4572b0ceda9SMike Golant #define IWL_CFG_NO_JACKET		0x0
4582b0ceda9SMike Golant #define IWL_CFG_IS_JACKET		0x1
4592b0ceda9SMike Golant 
460f673a193SLuca Coelho #define IWL_SUBDEVICE_RF_ID(subdevice)	((u16)((subdevice) & 0x00F0) >> 4)
4614886460cSMatti Gottlieb #define IWL_SUBDEVICE_NO_160(subdevice)	((u16)((subdevice) & 0x0200) >> 9)
46295939551SLuca Coelho #define IWL_SUBDEVICE_CORES(subdevice)	((u16)((subdevice) & 0x1C00) >> 10)
463d6f2134aSLuca Coelho 
4642a612a60SLuca Coelho struct iwl_dev_info {
4652a612a60SLuca Coelho 	u16 device;
4662a612a60SLuca Coelho 	u16 subdevice;
467d6f2134aSLuca Coelho 	u16 mac_type;
468d6f2134aSLuca Coelho 	u16 rf_type;
469be2f6886SLuca Coelho 	u8 mac_step;
47072904029SMukesh Sisodiya 	u8 rf_step;
471f673a193SLuca Coelho 	u8 rf_id;
472d6f2134aSLuca Coelho 	u8 no_160;
47395939551SLuca Coelho 	u8 cores;
474b964bfd0SMatti Gottlieb 	u8 cdb;
4752b0ceda9SMike Golant 	u8 jacket;
4762a612a60SLuca Coelho 	const struct iwl_cfg *cfg;
4770b295a1eSLuca Coelho 	const char *name;
4782a612a60SLuca Coelho };
4792a612a60SLuca Coelho 
480e705c121SKalle Valo /*
481e705c121SKalle Valo  * This list declares the config structures for all devices.
482e705c121SKalle Valo  */
4832a612a60SLuca Coelho extern const struct iwl_cfg_trans_params iwl9000_trans_cfg;
4847897dfa2SLuca Coelho extern const struct iwl_cfg_trans_params iwl9560_trans_cfg;
48524436191SLuca Coelho extern const struct iwl_cfg_trans_params iwl9560_long_latency_trans_cfg;
4867897dfa2SLuca Coelho extern const struct iwl_cfg_trans_params iwl9560_shared_clk_trans_cfg;
4879c9613f0SLuca Coelho extern const struct iwl_cfg_trans_params iwl_qu_trans_cfg;
4889c9613f0SLuca Coelho extern const struct iwl_cfg_trans_params iwl_qu_medium_latency_trans_cfg;
4899c9613f0SLuca Coelho extern const struct iwl_cfg_trans_params iwl_qu_long_latency_trans_cfg;
4905e003982SLuca Coelho extern const struct iwl_cfg_trans_params iwl_ax200_trans_cfg;
4916f60fb03SLuca Coelho extern const struct iwl_cfg_trans_params iwl_so_trans_cfg;
4926f60fb03SLuca Coelho extern const struct iwl_cfg_trans_params iwl_so_long_latency_trans_cfg;
4931c4db761SMukesh Sisodiya extern const struct iwl_cfg_trans_params iwl_so_long_latency_imr_trans_cfg;
494bc9296f4SIhab Zhaika extern const struct iwl_cfg_trans_params iwl_ma_trans_cfg;
4952be05dfdSMatti Gottlieb extern const struct iwl_cfg_trans_params iwl_bz_trans_cfg;
496*2c4a7b50SJohannes Berg extern const struct iwl_cfg_trans_params iwl_gl_trans_cfg;
49719898ce9SJohannes Berg extern const struct iwl_cfg_trans_params iwl_sc_trans_cfg;
498fe25b151SLuca Coelho extern const char iwl9162_name[];
49956ba371aSLuca Coelho extern const char iwl9260_name[];
50055cf5fb9SLuca Coelho extern const char iwl9260_1_name[];
50156ba371aSLuca Coelho extern const char iwl9270_name[];
50256ba371aSLuca Coelho extern const char iwl9461_name[];
50356ba371aSLuca Coelho extern const char iwl9462_name[];
50456ba371aSLuca Coelho extern const char iwl9560_name[];
505fe25b151SLuca Coelho extern const char iwl9162_160_name[];
5060b295a1eSLuca Coelho extern const char iwl9260_160_name[];
50795939551SLuca Coelho extern const char iwl9270_160_name[];
508b200dba7SLuca Coelho extern const char iwl9461_160_name[];
509b200dba7SLuca Coelho extern const char iwl9462_160_name[];
5100b295a1eSLuca Coelho extern const char iwl9560_160_name[];
51156ba371aSLuca Coelho extern const char iwl9260_killer_1550_name[];
51256ba371aSLuca Coelho extern const char iwl9560_killer_1550i_name[];
51356ba371aSLuca Coelho extern const char iwl9560_killer_1550s_name[];
5145e003982SLuca Coelho extern const char iwl_ax200_name[];
51516062c12SLuca Coelho extern const char iwl_ax203_name[];
516ac4790dcSYaara Baruch extern const char iwl_ax204_name[];
517d5727b60SLuca Coelho extern const char iwl_ax201_name[];
5183f910a25SLuca Coelho extern const char iwl_ax101_name[];
5195e003982SLuca Coelho extern const char iwl_ax200_killer_1650w_name[];
5205e003982SLuca Coelho extern const char iwl_ax200_killer_1650x_name[];
52164564669SIhab Zhaika extern const char iwl_ax201_killer_1650s_name[];
52264564669SIhab Zhaika extern const char iwl_ax201_killer_1650i_name[];
52385b5fd94Sybaruch extern const char iwl_ax210_killer_1675w_name[];
52485b5fd94Sybaruch extern const char iwl_ax210_killer_1675x_name[];
525c863797bSybaruch extern const char iwl9560_killer_1550i_160_name[];
526c863797bSybaruch extern const char iwl9560_killer_1550s_160_name[];
52733c99471SYaara Baruch extern const char iwl_ax211_killer_1675s_name[];
52833c99471SYaara Baruch extern const char iwl_ax211_killer_1675i_name[];
52933c99471SYaara Baruch extern const char iwl_ax411_killer_1690s_name[];
53033c99471SYaara Baruch extern const char iwl_ax411_killer_1690i_name[];
531bc9296f4SIhab Zhaika extern const char iwl_ax211_name[];
5328932abefSMatti Gottlieb extern const char iwl_ax221_name[];
5337e2c1437SMatti Gottlieb extern const char iwl_ax231_name[];
534bc9296f4SIhab Zhaika extern const char iwl_ax411_name[];
535d01408eeSJohannes Berg extern const char iwl_bz_name[];
536e1374ed2SMukesh Sisodiya extern const char iwl_sc_name[];
537e705c121SKalle Valo #if IS_ENABLED(CONFIG_IWLDVM)
538e705c121SKalle Valo extern const struct iwl_cfg iwl5300_agn_cfg;
539e705c121SKalle Valo extern const struct iwl_cfg iwl5100_agn_cfg;
540e705c121SKalle Valo extern const struct iwl_cfg iwl5350_agn_cfg;
541e705c121SKalle Valo extern const struct iwl_cfg iwl5100_bgn_cfg;
542e705c121SKalle Valo extern const struct iwl_cfg iwl5100_abg_cfg;
543e705c121SKalle Valo extern const struct iwl_cfg iwl5150_agn_cfg;
544e705c121SKalle Valo extern const struct iwl_cfg iwl5150_abg_cfg;
545e705c121SKalle Valo extern const struct iwl_cfg iwl6005_2agn_cfg;
546e705c121SKalle Valo extern const struct iwl_cfg iwl6005_2abg_cfg;
547e705c121SKalle Valo extern const struct iwl_cfg iwl6005_2bg_cfg;
548e705c121SKalle Valo extern const struct iwl_cfg iwl6005_2agn_sff_cfg;
549e705c121SKalle Valo extern const struct iwl_cfg iwl6005_2agn_d_cfg;
550e705c121SKalle Valo extern const struct iwl_cfg iwl6005_2agn_mow1_cfg;
551e705c121SKalle Valo extern const struct iwl_cfg iwl6005_2agn_mow2_cfg;
552e705c121SKalle Valo extern const struct iwl_cfg iwl1030_bgn_cfg;
553e705c121SKalle Valo extern const struct iwl_cfg iwl1030_bg_cfg;
554e705c121SKalle Valo extern const struct iwl_cfg iwl6030_2agn_cfg;
555e705c121SKalle Valo extern const struct iwl_cfg iwl6030_2abg_cfg;
556e705c121SKalle Valo extern const struct iwl_cfg iwl6030_2bgn_cfg;
557e705c121SKalle Valo extern const struct iwl_cfg iwl6030_2bg_cfg;
558e705c121SKalle Valo extern const struct iwl_cfg iwl6000i_2agn_cfg;
559e705c121SKalle Valo extern const struct iwl_cfg iwl6000i_2abg_cfg;
560e705c121SKalle Valo extern const struct iwl_cfg iwl6000i_2bg_cfg;
561e705c121SKalle Valo extern const struct iwl_cfg iwl6000_3agn_cfg;
562e705c121SKalle Valo extern const struct iwl_cfg iwl6050_2agn_cfg;
563e705c121SKalle Valo extern const struct iwl_cfg iwl6050_2abg_cfg;
564e705c121SKalle Valo extern const struct iwl_cfg iwl6150_bgn_cfg;
565e705c121SKalle Valo extern const struct iwl_cfg iwl6150_bg_cfg;
566e705c121SKalle Valo extern const struct iwl_cfg iwl1000_bgn_cfg;
567e705c121SKalle Valo extern const struct iwl_cfg iwl1000_bg_cfg;
568e705c121SKalle Valo extern const struct iwl_cfg iwl100_bgn_cfg;
569e705c121SKalle Valo extern const struct iwl_cfg iwl100_bg_cfg;
570e705c121SKalle Valo extern const struct iwl_cfg iwl130_bgn_cfg;
571e705c121SKalle Valo extern const struct iwl_cfg iwl130_bg_cfg;
572e705c121SKalle Valo extern const struct iwl_cfg iwl2000_2bgn_cfg;
573e705c121SKalle Valo extern const struct iwl_cfg iwl2000_2bgn_d_cfg;
574e705c121SKalle Valo extern const struct iwl_cfg iwl2030_2bgn_cfg;
575e705c121SKalle Valo extern const struct iwl_cfg iwl6035_2agn_cfg;
576e705c121SKalle Valo extern const struct iwl_cfg iwl6035_2agn_sff_cfg;
577e705c121SKalle Valo extern const struct iwl_cfg iwl105_bgn_cfg;
578e705c121SKalle Valo extern const struct iwl_cfg iwl105_bgn_d_cfg;
579e705c121SKalle Valo extern const struct iwl_cfg iwl135_bgn_cfg;
580e705c121SKalle Valo #endif /* CONFIG_IWLDVM */
581e705c121SKalle Valo #if IS_ENABLED(CONFIG_IWLMVM)
58219898ce9SJohannes Berg extern const struct iwl_ht_params iwl_22000_ht_params;
583e705c121SKalle Valo extern const struct iwl_cfg iwl7260_2ac_cfg;
584e705c121SKalle Valo extern const struct iwl_cfg iwl7260_2ac_cfg_high_temp;
585e705c121SKalle Valo extern const struct iwl_cfg iwl7260_2n_cfg;
586e705c121SKalle Valo extern const struct iwl_cfg iwl7260_n_cfg;
587e705c121SKalle Valo extern const struct iwl_cfg iwl3160_2ac_cfg;
588e705c121SKalle Valo extern const struct iwl_cfg iwl3160_2n_cfg;
589e705c121SKalle Valo extern const struct iwl_cfg iwl3160_n_cfg;
590e705c121SKalle Valo extern const struct iwl_cfg iwl3165_2ac_cfg;
591c4836b05SOren Givon extern const struct iwl_cfg iwl3168_2ac_cfg;
592e705c121SKalle Valo extern const struct iwl_cfg iwl7265_2ac_cfg;
593e705c121SKalle Valo extern const struct iwl_cfg iwl7265_2n_cfg;
594e705c121SKalle Valo extern const struct iwl_cfg iwl7265_n_cfg;
595e705c121SKalle Valo extern const struct iwl_cfg iwl7265d_2ac_cfg;
596e705c121SKalle Valo extern const struct iwl_cfg iwl7265d_2n_cfg;
597e705c121SKalle Valo extern const struct iwl_cfg iwl7265d_n_cfg;
598e705c121SKalle Valo extern const struct iwl_cfg iwl8260_2n_cfg;
599e705c121SKalle Valo extern const struct iwl_cfg iwl8260_2ac_cfg;
600abf10f86SOren Givon extern const struct iwl_cfg iwl8265_2ac_cfg;
601a3e939dfSOren Givon extern const struct iwl_cfg iwl8275_2ac_cfg;
602e705c121SKalle Valo extern const struct iwl_cfg iwl4165_2ac_cfg;
603aea2a5f0SHaim Dreyfuss extern const struct iwl_cfg iwl9260_2ac_cfg;
60432ed101aSLuca Coelho extern const struct iwl_cfg iwl9560_qu_b0_jf_b0_cfg;
60532ed101aSLuca Coelho extern const struct iwl_cfg iwl9560_qu_c0_jf_b0_cfg;
60632ed101aSLuca Coelho extern const struct iwl_cfg iwl9560_quz_a0_jf_b0_cfg;
607dbc89253SLuca Coelho extern const struct iwl_cfg iwl9560_2ac_cfg_soc;
6083f910a25SLuca Coelho extern const struct iwl_cfg iwl_qu_b0_hr1_b0;
6093f910a25SLuca Coelho extern const struct iwl_cfg iwl_qu_c0_hr1_b0;
6103f910a25SLuca Coelho extern const struct iwl_cfg iwl_quz_a0_hr1_b0;
61116062c12SLuca Coelho extern const struct iwl_cfg iwl_qu_b0_hr_b0;
61216062c12SLuca Coelho extern const struct iwl_cfg iwl_qu_c0_hr_b0;
6130d5bad14SIhab Zhaika extern const struct iwl_cfg iwl_ax200_cfg_cc;
614d151b0a2SIhab Zhaika extern const struct iwl_cfg iwl_ax201_cfg_qu_hr;
615a7d544d6SLuca Coelho extern const struct iwl_cfg iwl_ax201_cfg_qu_c0_hr_b0;
616a976bfb4SIhab Zhaika extern const struct iwl_cfg iwl_ax201_cfg_quz_hr;
617a976bfb4SIhab Zhaika extern const struct iwl_cfg iwl_ax1650i_cfg_quz_hr;
618a976bfb4SIhab Zhaika extern const struct iwl_cfg iwl_ax1650s_cfg_quz_hr;
6195b74a936SIhab Zhaika extern const struct iwl_cfg killer1650s_2ax_cfg_qu_b0_hr_b0;
6205b74a936SIhab Zhaika extern const struct iwl_cfg killer1650i_2ax_cfg_qu_b0_hr_b0;
621b9500577SLuca Coelho extern const struct iwl_cfg killer1650s_2ax_cfg_qu_c0_hr_b0;
622b9500577SLuca Coelho extern const struct iwl_cfg killer1650i_2ax_cfg_qu_c0_hr_b0;
6238093bb6dSLuca Coelho extern const struct iwl_cfg killer1650x_2ax_cfg;
6248093bb6dSLuca Coelho extern const struct iwl_cfg killer1650w_2ax_cfg;
62539ab22c1Sybaruch extern const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0;
626d151b0a2SIhab Zhaika extern const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0;
62762bee486SLuca Coelho extern const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0_long;
628ff911dcaSShaul Triebitz extern const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0;
629d151b0a2SIhab Zhaika extern const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0;
63062bee486SLuca Coelho extern const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0_long;
631ecf11f4eSJohannes Berg 
632ecf11f4eSJohannes Berg extern const struct iwl_cfg iwl_cfg_ma;
633ecf11f4eSJohannes Berg 
634410f7585SIhab Zhaika extern const struct iwl_cfg iwl_cfg_so_a0_hr_a0;
635ac4790dcSYaara Baruch extern const struct iwl_cfg iwl_cfg_so_a0_ms_a0;
636410f7585SIhab Zhaika extern const struct iwl_cfg iwl_cfg_quz_a0_hr_b0;
6373fd31289SJohannes Berg 
6383fd31289SJohannes Berg extern const struct iwl_cfg iwl_cfg_bz;
6393fd31289SJohannes Berg extern const struct iwl_cfg iwl_cfg_gl;
6403fd31289SJohannes Berg 
641bfed356bSJohannes Berg extern const struct iwl_cfg iwl_cfg_sc;
6420f736f3bSLuca Ceresoli #endif /* CONFIG_IWLMVM */
643e705c121SKalle Valo 
644e705c121SKalle Valo #endif /* __IWL_CONFIG_H__ */
645