// SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */ #include "../mhi.h" #include "mhi.h" static const struct mhi_channel_config ath12k_wifi7_mhi_channels_qcn9274[] = { { .num = 20, .name = "IPCR", .num_elements = 32, .event_ring = 1, .dir = DMA_TO_DEVICE, .ee_mask = 0x4, .pollcfg = 0, .doorbell = MHI_DB_BRST_DISABLE, .lpm_notify = false, .offload_channel = false, .doorbell_mode_switch = false, }, { .num = 21, .name = "IPCR", .num_elements = 32, .event_ring = 1, .dir = DMA_FROM_DEVICE, .ee_mask = 0x4, .pollcfg = 0, .doorbell = MHI_DB_BRST_DISABLE, .lpm_notify = false, .offload_channel = false, .doorbell_mode_switch = false, }, }; static struct mhi_event_config ath12k_wifi7_mhi_events_qcn9274[] = { { .num_elements = 32, .irq_moderation_ms = 0, .irq = 1, .data_type = MHI_ER_CTRL, .mode = MHI_DB_BRST_DISABLE, .hardware_event = false, .client_managed = false, .offload_channel = false, }, { .num_elements = 256, .irq_moderation_ms = 1, .irq = 2, .mode = MHI_DB_BRST_DISABLE, .priority = 1, .hardware_event = false, .client_managed = false, .offload_channel = false, }, }; const struct mhi_controller_config ath12k_wifi7_mhi_config_qcn9274 = { .max_channels = 30, .timeout_ms = 10000, .use_bounce_buf = false, .buf_len = 0, .num_channels = ARRAY_SIZE(ath12k_wifi7_mhi_channels_qcn9274), .ch_cfg = ath12k_wifi7_mhi_channels_qcn9274, .num_events = ARRAY_SIZE(ath12k_wifi7_mhi_events_qcn9274), .event_cfg = ath12k_wifi7_mhi_events_qcn9274, }; static const struct mhi_channel_config ath12k_wifi7_mhi_channels_wcn7850[] = { { .num = 20, .name = "IPCR", .num_elements = 64, .event_ring = 1, .dir = DMA_TO_DEVICE, .ee_mask = 0x4, .pollcfg = 0, .doorbell = MHI_DB_BRST_DISABLE, .lpm_notify = false, .offload_channel = false, .doorbell_mode_switch = false, }, { .num = 21, .name = "IPCR", .num_elements = 64, .event_ring = 1, .dir = DMA_FROM_DEVICE, .ee_mask = 0x4, .pollcfg = 0, .doorbell = MHI_DB_BRST_DISABLE, .lpm_notify = false, .offload_channel = false, .doorbell_mode_switch = false, }, }; static struct mhi_event_config ath12k_wifi7_mhi_events_wcn7850[] = { { .num_elements = 32, .irq_moderation_ms = 0, .irq = 1, .mode = MHI_DB_BRST_DISABLE, .data_type = MHI_ER_CTRL, .hardware_event = false, .client_managed = false, .offload_channel = false, }, { .num_elements = 256, .irq_moderation_ms = 1, .irq = 2, .mode = MHI_DB_BRST_DISABLE, .priority = 1, .hardware_event = false, .client_managed = false, .offload_channel = false, }, }; const struct mhi_controller_config ath12k_wifi7_mhi_config_wcn7850 = { .max_channels = 128, .timeout_ms = 2000, .use_bounce_buf = false, .buf_len = 8192, .num_channels = ARRAY_SIZE(ath12k_wifi7_mhi_channels_wcn7850), .ch_cfg = ath12k_wifi7_mhi_channels_wcn7850, .num_events = ARRAY_SIZE(ath12k_wifi7_mhi_events_wcn7850), .event_cfg = ath12k_wifi7_mhi_events_wcn7850, };