#define IWL_BNJ_B_HR_B_FW_PRE          "iwlwifi-BzBnj-b0-hr-b0-"
 #define IWL_BNJ_B_FM_B_FW_PRE          "iwlwifi-BzBnj-b0-fm-b0-"
 
+#define IWL_SC_A_FM_B_FW_PRE           "iwlwifi-sc-a0-fm-b0-"
+#define IWL_SC_A_FM_C_FW_PRE           "iwlwifi-sc-a0-fm-c0-"
+#define IWL_SC_A_HR_A_FW_PRE           "iwlwifi-sc-a0-hr-b0-"
+#define IWL_SC_A_HR_B_FW_PRE           "iwlwifi-sc-a0-hr-b0-"
+#define IWL_SC_A_GF_A_FW_PRE           "iwlwifi-sc-a0-gf-a0-"
+#define IWL_SC_A_GF4_A_FW_PRE          "iwlwifi-sc-a0-gf4-a0-"
+#define IWL_SC_A_WH_A_FW_PRE           "iwlwifi-sc-a0-wh-a0-"
 
 #define IWL_QU_B_HR_B_MODULE_FIRMWARE(api) \
        IWL_QU_B_HR_B_FW_PRE __stringify(api) ".ucode"
        IWL_BNJ_B_HR_B_FW_PRE __stringify(api) ".ucode"
 #define IWL_BNJ_B_FM_B_MODULE_FIRMWARE(api) \
        IWL_BNJ_B_FM_B_FW_PRE __stringify(api) ".ucode"
