/******************************************************************************
 *
 * 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 "third_party/iwlwifi/fw/file.h"
#include "third_party/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_TWO_GHZ) | BIT(WLAN_INFO_BAND_FIVE_GHZ),
};

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};
