1a7202704SKiran Venkatappa // SPDX-License-Identifier: BSD-3-Clause-Clear 2a7202704SKiran Venkatappa /* 3a7202704SKiran Venkatappa * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. 4a7202704SKiran Venkatappa * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. 5a7202704SKiran Venkatappa */ 6a7202704SKiran Venkatappa 7a7202704SKiran Venkatappa #include "../mhi.h" 8a7202704SKiran Venkatappa #include "mhi.h" 9a7202704SKiran Venkatappa 10*bce3b73dSKiran Venkatappa static const struct mhi_channel_config ath12k_wifi7_mhi_channels_qcn9274[] = { 11a7202704SKiran Venkatappa { 12a7202704SKiran Venkatappa .num = 20, 13a7202704SKiran Venkatappa .name = "IPCR", 14a7202704SKiran Venkatappa .num_elements = 32, 15a7202704SKiran Venkatappa .event_ring = 1, 16a7202704SKiran Venkatappa .dir = DMA_TO_DEVICE, 17a7202704SKiran Venkatappa .ee_mask = 0x4, 18a7202704SKiran Venkatappa .pollcfg = 0, 19a7202704SKiran Venkatappa .doorbell = MHI_DB_BRST_DISABLE, 20a7202704SKiran Venkatappa .lpm_notify = false, 21a7202704SKiran Venkatappa .offload_channel = false, 22a7202704SKiran Venkatappa .doorbell_mode_switch = false, 23a7202704SKiran Venkatappa }, 24a7202704SKiran Venkatappa { 25a7202704SKiran Venkatappa .num = 21, 26a7202704SKiran Venkatappa .name = "IPCR", 27a7202704SKiran Venkatappa .num_elements = 32, 28a7202704SKiran Venkatappa .event_ring = 1, 29a7202704SKiran Venkatappa .dir = DMA_FROM_DEVICE, 30a7202704SKiran Venkatappa .ee_mask = 0x4, 31a7202704SKiran Venkatappa .pollcfg = 0, 32a7202704SKiran Venkatappa .doorbell = MHI_DB_BRST_DISABLE, 33a7202704SKiran Venkatappa .lpm_notify = false, 34a7202704SKiran Venkatappa .offload_channel = false, 35a7202704SKiran Venkatappa .doorbell_mode_switch = false, 36a7202704SKiran Venkatappa }, 37a7202704SKiran Venkatappa }; 38a7202704SKiran Venkatappa 39*bce3b73dSKiran Venkatappa static struct mhi_event_config ath12k_wifi7_mhi_events_qcn9274[] = { 40a7202704SKiran Venkatappa { 41a7202704SKiran Venkatappa .num_elements = 32, 42a7202704SKiran Venkatappa .irq_moderation_ms = 0, 43a7202704SKiran Venkatappa .irq = 1, 44a7202704SKiran Venkatappa .data_type = MHI_ER_CTRL, 45a7202704SKiran Venkatappa .mode = MHI_DB_BRST_DISABLE, 46a7202704SKiran Venkatappa .hardware_event = false, 47a7202704SKiran Venkatappa .client_managed = false, 48a7202704SKiran Venkatappa .offload_channel = false, 49a7202704SKiran Venkatappa }, 50a7202704SKiran Venkatappa { 51a7202704SKiran Venkatappa .num_elements = 256, 52a7202704SKiran Venkatappa .irq_moderation_ms = 1, 53a7202704SKiran Venkatappa .irq = 2, 54a7202704SKiran Venkatappa .mode = MHI_DB_BRST_DISABLE, 55a7202704SKiran Venkatappa .priority = 1, 56a7202704SKiran Venkatappa .hardware_event = false, 57a7202704SKiran Venkatappa .client_managed = false, 58a7202704SKiran Venkatappa .offload_channel = false, 59a7202704SKiran Venkatappa }, 60a7202704SKiran Venkatappa }; 61a7202704SKiran Venkatappa 62*bce3b73dSKiran Venkatappa const struct mhi_controller_config ath12k_wifi7_mhi_config_qcn9274 = { 63a7202704SKiran Venkatappa .max_channels = 30, 64a7202704SKiran Venkatappa .timeout_ms = 10000, 65a7202704SKiran Venkatappa .use_bounce_buf = false, 66a7202704SKiran Venkatappa .buf_len = 0, 67*bce3b73dSKiran Venkatappa .num_channels = ARRAY_SIZE(ath12k_wifi7_mhi_channels_qcn9274), 68*bce3b73dSKiran Venkatappa .ch_cfg = ath12k_wifi7_mhi_channels_qcn9274, 69*bce3b73dSKiran Venkatappa .num_events = ARRAY_SIZE(ath12k_wifi7_mhi_events_qcn9274), 70*bce3b73dSKiran Venkatappa .event_cfg = ath12k_wifi7_mhi_events_qcn9274, 71a7202704SKiran Venkatappa }; 72a7202704SKiran Venkatappa 73*bce3b73dSKiran Venkatappa static const struct mhi_channel_config ath12k_wifi7_mhi_channels_wcn7850[] = { 74a7202704SKiran Venkatappa { 75a7202704SKiran Venkatappa .num = 20, 76a7202704SKiran Venkatappa .name = "IPCR", 77a7202704SKiran Venkatappa .num_elements = 64, 78a7202704SKiran Venkatappa .event_ring = 1, 79a7202704SKiran Venkatappa .dir = DMA_TO_DEVICE, 80a7202704SKiran Venkatappa .ee_mask = 0x4, 81a7202704SKiran Venkatappa .pollcfg = 0, 82a7202704SKiran Venkatappa .doorbell = MHI_DB_BRST_DISABLE, 83a7202704SKiran Venkatappa .lpm_notify = false, 84a7202704SKiran Venkatappa .offload_channel = false, 85a7202704SKiran Venkatappa .doorbell_mode_switch = false, 86a7202704SKiran Venkatappa }, 87a7202704SKiran Venkatappa { 88a7202704SKiran Venkatappa .num = 21, 89a7202704SKiran Venkatappa .name = "IPCR", 90a7202704SKiran Venkatappa .num_elements = 64, 91a7202704SKiran Venkatappa .event_ring = 1, 92a7202704SKiran Venkatappa .dir = DMA_FROM_DEVICE, 93a7202704SKiran Venkatappa .ee_mask = 0x4, 94a7202704SKiran Venkatappa .pollcfg = 0, 95a7202704SKiran Venkatappa .doorbell = MHI_DB_BRST_DISABLE, 96a7202704SKiran Venkatappa .lpm_notify = false, 97a7202704SKiran Venkatappa .offload_channel = false, 98a7202704SKiran Venkatappa .doorbell_mode_switch = false, 99a7202704SKiran Venkatappa }, 100a7202704SKiran Venkatappa }; 101a7202704SKiran Venkatappa 102*bce3b73dSKiran Venkatappa static struct mhi_event_config ath12k_wifi7_mhi_events_wcn7850[] = { 103a7202704SKiran Venkatappa { 104a7202704SKiran Venkatappa .num_elements = 32, 105a7202704SKiran Venkatappa .irq_moderation_ms = 0, 106a7202704SKiran Venkatappa .irq = 1, 107a7202704SKiran Venkatappa .mode = MHI_DB_BRST_DISABLE, 108a7202704SKiran Venkatappa .data_type = MHI_ER_CTRL, 109a7202704SKiran Venkatappa .hardware_event = false, 110a7202704SKiran Venkatappa .client_managed = false, 111a7202704SKiran Venkatappa .offload_channel = false, 112a7202704SKiran Venkatappa }, 113a7202704SKiran Venkatappa { 114a7202704SKiran Venkatappa .num_elements = 256, 115a7202704SKiran Venkatappa .irq_moderation_ms = 1, 116a7202704SKiran Venkatappa .irq = 2, 117a7202704SKiran Venkatappa .mode = MHI_DB_BRST_DISABLE, 118a7202704SKiran Venkatappa .priority = 1, 119a7202704SKiran Venkatappa .hardware_event = false, 120a7202704SKiran Venkatappa .client_managed = false, 121a7202704SKiran Venkatappa .offload_channel = false, 122a7202704SKiran Venkatappa }, 123a7202704SKiran Venkatappa }; 124a7202704SKiran Venkatappa 125*bce3b73dSKiran Venkatappa const struct mhi_controller_config ath12k_wifi7_mhi_config_wcn7850 = { 126a7202704SKiran Venkatappa .max_channels = 128, 127a7202704SKiran Venkatappa .timeout_ms = 2000, 128a7202704SKiran Venkatappa .use_bounce_buf = false, 129a7202704SKiran Venkatappa .buf_len = 8192, 130*bce3b73dSKiran Venkatappa .num_channels = ARRAY_SIZE(ath12k_wifi7_mhi_channels_wcn7850), 131*bce3b73dSKiran Venkatappa .ch_cfg = ath12k_wifi7_mhi_channels_wcn7850, 132*bce3b73dSKiran Venkatappa .num_events = ARRAY_SIZE(ath12k_wifi7_mhi_events_wcn7850), 133*bce3b73dSKiran Venkatappa .event_cfg = ath12k_wifi7_mhi_events_wcn7850, 134a7202704SKiran Venkatappa }; 135