+#define IWL_SC_A_FM_B_FW_MODULE_FIRMWARE(api) \
+       IWL_SC_A_FM_B_FW_PRE __stringify(api) ".ucode"
+#define IWL_SC_A_FM_C_FW_MODULE_FIRMWARE(api) \
+       IWL_SC_A_FM_C_FW_PRE __stringify(api) ".ucode"
+#define IWL_SC_A_HR_A_FW_MODULE_FIRMWARE(api) \
+       IWL_SC_A_HR_A_FW_PRE __stringify(api) ".ucode"
+#define IWL_SC_A_HR_B_FW_MODULE_FIRMWARE(api) \
+       IWL_SC_A_HR_B_FW_PRE __stringify(api) ".ucode"
+#define IWL_SC_A_GF_A_FW_MODULE_FIRMWARE(api) \
+       IWL_SC_A_GF_A_FW_PRE __stringify(api) ".ucode"
+#define IWL_SC_A_GF4_A_FW_MODULE_FIRMWARE(api) \
+       IWL_SC_A_GF4_A_FW_PRE __stringify(api) ".ucode"
+#define IWL_SC_A_WH_A_FW_MODULE_FIRMWARE(api) \
+       IWL_SC_A_WH_A_FW_PRE __stringify(api) ".ucode"
 
 static const struct iwl_base_params iwl_22000_base_params = {
        .eeprom_size = OTP_LOW_IMAGE_SIZE_32K,
        IWL_DEVICE_BZ_COMMON,                                           \
        .ht_params = &iwl_gl_a_ht_params
 
+#define IWL_DEVICE_SC                                                  \
+       IWL_DEVICE_BZ_COMMON,                                           \
+       .ht_params = &iwl_22000_ht_params
+
 const struct iwl_cfg_trans_params iwl_qnj_trans_cfg = {
        .mq_rx_supported = true,
        .use_tfh = true,
 const char iwl_ax231_name[] = "Intel(R) Wi-Fi 6E AX231 160MHz";
 const char iwl_ax411_name[] = "Intel(R) Wi-Fi 6E AX411 160MHz";
 const char iwl_bz_name[] = "Intel(R) TBD Bz device";
+const char iwl_sc_name[] = "Intel(R) TBD Sc device";
 
 const char iwl_ax200_killer_1650w_name[] =
        "Killer(R) Wi-Fi 6 AX1650w 160MHz Wireless Network Adapter (200D2W)";
        .num_rbds = IWL_NUM_RBDS_AX210_HE,
 };
 
+const struct iwl_cfg iwl_cfg_sc_a0_fm_b0 = {
+       .fw_name_pre = IWL_SC_A_FM_B_FW_PRE,
+       .uhb_supported = true,
+       IWL_DEVICE_SC,
+       .features = IWL_TX_CSUM_NETIF_FLAGS_BZ | NETIF_F_RXCSUM,
+       .num_rbds = IWL_NUM_RBDS_AX210_HE,
+};
+
+const struct iwl_cfg iwl_cfg_sc_a0_fm_c0 = {
+       .fw_name_pre = IWL_SC_A_FM_C_FW_PRE,
+       .uhb_supported = true,
+       IWL_DEVICE_SC,
+       .features = IWL_TX_CSUM_NETIF_FLAGS_BZ | NETIF_F_RXCSUM,
+       .num_rbds = IWL_NUM_RBDS_AX210_HE,
+};
+
+const struct iwl_cfg iwl_cfg_sc_a0_hr_a0 = {
+       .fw_name_pre = IWL_SC_A_HR_A_FW_PRE,
+       .uhb_supported = true,
+       IWL_DEVICE_SC,
+       .features = IWL_TX_CSUM_NETIF_FLAGS_BZ | NETIF_F_RXCSUM,
+       .num_rbds = IWL_NUM_RBDS_AX210_HE,
+};
+
+const struct iwl_cfg iwl_cfg_sc_a0_hr_b0 = {
+       .fw_name_pre = IWL_SC_A_HR_B_FW_PRE,
+       .uhb_supported = true,
+       IWL_DEVICE_SC,
+       .features = IWL_TX_CSUM_NETIF_FLAGS_BZ | NETIF_F_RXCSUM,
+       .num_rbds = IWL_NUM_RBDS_AX210_HE,
+};
+
+const struct iwl_cfg iwl_cfg_sc_a0_gf_a0 = {
+       .fw_name_pre = IWL_SC_A_GF_A_FW_PRE,
+       .uhb_supported = true,
+       IWL_DEVICE_SC,
+       .features = IWL_TX_CSUM_NETIF_FLAGS_BZ | NETIF_F_RXCSUM,
+       .num_rbds = IWL_NUM_RBDS_AX210_HE,
+};
+
+const struct iwl_cfg iwl_cfg_sc_a0_gf4_a0 = {
+       .fw_name_pre = IWL_SC_A_GF4_A_FW_PRE,
+       .uhb_supported = true,
+       IWL_DEVICE_SC,
+       .features = IWL_TX_CSUM_NETIF_FLAGS_BZ | NETIF_F_RXCSUM,
+       .num_rbds = IWL_NUM_RBDS_AX210_HE,
+};
+
+const struct iwl_cfg iwl_cfg_sc_a0_wh_a0 = {
+       .fw_name_pre = IWL_SC_A_WH_A_FW_PRE,
+       .uhb_supported = true,
+       IWL_DEVICE_SC,
+       .features = IWL_TX_CSUM_NETIF_FLAGS_BZ | NETIF_F_RXCSUM,
+       .num_rbds = IWL_NUM_RBDS_AX210_HE,
+};
+
 MODULE_FIRMWARE(IWL_QU_B_HR_B_MODULE_FIRMWARE(IWL_22500_UCODE_API_MAX));
 MODULE_FIRMWARE(IWL_QNJ_B_HR_B_MODULE_FIRMWARE(IWL_22500_UCODE_API_MAX));
 MODULE_FIRMWARE(IWL_QU_C_HR_B_MODULE_FIRMWARE(IWL_22500_UCODE_API_MAX));
 MODULE_FIRMWARE(IWL_GL_B_FM_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
 MODULE_FIRMWARE(IWL_GL_C_FM_C_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
 MODULE_FIRMWARE(IWL_BNJ_B_FM_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
+MODULE_FIRMWARE(IWL_SC_A_FM_B_FW_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
+MODULE_FIRMWARE(IWL_SC_A_FM_C_FW_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
+MODULE_FIRMWARE(IWL_SC_A_HR_A_FW_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
+MODULE_FIRMWARE(IWL_SC_A_HR_B_FW_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
+MODULE_FIRMWARE(IWL_SC_A_GF_A_FW_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
+MODULE_FIRMWARE(IWL_SC_A_GF4_A_FW_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
+MODULE_FIRMWARE(IWL_SC_A_WH_A_FW_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
 
 /*
  * Copyright (C) 2005-2014, 2018-2021 Intel Corporation
  * Copyright (C) 2016-2017 Intel Deutschland GmbH
+ * Copyright (C) 2018-2023 Intel Corporation
  */
 #ifndef __IWL_CONFIG_H__
 #define __IWL_CONFIG_H__
 #define IWL_CFG_MAC_TYPE_MA            0x44
 #define IWL_CFG_MAC_TYPE_BZ            0x46
 #define IWL_CFG_MAC_TYPE_GL            0x47
+#define IWL_CFG_MAC_TYPE_SC            0x48
 
 #define IWL_CFG_RF_TYPE_TH             0x105
 #define IWL_CFG_RF_TYPE_TH1            0x108
 #define IWL_CFG_RF_TYPE_MR             0x110
 #define IWL_CFG_RF_TYPE_MS             0x111
 #define IWL_CFG_RF_TYPE_FM             0x112
+#define IWL_CFG_RF_TYPE_WH             0x113
 
 #define IWL_CFG_RF_ID_TH               0x1
 #define IWL_CFG_RF_ID_TH1              0x1
 extern const char iwl_ax231_name[];
 extern const char iwl_ax411_name[];
 extern const char iwl_bz_name[];
+extern const char iwl_sc_name[];
 #if IS_ENABLED(CONFIG_IWLDVM)
 extern const struct iwl_cfg iwl5300_agn_cfg;
 extern const struct iwl_cfg iwl5100_agn_cfg;
 extern const struct iwl_cfg iwl_cfg_bnj_b0_hr_b0;
 extern const struct iwl_cfg iwl_cfg_bnj_b0_fm_b0;
 extern const struct iwl_cfg iwl_cfg_bnj_b0_fm4_b0;
+extern const struct iwl_cfg iwl_cfg_sc_a0_fm_b0;
+extern const struct iwl_cfg iwl_cfg_sc_a0_fm_c0;
+extern const struct iwl_cfg iwl_cfg_sc_a0_hr_a0;
+extern const struct iwl_cfg iwl_cfg_sc_a0_hr_b0;
+extern const struct iwl_cfg iwl_cfg_sc_a0_gf_a0;
+extern const struct iwl_cfg iwl_cfg_sc_a0_gf4_a0;
+extern const struct iwl_cfg iwl_cfg_sc_a0_wh_a0;
 #endif /* CONFIG_IWLMVM */
 
 #endif /* __IWL_CONFIG_H__ */
 
                      IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY,
                      IWL_CFG_RF_TYPE_MS, IWL_CFG_ANY, IWL_CFG_ANY,
                      IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,
-                     iwl_cfg_snj_a0_ms_a0, iwl_ax204_name)
+                     iwl_cfg_snj_a0_ms_a0, iwl_ax204_name),
 
+/* Sc */
+       _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
+                     IWL_CFG_MAC_TYPE_SC, SILICON_A_STEP,
+                     IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_B_STEP,
+                     IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,
+                     iwl_cfg_sc_a0_fm_b0, iwl_sc_name),
+       _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
+                     IWL_CFG_MAC_TYPE_SC, SILICON_A_STEP,
+                     IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_C_STEP,
+                     IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,
+                     iwl_cfg_sc_a0_fm_c0, iwl_sc_name),
+       _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
+                     IWL_CFG_MAC_TYPE_SC, SILICON_A_STEP,
+                     IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY,
+                     IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,
+                     iwl_cfg_sc_a0_hr_a0, iwl_sc_name),
+       _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
+                     IWL_CFG_MAC_TYPE_SC, SILICON_A_STEP,
+                     IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY,
+                     IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,
+                     iwl_cfg_sc_a0_hr_b0, iwl_sc_name),
+       _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
+                     IWL_CFG_MAC_TYPE_SC, SILICON_A_STEP,
+                     IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY,
+                     IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,
+                     iwl_cfg_sc_a0_gf_a0, iwl_sc_name),
+       _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
+                     IWL_CFG_MAC_TYPE_SC, SILICON_A_STEP,
+                     IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY,
+                     IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_ANY,
+                     iwl_cfg_sc_a0_gf4_a0, iwl_sc_name),
+       _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,
+                     IWL_CFG_MAC_TYPE_SC, SILICON_A_STEP,
+                     IWL_CFG_RF_TYPE_WH, IWL_CFG_ANY, IWL_CFG_ANY,
+                     IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,
+                     iwl_cfg_sc_a0_wh_a0, iwl_sc_name),
 #endif /* CONFIG_IWLMVM */
 };