/******************************************************************************
 *
 * Copyright(c) 2015-2017 Intel Deutschland GmbH
 * Copyright (C) 2018 Intel Corporation
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *  * Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *  * Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *  * Neither the name Intel Corporation nor the names of its
 *    contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *****************************************************************************/

#include "src/iwlwifi/fw/file.h"
#include "src/iwlwifi/iwl-config.h"

/* Highest firmware API version supported */
#define IWL9000_UCODE_API_MAX 44

/* Lowest firmware API version supported */
#define IWL9000_UCODE_API_MIN 30

/* NVM versions */
#define IWL9000_NVM_VERSION 0x0a1d

/* Memory offsets and lengths */
#define IWL9000_DCCM_OFFSET 0x800000
#define IWL9000_DCCM_LEN 0x18000
#define IWL9000_DCCM2_OFFSET 0x880000
#define IWL9000_DCCM2_LEN 0x8000
#define IWL9000_SMEM_OFFSET 0x400000
#define IWL9000_SMEM_LEN 0x68000

#define IWL9000_FW_PRE "iwlwifi-9000-pu-b0-jf-b0-"
#define IWL9260_FW_PRE "iwlwifi-9260-th-b0-jf-b0-"
#define IWL9000_MODULE_FIRMWARE(api) IWL9000_FW_PRE __stringify(api) ".ucode"
#define IWL9260_MODULE_FIRMWARE(api) IWL9260_FW_PRE __stringify(api) ".ucode"

static const struct iwl_base_params iwl9000_base_params = {
    .eeprom_size = OTP_LOW_IMAGE_SIZE_32K,
    .num_of_queues = 31,
    .max_tfd_queue_size = 256,
    .shadow_ram_support = true,
    .led_compensation = 57,
    .wd_timeout = IWL_LONG_WD_TIMEOUT,
    .max_event_log_size = 512,
    .shadow_reg_enable = true,
    .pcie_l1_allowed = true,
};

static const struct iwl_ht_params iwl9000_ht_params = {
    .stbc = true,
    .ldpc = true,
    .ht40_bands = BIT(WLAN_INFO_BAND_2GHZ) | BIT(WLAN_INFO_BAND_5GHZ),
};

static const struct iwl_tt_params iwl9000_tt_params = {
    .ct_kill_entry = 115,
    .ct_kill_exit = 93,
    .ct_kill_duration = 5,
    .dynamic_smps_entry = 111,
    .dynamic_smps_exit = 107,
    .tx_protection_entry = 112,
    .tx_protection_exit = 105,
    .tx_backoff =
        {
            {.temperature = 110, .backoff = 200},
            {.temperature = 111, .backoff = 600},
            {.temperature = 112, .backoff = 1200},
            {.temperature = 113, .backoff = 2000},
            {.temperature = 114, .backoff = 4000},
        },
    .support_ct_kill = true,
    .support_dynamic_smps = true,
    .support_tx_protection = true,
    .support_tx_backoff = true,
};

// TODO(fxbug.com/79135): add back .features flags.
#define IWL_DEVICE_9000                                                                       \
  .ucode_api_max = IWL9000_UCODE_API_MAX, .ucode_api_min = IWL9000_UCODE_API_MIN,             \
  .device_family = IWL_DEVICE_FAMILY_9000, .base_params = &iwl9000_base_params,               \
  .led_mode = IWL_LED_RF_STATE, .nvm_hw_section_num = 10, .non_shared_ant = ANT_B,            \
  .dccm_offset = IWL9000_DCCM_OFFSET, .dccm_len = IWL9000_DCCM_LEN,                           \
  .dccm2_offset = IWL9000_DCCM2_OFFSET, .dccm2_len = IWL9000_DCCM2_LEN,                       \
  .smem_offset = IWL9000_SMEM_OFFSET, .smem_len = IWL9000_SMEM_LEN, .features = 0,            \
  .thermal_params = &iwl9000_tt_params, .apmg_not_supported = true, .mq_rx_supported = true,  \
  .vht_mu_mimo_supported = true, .mac_addr_from_csr = true, .rf_id = true,                    \
  .nvm_type = IWL_NVM_EXT, .dbgc_supported = true, .min_umac_error_event_table = 0x800000,    \
  .csr = &iwl_csr_v1, .d3_debug_data_base_addr = 0x401000, .d3_debug_data_length = 92 * 1024, \
  .ht_params = &iwl9000_ht_params, .nvm_ver = IWL9000_NVM_VERSION,                            \
  .max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K

const struct iwl_cfg iwl9160_2ac_cfg = {
    .name = "Intel(R) Dual Band Wireless AC 9160",
    .fw_name_pre = IWL9260_FW_PRE,
    IWL_DEVICE_9000,
};

const struct iwl_cfg iwl9260_2ac_cfg = {
    .name = "Intel(R) Dual Band Wireless AC 9260",
    .fw_name_pre = IWL9260_FW_PRE,
    IWL_DEVICE_9000,
};

