Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * The MIPI SDCA specification is available for public downloads at
4 * https://www.mipi.org/mipi-sdca-v1-0-download
5 *
6 * Copyright (C) 2025 Cirrus Logic, Inc. and
7 * Cirrus Logic International Semiconductor Ltd.
8 */
9
10#ifndef __SDCA_UMP_H__
11#define __SDCA_UMP_H__
12
13struct regmap;
14struct sdca_control;
15struct sdca_entity;
16struct sdca_function_data;
17struct snd_soc_component;
18struct delayed_work;
19
20int sdca_ump_get_owner_host(struct device *dev,
21 struct regmap *function_regmap,
22 struct sdca_function_data *function,
23 struct sdca_entity *entity,
24 struct sdca_control *control);
25int sdca_ump_set_owner_device(struct device *dev,
26 struct regmap *function_regmap,
27 struct sdca_function_data *function,
28 struct sdca_entity *entity,
29 struct sdca_control *control);
30int sdca_ump_read_message(struct device *dev,
31 struct regmap *device_regmap,
32 struct regmap *function_regmap,
33 struct sdca_function_data *function,
34 struct sdca_entity *entity,
35 unsigned int offset_sel, unsigned int length_sel,
36 void **msg);
37int sdca_ump_write_message(struct device *dev,
38 struct regmap *device_regmap,
39 struct regmap *function_regmap,
40 struct sdca_function_data *function,
41 struct sdca_entity *entity,
42 unsigned int offset_sel, unsigned int msg_offset,
43 unsigned int length_sel,
44 void *msg, int msg_len);
45
46void sdca_ump_cancel_timeout(struct delayed_work *work);
47void sdca_ump_schedule_timeout(struct delayed_work *work,
48 unsigned int timeout_us);
49
50#endif // __SDCA_UMP_H__