xref: /linux/drivers/net/wireless/intel/iwlwifi/cfg/rf-jf.c (revision 1b98f357dadd6ea613a435fbaef1a5dd7b35fd21)
1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2 /*
3  * Copyright (C) 2015-2017 Intel Deutschland GmbH
4  * Copyright (C) 2018-2021, 2023, 2025 Intel Corporation
5  */
6 #include "iwl-config.h"
7 
8 /* NVM versions */
9 #define IWL_JF_NVM_VERSION		0x0a1d
10 
11 /* Memory offsets and lengths */
12 #define IWL9000_DCCM_OFFSET		0x800000
13 #define IWL9000_DCCM_LEN		0x18000
14 #define IWL9000_DCCM2_OFFSET		0x880000
15 #define IWL9000_DCCM2_LEN		0x8000
16 
17 static const struct iwl_tt_params iwl_jf_tt_params = {
18 	.ct_kill_entry = 115,
19 	.ct_kill_exit = 93,
20 	.ct_kill_duration = 5,
21 	.dynamic_smps_entry = 111,
22 	.dynamic_smps_exit = 107,
23 	.tx_protection_entry = 112,
24 	.tx_protection_exit = 105,
25 	.tx_backoff = {
26 		{.temperature = 110, .backoff = 200},
27 		{.temperature = 111, .backoff = 600},
28 		{.temperature = 112, .backoff = 1200},
29 		{.temperature = 113, .backoff = 2000},
30 		{.temperature = 114, .backoff = 4000},
31 	},
32 	.support_ct_kill = true,
33 	.support_dynamic_smps = true,
34 	.support_tx_protection = true,
35 	.support_tx_backoff = true,
36 };
37 
38 /* these values are ignored if not with Pu/Th MAC firmware, due to offload */
39 #define IWL_DEVICE_JF_PU						\
40 	.dccm_offset = IWL9000_DCCM_OFFSET,				\
41 	.dccm_len = IWL9000_DCCM_LEN,					\
42 	.dccm2_offset = IWL9000_DCCM2_OFFSET,				\
43 	.dccm2_len = IWL9000_DCCM2_LEN,					\
44 	.thermal_params = &iwl_jf_tt_params
45 
46 #define IWL_DEVICE_JF							\
47 	IWL_DEVICE_JF_PU,						\
48 	.led_mode = IWL_LED_RF_STATE,					\
49 	.non_shared_ant = ANT_B,					\
50 	.num_rbds = IWL_NUM_RBDS_NON_HE,				\
51 	.vht_mu_mimo_supported = true,					\
52 	.ht_params = {							\
53 		.stbc = true,						\
54 		.ldpc = true,						\
55 		.ht40_bands = BIT(NL80211_BAND_2GHZ) |			\
56 			      BIT(NL80211_BAND_5GHZ),			\
57 	},								\
58 	.nvm_ver = IWL_JF_NVM_VERSION,					\
59 	.nvm_type = IWL_NVM_EXT
60 
61 const struct iwl_rf_cfg iwl_rf_jf = {
62 	IWL_DEVICE_JF,
63 };
64 
65 const struct iwl_rf_cfg iwl_rf_jf_80mhz = {
66 	IWL_DEVICE_JF,
67 	.bw_limit = 80,
68 };
69 
70 const char iwl9260_name[] = "Intel(R) Wireless-AC 9260";
71 const char iwl9461_name[] = "Intel(R) Wireless-AC 9461";
72 const char iwl9462_name[] = "Intel(R) Wireless-AC 9462";
73 const char iwl9560_name[] = "Intel(R) Wireless-AC 9560";
74 const char iwl9260_160_name[] = "Intel(R) Wireless-AC 9260 160MHz";
75 const char iwl9461_160_name[] = "Intel(R) Wireless-AC 9461 160MHz";
76 const char iwl9462_160_name[] = "Intel(R) Wireless-AC 9462 160MHz";
77 const char iwl9560_160_name[] = "Intel(R) Wireless-AC 9560 160MHz";
78 
79 const char iwl9260_killer_1550_name[] =
80 	"Killer(R) Wireless-AC 1550 Wireless Network Adapter (9260NGW) 160MHz";
81 const char iwl9560_killer_1550i_name[] =
82 	"Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) 160MHz";
83 const char iwl9560_killer_1550s_name[] =
84 	"Killer(R) Wireless-AC 1550s Wireless Network Adapter (9560D2W) 160MHz";
85