IWL_UCODE_TLV_CAPA_DYNAMIC_QUOTA                = (__force iwl_ucode_tlv_capa_t)44,
        IWL_UCODE_TLV_CAPA_COEX_SCHEMA_2                = (__force iwl_ucode_tlv_capa_t)45,
        IWL_UCODE_TLV_CAPA_CHANNEL_SWITCH_CMD           = (__force iwl_ucode_tlv_capa_t)46,
-       IWL_UCODE_TLV_CAPA_ULTRA_HB_CHANNELS            = (__force iwl_ucode_tlv_capa_t)48,
        IWL_UCODE_TLV_CAPA_FTM_CALIBRATED               = (__force iwl_ucode_tlv_capa_t)47,
+       IWL_UCODE_TLV_CAPA_ULTRA_HB_CHANNELS            = (__force iwl_ucode_tlv_capa_t)48,
        IWL_UCODE_TLV_CAPA_CS_MODIFY                    = (__force iwl_ucode_tlv_capa_t)49,
+       IWL_UCODE_TLV_CAPA_SET_LTR_GEN2                 = (__force iwl_ucode_tlv_capa_t)50,
 
        /* set 2 */
        IWL_UCODE_TLV_CAPA_EXTENDED_DTS_MEASURE         = (__force iwl_ucode_tlv_capa_t)64,
 
        return simple_read_from_buffer(user_buf, count, ppos, buf, pos);
 }
 
+static ssize_t
+iwl_dbgfs_ltr_config_write(struct iwl_mvm *mvm,
+                          char *buf, size_t count, loff_t *ppos)
+{
+       int ret;
+       struct iwl_ltr_config_cmd ltr_config = {0};
+
+       if (!iwl_mvm_firmware_running(mvm))
+               return -EIO;
+
+       if (sscanf(buf, "%x,%x,%x,%x,%x,%x,%x",
+                  <r_config.flags,
+                  <r_config.static_long,
+                  <r_config.static_short,
+                  <r_config.ltr_cfg_values[0],
+                  <r_config.ltr_cfg_values[1],
+                  <r_config.ltr_cfg_values[2],
+                  <r_config.ltr_cfg_values[3]) != 7) {
+               return -EINVAL;
+       }
+
+       mutex_lock(&mvm->mutex);
+       ret = iwl_mvm_send_cmd_pdu(mvm, LTR_CONFIG, 0, sizeof(ltr_config),
+                                  <r_config);
+       mutex_unlock(&mvm->mutex);
+
+       if (ret)
+               IWL_ERR(mvm, "failed to send ltr configuration cmd\n");
+
+       return ret ?: count;
+}
+
 MVM_DEBUGFS_READ_WRITE_FILE_OPS(prph_reg, 64);
 
 /* Device wide debugfs entries */
 
 MVM_DEBUGFS_READ_WRITE_FILE_OPS(he_sniffer_params, 32);
 
+MVM_DEBUGFS_WRITE_FILE_OPS(ltr_config, 512);
+
 static ssize_t iwl_dbgfs_mem_read(struct file *file, char __user *user_buf,
                                  size_t count, loff_t *ppos)
 {
 #endif
        MVM_DEBUGFS_ADD_FILE(he_sniffer_params, mvm->debugfs_dir, 0600);
 
+       if (fw_has_capa(&mvm->fw->ucode_capa, IWL_UCODE_TLV_CAPA_SET_LTR_GEN2))
+               MVM_DEBUGFS_ADD_FILE(ltr_config, mvm->debugfs_dir, 0200);
+
        debugfs_create_bool("enable_scan_iteration_notif", 0600,
                            mvm->debugfs_dir, &mvm->scan_iter_notif_enabled);
        debugfs_create_bool("drop_bcn_ap_mode", 0600, mvm->debugfs_dir,