18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#ifndef __Q6_ADM_V2_H__
38c2ecf20Sopenharmony_ci#define __Q6_ADM_V2_H__
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#define ADM_PATH_PLAYBACK	0x1
68c2ecf20Sopenharmony_ci#define ADM_PATH_LIVE_REC	0x2
78c2ecf20Sopenharmony_ci#define MAX_COPPS_PER_PORT	8
88c2ecf20Sopenharmony_ci#define NULL_COPP_TOPOLOGY	0x00010312
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci/* multiple copp per stream. */
118c2ecf20Sopenharmony_cistruct route_payload {
128c2ecf20Sopenharmony_ci	int num_copps;
138c2ecf20Sopenharmony_ci	int session_id;
148c2ecf20Sopenharmony_ci	int copp_idx[MAX_COPPS_PER_PORT];
158c2ecf20Sopenharmony_ci	int port_id[MAX_COPPS_PER_PORT];
168c2ecf20Sopenharmony_ci};
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_cistruct q6copp;
198c2ecf20Sopenharmony_cistruct q6copp *q6adm_open(struct device *dev, int port_id, int path, int rate,
208c2ecf20Sopenharmony_ci			   int channel_mode, int topology, int perf_mode,
218c2ecf20Sopenharmony_ci			   uint16_t bit_width, int app_type, int acdb_id);
228c2ecf20Sopenharmony_ciint q6adm_close(struct device *dev, struct q6copp *copp);
238c2ecf20Sopenharmony_ciint q6adm_get_copp_id(struct q6copp *copp);
248c2ecf20Sopenharmony_ciint q6adm_matrix_map(struct device *dev, int path,
258c2ecf20Sopenharmony_ci		     struct route_payload payload_map, int perf_mode);
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci#endif /* __Q6_ADM_V2_H__ */
28