1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 2 /* 3 * Copyright (C) 2015-2017 Intel Deutschland GmbH 4 * Copyright (C) 2018-2025 Intel Corporation 5 */ 6 #include "iwl-config.h" 7 8 /* Highest firmware API version supported */ 9 #define IWL_HR_UCODE_API_MAX 100 10 11 /* Lowest firmware API version supported */ 12 #define IWL_HR_UCODE_API_MIN 98 13 14 #define IWL_QU_B_HR_B_FW_PRE "iwlwifi-Qu-b0-hr-b0" 15 #define IWL_QU_C_HR_B_FW_PRE "iwlwifi-Qu-c0-hr-b0" 16 #define IWL_QUZ_A_HR_B_FW_PRE "iwlwifi-QuZ-a0-hr-b0" 17 #define IWL_SO_A_HR_B_FW_PRE "iwlwifi-so-a0-hr-b0" 18 #define IWL_MA_A_HR_B_FW_PRE "iwlwifi-ma-a0-hr-b0" 19 #define IWL_MA_B_HR_B_FW_PRE "iwlwifi-ma-b0-hr-b0" 20 #define IWL_BZ_A_HR_B_FW_PRE "iwlwifi-bz-a0-hr-b0" 21 #define IWL_SC_A_HR_A_FW_PRE "iwlwifi-sc-a0-hr-b0" 22 #define IWL_SC_A_HR_B_FW_PRE "iwlwifi-sc-a0-hr-b0" 23 24 #define IWL_QU_B_HR_B_MODULE_FIRMWARE(api) \ 25 IWL_QU_B_HR_B_FW_PRE "-" __stringify(api) ".ucode" 26 #define IWL_QUZ_A_HR_B_MODULE_FIRMWARE(api) \ 27 IWL_QUZ_A_HR_B_FW_PRE "-" __stringify(api) ".ucode" 28 #define IWL_QU_C_HR_B_MODULE_FIRMWARE(api) \ 29 IWL_QU_C_HR_B_FW_PRE "-" __stringify(api) ".ucode" 30 #define IWL_SO_A_HR_B_MODULE_FIRMWARE(api) \ 31 IWL_SO_A_HR_B_FW_PRE "-" __stringify(api) ".ucode" 32 #define IWL_MA_A_HR_B_FW_MODULE_FIRMWARE(api) \ 33 IWL_MA_A_HR_B_FW_PRE "-" __stringify(api) ".ucode" 34 #define IWL_MA_B_HR_B_FW_MODULE_FIRMWARE(api) \ 35 IWL_MA_B_HR_B_FW_PRE "-" __stringify(api) ".ucode" 36 #define IWL_BZ_A_HR_B_MODULE_FIRMWARE(api) \ 37 IWL_BZ_A_HR_B_FW_PRE "-" __stringify(api) ".ucode" 38 #define IWL_SC_A_HR_A_FW_MODULE_FIRMWARE(api) \ 39 IWL_SC_A_HR_A_FW_PRE "-" __stringify(api) ".ucode" 40 #define IWL_SC_A_HR_B_FW_MODULE_FIRMWARE(api) \ 41 IWL_SC_A_HR_B_FW_PRE "-" __stringify(api) ".ucode" 42 43 /* NVM versions */ 44 #define IWL_HR_NVM_VERSION 0x0a1d 45 46 #define IWL_DEVICE_HR \ 47 .led_mode = IWL_LED_RF_STATE, \ 48 .non_shared_ant = ANT_B, \ 49 .vht_mu_mimo_supported = true, \ 50 .ht_params = { \ 51 .stbc = true, \ 52 .ldpc = true, \ 53 .ht40_bands = BIT(NL80211_BAND_2GHZ) | \ 54 BIT(NL80211_BAND_5GHZ), \ 55 }, \ 56 .num_rbds = IWL_NUM_RBDS_HE, \ 57 .nvm_ver = IWL_HR_NVM_VERSION, \ 58 .nvm_type = IWL_NVM_EXT, \ 59 .ucode_api_min = IWL_HR_UCODE_API_MIN, \ 60 .ucode_api_max = IWL_HR_UCODE_API_MAX 61 62 const struct iwl_rf_cfg iwl_rf_hr1 = { 63 IWL_DEVICE_HR, 64 .tx_with_siso_diversity = true, 65 }; 66 67 const struct iwl_rf_cfg iwl_rf_hr = { 68 IWL_DEVICE_HR, 69 }; 70 71 const struct iwl_rf_cfg iwl_rf_hr_80mhz = { 72 IWL_DEVICE_HR, 73 .bw_limit = 80, 74 }; 75 76 const char iwl_ax101_name[] = "Intel(R) Wi-Fi 6 AX101"; 77 const char iwl_ax200_name[] = "Intel(R) Wi-Fi 6 AX200 160MHz"; 78 const char iwl_ax201_name[] = "Intel(R) Wi-Fi 6 AX201 160MHz"; 79 const char iwl_ax203_name[] = "Intel(R) Wi-Fi 6 AX203"; 80 81 MODULE_FIRMWARE(IWL_QU_B_HR_B_MODULE_FIRMWARE(IWL_HR_UCODE_API_MAX)); 82 MODULE_FIRMWARE(IWL_QU_C_HR_B_MODULE_FIRMWARE(IWL_HR_UCODE_API_MAX)); 83 MODULE_FIRMWARE(IWL_QUZ_A_HR_B_MODULE_FIRMWARE(IWL_HR_UCODE_API_MAX)); 84 MODULE_FIRMWARE(IWL_SO_A_HR_B_MODULE_FIRMWARE(IWL_HR_UCODE_API_MAX)); 85 MODULE_FIRMWARE(IWL_MA_A_HR_B_FW_MODULE_FIRMWARE(IWL_HR_UCODE_API_MAX)); 86 MODULE_FIRMWARE(IWL_MA_B_HR_B_FW_MODULE_FIRMWARE(IWL_HR_UCODE_API_MAX)); 87 MODULE_FIRMWARE(IWL_BZ_A_HR_B_MODULE_FIRMWARE(IWL_HR_UCODE_API_MAX)); 88 MODULE_FIRMWARE(IWL_SC_A_HR_A_FW_MODULE_FIRMWARE(IWL_HR_UCODE_API_MAX)); 89 MODULE_FIRMWARE(IWL_SC_A_HR_B_FW_MODULE_FIRMWARE(IWL_HR_UCODE_API_MAX)); 90