|
@@ -44,6 +44,7 @@
|
|
|
#define QCA6490_PATH_PREFIX "qca6490/"
|
|
|
#define KIWI_PATH_PREFIX "kiwi/"
|
|
|
#define MANGO_PATH_PREFIX "mango/"
|
|
|
+#define PEACH_PATH_PREFIX "peach/"
|
|
|
#define DEFAULT_PHY_M3_FILE_NAME "m3.bin"
|
|
|
#define DEFAULT_PHY_UCODE_FILE_NAME "phy_ucode.elf"
|
|
|
#define PHY_UCODE_V2_FILE_NAME "phy_ucode20.elf"
|
|
@@ -1159,6 +1160,7 @@ static void cnss_pci_soc_scratch_reg_dump(struct cnss_pci_data *pci_priv)
|
|
|
case QCA6490_DEVICE_ID:
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
break;
|
|
|
default:
|
|
|
return;
|
|
@@ -1277,6 +1279,7 @@ int cnss_pci_recover_link_down(struct cnss_pci_data *pci_priv)
|
|
|
case QCA6490_DEVICE_ID:
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
break;
|
|
|
default:
|
|
|
return -EOPNOTSUPP;
|
|
@@ -1517,6 +1520,12 @@ static void cnss_pci_dump_bl_sram_mem(struct cnss_pci_data *pci_priv)
|
|
|
pbl_log_max_size = MANGO_DEBUG_PBL_LOG_SRAM_MAX_SIZE;
|
|
|
sbl_log_max_size = MANGO_DEBUG_SBL_LOG_SRAM_MAX_SIZE;
|
|
|
break;
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
+ pbl_bootstrap_status_reg = PEACH_PBL_BOOTSTRAP_STATUS;
|
|
|
+ pbl_log_sram_start = PEACH_DEBUG_PBL_LOG_SRAM_START;
|
|
|
+ pbl_log_max_size = PEACH_DEBUG_PBL_LOG_SRAM_MAX_SIZE;
|
|
|
+ sbl_log_max_size = PEACH_DEBUG_SBL_LOG_SRAM_MAX_SIZE;
|
|
|
+ break;
|
|
|
default:
|
|
|
return;
|
|
|
}
|
|
@@ -2085,6 +2094,7 @@ static int cnss_pci_get_device_timestamp(struct cnss_pci_data *pci_priv,
|
|
|
switch (pci_priv->device_id) {
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
cnss_pci_reg_read(pci_priv, PCIE_MHI_TIME_LOW, &low);
|
|
|
cnss_pci_reg_read(pci_priv, PCIE_MHI_TIME_HIGH, &high);
|
|
|
break;
|
|
@@ -2106,6 +2116,7 @@ static void cnss_pci_enable_time_sync_counter(struct cnss_pci_data *pci_priv)
|
|
|
switch (pci_priv->device_id) {
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
return;
|
|
|
default:
|
|
|
break;
|
|
@@ -2120,6 +2131,7 @@ static void cnss_pci_clear_time_sync_counter(struct cnss_pci_data *pci_priv)
|
|
|
switch (pci_priv->device_id) {
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
return;
|
|
|
default:
|
|
|
break;
|
|
@@ -2139,6 +2151,7 @@ static void cnss_pci_time_sync_reg_update(struct cnss_pci_data *pci_priv,
|
|
|
switch (pci_priv->device_id) {
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
/* Use the next two shadow registers after host's usage */
|
|
|
time_reg_low = PCIE_SHADOW_REG_VALUE_0 +
|
|
|
(pci_priv->plat_priv->num_shadow_regs_v3 *
|
|
@@ -2256,6 +2269,7 @@ static int cnss_pci_start_time_sync_update(struct cnss_pci_data *pci_priv)
|
|
|
case QCA6490_DEVICE_ID:
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
break;
|
|
|
default:
|
|
|
return -EOPNOTSUPP;
|
|
@@ -2278,6 +2292,7 @@ static void cnss_pci_stop_time_sync_update(struct cnss_pci_data *pci_priv)
|
|
|
case QCA6490_DEVICE_ID:
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
break;
|
|
|
default:
|
|
|
return;
|
|
@@ -2914,6 +2929,7 @@ int cnss_pci_dev_powerup(struct cnss_pci_data *pci_priv)
|
|
|
case QCA6490_DEVICE_ID:
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
ret = cnss_qca6290_powerup(pci_priv);
|
|
|
break;
|
|
|
default:
|
|
@@ -2943,6 +2959,7 @@ int cnss_pci_dev_shutdown(struct cnss_pci_data *pci_priv)
|
|
|
case QCA6490_DEVICE_ID:
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
ret = cnss_qca6290_shutdown(pci_priv);
|
|
|
break;
|
|
|
default:
|
|
@@ -2972,6 +2989,7 @@ int cnss_pci_dev_crash_shutdown(struct cnss_pci_data *pci_priv)
|
|
|
case QCA6490_DEVICE_ID:
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
cnss_qca6290_crash_shutdown(pci_priv);
|
|
|
break;
|
|
|
default:
|
|
@@ -3001,6 +3019,7 @@ int cnss_pci_dev_ramdump(struct cnss_pci_data *pci_priv)
|
|
|
case QCA6490_DEVICE_ID:
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
ret = cnss_qca6290_ramdump(pci_priv);
|
|
|
break;
|
|
|
default:
|
|
@@ -3897,6 +3916,7 @@ int cnss_pci_force_wake_request_sync(struct device *dev, int timeout_us)
|
|
|
case QCA6490_DEVICE_ID:
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
break;
|
|
|
default:
|
|
|
return 0;
|
|
@@ -3939,6 +3959,7 @@ int cnss_pci_force_wake_request(struct device *dev)
|
|
|
case QCA6490_DEVICE_ID:
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
break;
|
|
|
default:
|
|
|
return 0;
|
|
@@ -3975,6 +3996,7 @@ int cnss_pci_is_device_awake(struct device *dev)
|
|
|
case QCA6490_DEVICE_ID:
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
break;
|
|
|
default:
|
|
|
return 0;
|
|
@@ -4003,6 +4025,7 @@ int cnss_pci_force_wake_release(struct device *dev)
|
|
|
case QCA6490_DEVICE_ID:
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
break;
|
|
|
default:
|
|
|
return 0;
|
|
@@ -4295,6 +4318,7 @@ int cnss_pci_load_m3(struct cnss_pci_data *pci_priv)
|
|
|
break;
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
switch (plat_priv->device_version.major_version) {
|
|
|
case FW_V2_NUMBER:
|
|
|
phy_filename = PHY_UCODE_V2_FILE_NAME;
|
|
@@ -4814,6 +4838,7 @@ static int cnss_pci_enable_bus(struct cnss_pci_data *pci_priv)
|
|
|
case QCA6490_DEVICE_ID:
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
pci_priv->dma_bit_mask = PCI_DMA_MASK_36_BIT;
|
|
|
break;
|
|
|
default:
|
|
@@ -5148,6 +5173,7 @@ static void cnss_pci_send_hang_event(struct cnss_pci_data *pci_priv)
|
|
|
break;
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
offset = plat_priv->hang_data_addr_offset;
|
|
|
length = plat_priv->hang_event_data_len;
|
|
|
break;
|
|
@@ -5462,6 +5488,10 @@ void cnss_pci_add_fw_prefix_name(struct cnss_pci_data *pci_priv,
|
|
|
scnprintf(prefix_name, MAX_FIRMWARE_NAME_LEN,
|
|
|
MANGO_PATH_PREFIX "%s", name);
|
|
|
break;
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
+ scnprintf(prefix_name, MAX_FIRMWARE_NAME_LEN,
|
|
|
+ PEACH_PATH_PREFIX "%s", name);
|
|
|
+ break;
|
|
|
default:
|
|
|
scnprintf(prefix_name, MAX_FIRMWARE_NAME_LEN, "%s", name);
|
|
|
break;
|
|
@@ -5509,6 +5539,7 @@ static int cnss_pci_update_fw_name(struct cnss_pci_data *pci_priv)
|
|
|
break;
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
switch (plat_priv->device_version.major_version) {
|
|
|
case FW_V2_NUMBER:
|
|
|
/*
|
|
@@ -6293,6 +6324,7 @@ static int cnss_pci_probe(struct pci_dev *pci_dev,
|
|
|
case QCA6490_DEVICE_ID:
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
cnss_pci_set_wlaon_pwr_ctrl(pci_priv, false, false, false);
|
|
|
timer_setup(&pci_priv->dev_rddm_timer,
|
|
|
cnss_dev_rddm_timeout_hdlr, 0);
|
|
@@ -6357,6 +6389,7 @@ static void cnss_pci_remove(struct pci_dev *pci_dev)
|
|
|
case QCA6490_DEVICE_ID:
|
|
|
case KIWI_DEVICE_ID:
|
|
|
case MANGO_DEVICE_ID:
|
|
|
+ case PEACH_DEVICE_ID:
|
|
|
cnss_pci_wake_gpio_deinit(pci_priv);
|
|
|
del_timer(&pci_priv->boot_debug_timer);
|
|
|
del_timer(&pci_priv->dev_rddm_timer);
|
|
@@ -6386,6 +6419,7 @@ static const struct pci_device_id cnss_pci_id_table[] = {
|
|
|
{ QCA6490_VENDOR_ID, QCA6490_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID },
|
|
|
{ KIWI_VENDOR_ID, KIWI_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID },
|
|
|
{ MANGO_VENDOR_ID, MANGO_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID },
|
|
|
+ { PEACH_VENDOR_ID, PEACH_DEVICE_ID, PCI_ANY_ID, PCI_ANY_ID },
|
|
|
{ 0 }
|
|
|
};
|
|
|
MODULE_DEVICE_TABLE(pci, cnss_pci_id_table);
|