const struct iwl_cfg iwl9260_killer_2ac_cfg = {
    .name = "Killer (R) Wireless-AC 1550 Wireless Network Adapter (9260NGW)",
    .fw_name_pre = IWL9260_FW_PRE,
    IWL_DEVICE_9000,
};

const struct iwl_cfg iwl9270_2ac_cfg = {
    .name = "Intel(R) Dual Band Wireless AC 9270",
    .fw_name_pre = IWL9260_FW_PRE,
    IWL_DEVICE_9000,
};

const struct iwl_cfg iwl9460_2ac_cfg = {
    .name = "Intel(R) Dual Band Wireless AC 9460",
    .fw_name_pre = IWL9260_FW_PRE,
    IWL_DEVICE_9000,
};

const struct iwl_cfg iwl9460_2ac_cfg_soc = {
    .name = "Intel(R) Dual Band Wireless AC 9460",
    .fw_name_pre = IWL9000_FW_PRE,
    IWL_DEVICE_9000,
    .integrated = true,
    .soc_latency = 5000,
};

const struct iwl_cfg iwl9461_2ac_cfg_soc = {
    .name = "Intel(R) Dual Band Wireless AC 9461",
    .fw_name_pre = IWL9000_FW_PRE,
    IWL_DEVICE_9000,
    .integrated = true,
    .soc_latency = 5000,
};

const struct iwl_cfg iwl9462_2ac_cfg_soc = {
    .name = "Intel(R) Dual Band Wireless AC 9462",
    .fw_name_pre = IWL9000_FW_PRE,
    IWL_DEVICE_9000,
    .integrated = true,
    .soc_latency = 5000,
};

const struct iwl_cfg iwl9560_2ac_cfg = {
    .name = "Intel(R) Dual Band Wireless AC 9560",
    .fw_name_pre = IWL9260_FW_PRE,
    IWL_DEVICE_9000,
};

const struct iwl_cfg iwl9560_2ac_cfg_soc = {
    .name = "Intel(R) Dual Band Wireless AC 9560",
    .fw_name_pre = IWL9000_FW_PRE,
    IWL_DEVICE_9000,
    .integrated = true,
    .soc_latency = 5000,
};

const struct iwl_cfg iwl9560_killer_2ac_cfg_soc = {
    .name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)",
    .fw_name_pre = IWL9000_FW_PRE,
    IWL_DEVICE_9000,
    .integrated = true,
    .soc_latency = 5000,
};

const struct iwl_cfg iwl9560_killer_s_2ac_cfg_soc = {
    .name = "Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)",
    .fw_name_pre = IWL9000_FW_PRE,
    IWL_DEVICE_9000,
    .integrated = true,
    .soc_latency = 5000,
};

const struct iwl_cfg iwl9460_2ac_cfg_shared_clk = {.name = "Intel(R) Dual Band Wireless AC 9460",
                                                   .fw_name_pre = IWL9000_FW_PRE,
                                                   IWL_DEVICE_9000,
                                                   .integrated = true,
                                                   .soc_latency = 5000,
                                                   .extra_phy_cfg_flags = FW_PHY_CFG_SHARED_CLK};

const struct iwl_cfg iwl9461_2ac_cfg_shared_clk = {.name = "Intel(R) Dual Band Wireless AC 9461",
                                                   .fw_name_pre = IWL9000_FW_PRE,
                                                   IWL_DEVICE_9000,
                                                   .integrated = true,
                                                   .soc_latency = 5000,
                                                   .extra_phy_cfg_flags = FW_PHY_CFG_SHARED_CLK};

const struct iwl_cfg iwl9462_2ac_cfg_shared_clk = {.name = "Intel(R) Dual Band Wireless AC 9462",
                                                   .fw_name_pre = IWL9000_FW_PRE,
                                                   IWL_DEVICE_9000,
                                                   .integrated = true,
                                                   .soc_latency = 5000,
                                                   .extra_phy_cfg_flags = FW_PHY_CFG_SHARED_CLK};

const struct iwl_cfg iwl9560_2ac_cfg_shared_clk = {.name = "Intel(R) Dual Band Wireless AC 9560",
                                                   .fw_name_pre = IWL9000_FW_PRE,
                                                   IWL_DEVICE_9000,
                                                   .integrated = true,
                                                   .soc_latency = 5000,
                                                   .extra_phy_cfg_flags = FW_PHY_CFG_SHARED_CLK};

const struct iwl_cfg iwl9560_killer_2ac_cfg_shared_clk = {
    .name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)",
    .fw_name_pre = IWL9000_FW_PRE,
    IWL_DEVICE_9000,
    .integrated = true,
    .soc_latency = 5000,
    .extra_phy_cfg_flags = FW_PHY_CFG_SHARED_CLK};

const struct iwl_cfg iwl9560_killer_s_2ac_cfg_shared_clk = {
    .name = "Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)",
    .fw_name_pre = IWL9000_FW_PRE,
    IWL_DEVICE_9000,
    .integrated = true,
    .soc_latency = 5000,
    .extra_phy_cfg_flags = FW_PHY_CFG_SHARED_CLK};
