1 /* SPDX-License-Identifier: GPL-2.0-only
2  *
3  * Copyright (C) 2020-21 Intel Corporation
4  */
5 
6 #ifndef IOSM_IPC_CHNL_CFG_H
7 #define IOSM_IPC_CHNL_CFG_H
8 
9 #include "iosm_ipc_mux.h"
10 
11 /* Number of TDs on the trace channel */
12 #define IPC_MEM_TDS_TRC 32
13 
14 /* Trace channel TD buffer size. */
15 #define IPC_MEM_MAX_DL_TRC_BUF_SIZE 8192
16 
17 /* Channel ID */
18 enum ipc_channel_id {
19 	IPC_MEM_IP_CHL_ID_0 = 0,
20 	IPC_MEM_CTRL_CHL_ID_1,
21 	IPC_MEM_CTRL_CHL_ID_2,
22 	IPC_MEM_CTRL_CHL_ID_3,
23 	IPC_MEM_CTRL_CHL_ID_4,
24 	IPC_MEM_CTRL_CHL_ID_5,
25 	IPC_MEM_CTRL_CHL_ID_6,
26 };
27 
28 /**
29  * struct ipc_chnl_cfg - IPC channel configuration structure
30  * @id:				Interface ID
31  * @ul_pipe:			Uplink datastream
32  * @dl_pipe:			Downlink datastream
33  * @ul_nr_of_entries:		Number of Transfer descriptor uplink pipe
34  * @dl_nr_of_entries:		Number of Transfer descriptor downlink pipe
35  * @dl_buf_size:		Downlink buffer size
36  * @wwan_port_type:		Wwan subsystem port type
37  * @accumulation_backoff:	Time in usec for data accumalation
38  */
39 struct ipc_chnl_cfg {
40 	u32 id;
41 	u32 ul_pipe;
42 	u32 dl_pipe;
43 	u32 ul_nr_of_entries;
44 	u32 dl_nr_of_entries;
45 	u32 dl_buf_size;
46 	u32 wwan_port_type;
47 	u32 accumulation_backoff;
48 };
49 
50 /**
51  * ipc_chnl_cfg_get - Get pipe configuration.
52  * @chnl_cfg:		Array of ipc_chnl_cfg struct
53  * @index:		Channel index (upto MAX_CHANNELS)
54  *
55  * Return: 0 on success and failure value on error
56  */
57 int ipc_chnl_cfg_get(struct ipc_chnl_cfg *chnl_cfg, int index);
58 
59 #endif
60