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 13 struct regmap; 14 struct sdca_control; 15 struct sdca_entity; 16 struct sdca_function_data; 17 struct snd_soc_component; 18 struct delayed_work; 19 20 int 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); 25 int 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); 30 int 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); 37 int 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 46 void sdca_ump_cancel_timeout(struct delayed_work *work); 47 void sdca_ump_schedule_timeout(struct delayed_work *work, 48 unsigned int timeout_us); 49 50 #endif // __SDCA_UMP_H__ 51