162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef __Q6_ADM_V2_H__ 362306a36Sopenharmony_ci#define __Q6_ADM_V2_H__ 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#define ADM_PATH_PLAYBACK 0x1 662306a36Sopenharmony_ci#define ADM_PATH_LIVE_REC 0x2 762306a36Sopenharmony_ci#define MAX_COPPS_PER_PORT 8 862306a36Sopenharmony_ci#define NULL_COPP_TOPOLOGY 0x00010312 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci/* multiple copp per stream. */ 1162306a36Sopenharmony_cistruct route_payload { 1262306a36Sopenharmony_ci int num_copps; 1362306a36Sopenharmony_ci int session_id; 1462306a36Sopenharmony_ci int copp_idx[MAX_COPPS_PER_PORT]; 1562306a36Sopenharmony_ci int port_id[MAX_COPPS_PER_PORT]; 1662306a36Sopenharmony_ci}; 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_cistruct q6copp; 1962306a36Sopenharmony_cistruct q6copp *q6adm_open(struct device *dev, int port_id, int path, int rate, 2062306a36Sopenharmony_ci int channel_mode, int topology, int perf_mode, 2162306a36Sopenharmony_ci uint16_t bit_width, int app_type, int acdb_id); 2262306a36Sopenharmony_ciint q6adm_close(struct device *dev, struct q6copp *copp); 2362306a36Sopenharmony_ciint q6adm_get_copp_id(struct q6copp *copp); 2462306a36Sopenharmony_ciint q6adm_matrix_map(struct device *dev, int path, 2562306a36Sopenharmony_ci struct route_payload payload_map, int perf_mode); 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci#endif /* __Q6_ADM_V2_H__ */ 28